From 588dd494d2d92e82f806d59024d88e06c2552a49 Mon Sep 17 00:00:00 2001 From: ndrsnhs Date: Tue, 12 Aug 2025 09:37:20 +0200 Subject: [PATCH 01/42] check for patterns --- packages/control/chargepoint/chargepoint.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index b901223bfe..ab441df085 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -20,6 +20,7 @@ from threading import Thread, Event import traceback from typing import Dict, Optional, Tuple +from fnmatch import fnmatch from control.algorithm.utils import get_medium_charging_current from control.chargelog import chargelog @@ -152,11 +153,18 @@ def _is_autolock_inactive(self) -> Tuple[bool, Optional[str]]: def _is_manual_lock_inactive(self) -> Tuple[bool, Optional[str]]: # Die Pro schickt je nach Timing auch nach Abstecken noch ein paar Zyklen den Tag. Dann darf der Ladepunkt # nicht wieder entsperrt werden. - if (self.data.get.rfid or - self.data.get.vehicle_id or - self.data.set.rfid) in self.template.data.valid_tags: - Pub().pub(f"openWB/set/chargepoint/{self.num}/set/manual_lock", False) - elif self.template.data.disable_after_unplug and self.data.get.plug_state is False: + + # Prüfung auf ein passendes Muster + # Vergleiche werden case-insensitive durchgeführt + # das vereinfacht die Eingabe, kann aber auch für falsche Treffer sorgen. + # 'fnmatch()' ist case-insensitive + for tag_id in self.template.data.valid_tags: + if ((self.data.get.rfid is not None and fnmatch(self.data.get.rfid, tag_id)) or + (self.data.get.vehicle_id is not None and fnmatch(self.data.get.vehicle_id, tag_id)) or + (self.data.set.rfid is not None and fnmatch(self.data.set.rfid, tag_id))): + Pub().pub(f"openWB/svet/chargepoint/{self.num}/set/manual_lock", False) + # Wenn der Ladepunkt nach dem Abstecken gesperrt werden soll, und kein Fahrzeug angeschlossen ist wird gesperrt + if self.template.data.disable_after_unplug and self.data.get.plug_state is False: Pub().pub(f"openWB/set/chargepoint/{self.num}/set/manual_lock", True) if self.data.set.manual_lock: From a0536a36d878da7c14913130389a1898e6c5ca15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 05:44:24 +0000 Subject: [PATCH 02/42] Bump @babel/runtime in /packages/modules/web_themes/colors/source Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.7 to 7.28.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.3/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-version: 7.28.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../web_themes/colors/source/package-lock.json | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/packages/modules/web_themes/colors/source/package-lock.json b/packages/modules/web_themes/colors/source/package-lock.json index c4feb9958b..b705926798 100644 --- a/packages/modules/web_themes/colors/source/package-lock.json +++ b/packages/modules/web_themes/colors/source/package-lock.json @@ -78,12 +78,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -3848,11 +3846,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, "node_modules/reinterval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", From 071632bd5d40bfc170dfb73db8cb52a0c3829513 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Tue, 19 Aug 2025 10:57:08 +0200 Subject: [PATCH 03/42] updates --- .../cards/source/package-lock.json | 652 ++++++++++-------- .../display_themes/cards/source/package.json | 6 +- 2 files changed, 357 insertions(+), 301 deletions(-) diff --git a/packages/modules/display_themes/cards/source/package-lock.json b/packages/modules/display_themes/cards/source/package-lock.json index 18811305d7..72bf1f1d83 100644 --- a/packages/modules/display_themes/cards/source/package-lock.json +++ b/packages/modules/display_themes/cards/source/package-lock.json @@ -29,17 +29,17 @@ "devDependencies": { "@rollup/plugin-terser": "^0.4.4", "@rushstack/eslint-patch": "^1.12.0", - "@vitejs/plugin-vue": "^5.2.4", + "@vitejs/plugin-vue": "^6.0.1", "@vue/eslint-config-prettier": "^10.2.0", "@vue/test-utils": "^2.4.6", - "eslint": "^9.32.0", + "eslint": "^9.33.0", "eslint-plugin-vue": "^10.4.0", "jsdom": "^26.1.0", "postcss": "^8.5.6", "postcss-preset-env": "^10.2.4", "prettier": "^3.6.2", "rollup-plugin-polyfill-node": "^0.13.0", - "sass": "^1.89.2", + "sass": "^1.90.0", "vite": "^5.4.19", "vite-plugin-node-polyfills": "^0.24.0", "vitest": "^3.2.4" @@ -78,12 +78,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -93,9 +93,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", - "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1739,9 +1739,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1749,9 +1749,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1786,9 +1786,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", - "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", + "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", "dev": true, "license": "MIT", "engines": { @@ -1809,13 +1809,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.1", + "@eslint/core": "^0.15.2", "levn": "^0.4.1" }, "engines": { @@ -1978,9 +1978,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { @@ -1999,9 +1999,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", - "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2010,15 +2010,15 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2383,6 +2383,13 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", + "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-inject": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", @@ -2452,10 +2459,23 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.3.tgz", + "integrity": "sha512-UmTdvXnLlqQNOCJnyksjPs1G4GqXNGW1LrzCe8+8QoaLhhDeTXYBgJ3k6x61WIhlHX2U+VzEJ55TtIjR/HTySA==", "cpu": [ "arm" ], @@ -2467,9 +2487,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.3.tgz", + "integrity": "sha512-8NoxqLpXm7VyeI0ocidh335D6OKT0UJ6fHdnIxf3+6oOerZZc+O7r+UhvROji6OspyPm+rrIdb1gTXtVIqn+Sg==", "cpu": [ "arm64" ], @@ -2481,9 +2501,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.3.tgz", + "integrity": "sha512-csnNavqZVs1+7/hUKtgjMECsNG2cdB8F7XBHP6FfQjqhjF8rzMzb3SLyy/1BG7YSfQ+bG75Ph7DyedbUqwq1rA==", "cpu": [ "arm64" ], @@ -2495,9 +2515,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.3.tgz", + "integrity": "sha512-r2MXNjbuYabSIX5yQqnT8SGSQ26XQc8fmp6UhlYJd95PZJkQD1u82fWP7HqvGUf33IsOC6qsiV+vcuD4SDP6iw==", "cpu": [ "x64" ], @@ -2509,9 +2529,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.3.tgz", + "integrity": "sha512-uluObTmgPJDuJh9xqxyr7MV61Imq+0IvVsAlWyvxAaBSNzCcmZlhfYcRhCdMaCsy46ccZa7vtDDripgs9Jkqsw==", "cpu": [ "arm64" ], @@ -2523,9 +2543,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.3.tgz", + "integrity": "sha512-AVJXEq9RVHQnejdbFvh1eWEoobohUYN3nqJIPI4mNTMpsyYN01VvcAClxflyk2HIxvLpRcRggpX1m9hkXkpC/A==", "cpu": [ "x64" ], @@ -2537,9 +2557,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.3.tgz", + "integrity": "sha512-byyflM+huiwHlKi7VHLAYTKr67X199+V+mt1iRgJenAI594vcmGGddWlu6eHujmcdl6TqSNnvqaXJqZdnEWRGA==", "cpu": [ "arm" ], @@ -2551,9 +2571,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.3.tgz", + "integrity": "sha512-aLm3NMIjr4Y9LklrH5cu7yybBqoVCdr4Nvnm8WB7PKCn34fMCGypVNpGK0JQWdPAzR/FnoEoFtlRqZbBBLhVoQ==", "cpu": [ "arm" ], @@ -2565,9 +2585,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.3.tgz", + "integrity": "sha512-VtilE6eznJRDIoFOzaagQodUksTEfLIsvXymS+UdJiSXrPW7Ai+WG4uapAc3F7Hgs791TwdGh4xyOzbuzIZrnw==", "cpu": [ "arm64" ], @@ -2579,9 +2599,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.3.tgz", + "integrity": "sha512-dG3JuS6+cRAL0GQ925Vppafi0qwZnkHdPeuZIxIPXqkCLP02l7ka+OCyBoDEv8S+nKHxfjvjW4OZ7hTdHkx8/w==", "cpu": [ "arm64" ], @@ -2593,9 +2613,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.3.tgz", + "integrity": "sha512-iU8DxnxEKJptf8Vcx4XvAUdpkZfaz0KWfRrnIRrOndL0SvzEte+MTM7nDH4A2Now4FvTZ01yFAgj6TX/mZl8hQ==", "cpu": [ "loong64" ], @@ -2607,9 +2627,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.3.tgz", + "integrity": "sha512-VrQZp9tkk0yozJoQvQcqlWiqaPnLM6uY1qPYXvukKePb0fqaiQtOdMJSxNFUZFsGw5oA5vvVokjHrx8a9Qsz2A==", "cpu": [ "ppc64" ], @@ -2621,9 +2641,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.3.tgz", + "integrity": "sha512-uf2eucWSUb+M7b0poZ/08LsbcRgaDYL8NCGjUeFMwCWFwOuFcZ8D9ayPl25P3pl+D2FH45EbHdfyUesQ2Lt9wA==", "cpu": [ "riscv64" ], @@ -2635,9 +2655,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.3.tgz", + "integrity": "sha512-7tnUcDvN8DHm/9ra+/nF7lLzYHDeODKKKrh6JmZejbh1FnCNZS8zMkZY5J4sEipy2OW1d1Ncc4gNHUd0DLqkSg==", "cpu": [ "riscv64" ], @@ -2649,9 +2669,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.3.tgz", + "integrity": "sha512-MUpAOallJim8CsJK+4Lc9tQzlfPbHxWDrGXZm2z6biaadNpvh3a5ewcdat478W+tXDoUiHwErX/dOql7ETcLqg==", "cpu": [ "s390x" ], @@ -2663,9 +2683,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.3.tgz", + "integrity": "sha512-F42IgZI4JicE2vM2PWCe0N5mR5vR0gIdORPqhGQ32/u1S1v3kLtbZ0C/mi9FFk7C5T0PgdeyWEPajPjaUpyoKg==", "cpu": [ "x64" ], @@ -2677,9 +2697,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.3.tgz", + "integrity": "sha512-oLc+JrwwvbimJUInzx56Q3ujL3Kkhxehg7O1gWAYzm8hImCd5ld1F2Gry5YDjR21MNb5WCKhC9hXgU7rRlyegQ==", "cpu": [ "x64" ], @@ -2691,9 +2711,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.3.tgz", + "integrity": "sha512-lOrQ+BVRstruD1fkWg9yjmumhowR0oLAAzavB7yFSaGltY8klttmZtCLvOXCmGE9mLIn8IBV/IFrQOWz5xbFPg==", "cpu": [ "arm64" ], @@ -2705,9 +2725,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.3.tgz", + "integrity": "sha512-vvrVKPRS4GduGR7VMH8EylCBqsDcw6U+/0nPDuIjXQRbHJc6xOBj+frx8ksfZAh6+Fptw5wHrN7etlMmQnPQVg==", "cpu": [ "ia32" ], @@ -2719,9 +2739,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.3.tgz", + "integrity": "sha512-fi3cPxCnu3ZeM3EwKZPgXbWoGzm2XHgB/WShKI81uj8wG0+laobmqy5wbgEwzstlbLu4MyO8C19FyhhWseYKNQ==", "cpu": [ "x64" ], @@ -2771,9 +2791,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.0.tgz", - "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", "license": "MIT", "dependencies": { "undici-types": "~7.10.0" @@ -2798,16 +2818,19 @@ } }, "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", + "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", "dev": true, "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.29" + }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.2.25" } }, @@ -2893,6 +2916,13 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/runner/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vitest/snapshot": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", @@ -2908,6 +2938,13 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/snapshot/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vitest/spy": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", @@ -3180,9 +3217,9 @@ } }, "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", "dev": true, "license": "MIT", "engines": { @@ -3345,9 +3382,9 @@ } }, "node_modules/bl": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-6.1.1.tgz", - "integrity": "sha512-yYc8UIHrd1ZTLgNBIE7JjMzUPZH+dec3q7nWkrSHEbtvkQ3h6WKC63W9K5jthcL5EXFyMuWYq+2pq5WMSIgFHw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.1.2.tgz", + "integrity": "sha512-6J3oG82fpJ71WF4l0W6XslkwAPMr+Zcp+AmdxJ0L8LsXNzFeO8GYesV2J9AzGArBjrsb2xR50Ocbn/CL1B44TA==", "license": "MIT", "dependencies": { "@types/readable-stream": "^4.0.0", @@ -3395,15 +3432,15 @@ } }, "node_modules/broker-factory": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/broker-factory/-/broker-factory-3.1.8.tgz", - "integrity": "sha512-xmVnYN0FZtynhPUmAnN+/MFRdbDi3syCuxWV7o7s78FcIN0pjDtn9mUrVqEgdjQkbfojRhlPWbYbXJkMCyddrg==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/broker-factory/-/broker-factory-3.1.9.tgz", + "integrity": "sha512-MzvndyD6EcbkBtX4NXm/HfdO1+cOR5ONNdMCXEKfHpxGdMtuDz7+o+nJf7HMtyPH1sUVf/lEIP+DMluC5PgaBQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", - "fast-unique-numbers": "^9.0.22", + "@babel/runtime": "^7.28.3", + "fast-unique-numbers": "^9.0.23", "tslib": "^2.8.1", - "worker-factory": "^7.0.44" + "worker-factory": "^7.0.45" } }, "node_modules/brorand": { @@ -3545,9 +3582,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", - "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "version": "4.25.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", + "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", "dev": true, "funding": [ { @@ -3565,8 +3602,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001726", - "electron-to-chromium": "^1.5.173", + "caniuse-lite": "^1.0.30001735", + "electron-to-chromium": "^1.5.204", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -3687,9 +3724,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001731", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", - "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==", + "version": "1.0.30001735", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz", + "integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==", "dev": true, "funding": [ { @@ -3708,9 +3745,9 @@ "license": "CC-BY-4.0" }, "node_modules/chai": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.1.tgz", - "integrity": "sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.1.tgz", + "integrity": "sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==", "dev": true, "license": "MIT", "dependencies": { @@ -3782,22 +3819,6 @@ "node": ">= 16" } }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/cipher-base": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", @@ -4403,9 +4424,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.195", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.195.tgz", - "integrity": "sha512-URclP0iIaDUzqcAyV1v2PgduJ9N0IdXmWsnPzPfelvBmjmZzEy6xJcjb1cXj+TbYqXgtLrjHEoaSIdTYhw4ezg==", + "version": "1.5.206", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.206.tgz", + "integrity": "sha512-/eucXSTaI8L78l42xPurxdBzPTjAkMVCQO7unZCWk9LnZiwKcSvQUhF4c99NWQLwMQXxjlfoQy0+8m9U2yEDQQ==", "dev": true, "license": "ISC" }, @@ -4550,20 +4571,20 @@ } }, "node_modules/eslint": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", - "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", + "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.32.0", - "@eslint/plugin-kit": "^0.3.4", + "@eslint/js": "9.33.0", + "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -4627,9 +4648,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", - "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, "license": "MIT", "dependencies": { @@ -4715,6 +4736,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -4852,33 +4886,18 @@ "license": "MIT" }, "node_modules/fast-unique-numbers": { - "version": "9.0.22", - "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-9.0.22.tgz", - "integrity": "sha512-dBR+30yHAqBGvOuxxQdnn2lTLHCO6r/9B+M4yF8mNrzr3u1yiF+YVJ6u3GTyPN/VRWqaE1FcscZDdBgVKmrmQQ==", + "version": "9.0.23", + "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-9.0.23.tgz", + "integrity": "sha512-jcRIaHo46nfvyvKRMaFSKXmez4jALQ3Qw49gxM5F4siz8HqkyKPPEexpCOYwBSJI1HovrDr4fEedM8QAJ7oX3w==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", + "@babel/runtime": "^7.28.3", "tslib": "^2.8.1" }, "engines": { "node": ">=18.2.0" } }, - "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -5071,19 +5090,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", @@ -5380,14 +5386,10 @@ "license": "ISC" }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } @@ -5603,6 +5605,18 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-beautify": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", @@ -5665,12 +5679,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT" - }, "node_modules/jsdom": { "version": "26.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", @@ -5854,20 +5862,6 @@ "node": ">=8.6" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -6373,13 +6367,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, "node_modules/pathval": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", @@ -6451,13 +6438,14 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": ">=12" + "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -7557,20 +7545,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -7618,9 +7592,9 @@ } }, "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", + "integrity": "sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==", "dev": true, "license": "MIT", "dependencies": { @@ -7634,26 +7608,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@rollup/rollup-android-arm-eabi": "4.46.3", + "@rollup/rollup-android-arm64": "4.46.3", + "@rollup/rollup-darwin-arm64": "4.46.3", + "@rollup/rollup-darwin-x64": "4.46.3", + "@rollup/rollup-freebsd-arm64": "4.46.3", + "@rollup/rollup-freebsd-x64": "4.46.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.3", + "@rollup/rollup-linux-arm-musleabihf": "4.46.3", + "@rollup/rollup-linux-arm64-gnu": "4.46.3", + "@rollup/rollup-linux-arm64-musl": "4.46.3", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.3", + "@rollup/rollup-linux-ppc64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-musl": "4.46.3", + "@rollup/rollup-linux-s390x-gnu": "4.46.3", + "@rollup/rollup-linux-x64-gnu": "4.46.3", + "@rollup/rollup-linux-x64-musl": "4.46.3", + "@rollup/rollup-win32-arm64-msvc": "4.46.3", + "@rollup/rollup-win32-ia32-msvc": "4.46.3", + "@rollup/rollup-win32-x64-msvc": "4.46.3", "fsevents": "~2.3.2" } }, @@ -7722,9 +7696,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.89.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", - "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "version": "1.90.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", + "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7742,6 +7716,36 @@ "@parcel/watcher": "^2.4.1" } }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -7954,12 +7958,12 @@ "license": "MIT" }, "node_modules/socks": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.6.tgz", - "integrity": "sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -8015,12 +8019,6 @@ "node": ">= 10.x" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -8353,6 +8351,37 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tinypool": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", @@ -8684,6 +8713,13 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-node/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/vite-plugin-node-polyfills": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.24.0.tgz", @@ -8774,6 +8810,26 @@ } } }, + "node_modules/vitest/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -8999,50 +9055,50 @@ } }, "node_modules/worker-factory": { - "version": "7.0.44", - "resolved": "https://registry.npmjs.org/worker-factory/-/worker-factory-7.0.44.tgz", - "integrity": "sha512-08AuUfWi+KeZI+KC7nU4pU/9tDeAFvE5NSWk+K9nIfuQc6UlOsZtjjeGVYVEn+DEchyXNJ5i10HCn0xRzFXEQA==", + "version": "7.0.45", + "resolved": "https://registry.npmjs.org/worker-factory/-/worker-factory-7.0.45.tgz", + "integrity": "sha512-FFPCiSv7MD6ZDEfiik/ErM8IrIAWajaXhezLyCo3v0FjhUWud6GXnG2BiTE91jLywXGAVCT8IF48Hhr+D/omMw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", - "fast-unique-numbers": "^9.0.22", + "@babel/runtime": "^7.28.3", + "fast-unique-numbers": "^9.0.23", "tslib": "^2.8.1" } }, "node_modules/worker-timers": { - "version": "8.0.23", - "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-8.0.23.tgz", - "integrity": "sha512-1BnWHNNiu5YEutgF7eVZEqNntAsij2oG0r66xDdScoY3fKGFrok2y0xA8OgG6FA+3srrmAplSY6JN5h9jV5D0w==", + "version": "8.0.24", + "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-8.0.24.tgz", + "integrity": "sha512-Ydu/7TRHlxIRjYSGDge1F92L7y9kzInpwR4CkocRVObPE0eRqC6d+0GFh52Hm+m520RHVKiytOERtCUu5sQDVQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", + "@babel/runtime": "^7.28.3", "tslib": "^2.8.1", - "worker-timers-broker": "^8.0.9", - "worker-timers-worker": "^9.0.9" + "worker-timers-broker": "^8.0.10", + "worker-timers-worker": "^9.0.10" } }, "node_modules/worker-timers-broker": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-8.0.9.tgz", - "integrity": "sha512-WJsd7aIvu2GBTXp7IBGT1NKnt3ZbiJ2wqb7Pl4nFJXC8pek84+X68TJGVvvrqwHgHPNxSlzpU1nadhcW4PDD7A==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-8.0.10.tgz", + "integrity": "sha512-xvo/9GiuduENbJNdWnvZtkriIkjBKKVbMyw7GXvrBu3n1JHemzZgxqaCcCBNlpfXnRXXF4ekqvXWLh1gb65b8w==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", - "broker-factory": "^3.1.8", - "fast-unique-numbers": "^9.0.22", + "@babel/runtime": "^7.28.3", + "broker-factory": "^3.1.9", + "fast-unique-numbers": "^9.0.23", "tslib": "^2.8.1", - "worker-timers-worker": "^9.0.9" + "worker-timers-worker": "^9.0.10" } }, "node_modules/worker-timers-worker": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-9.0.9.tgz", - "integrity": "sha512-OOKTMdHbzx7FaXCW40RS8RxAqLF/R8xU5/YA7CFasDy+jBA5yQWUusSQJUFFTV2Z9ZOpnR+ZWgte/IuAqOAEVw==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-9.0.10.tgz", + "integrity": "sha512-cfCmAkuoN+nGGJShta/g7CQVP3h7rvQA642EQg72fOHCWP5S2P83rLxDiaGv811Hd+19Cgdqt/tpRBIZ5kj/dw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6", + "@babel/runtime": "^7.28.3", "tslib": "^2.8.1", - "worker-factory": "^7.0.44" + "worker-factory": "^7.0.45" } }, "node_modules/wrap-ansi": { diff --git a/packages/modules/display_themes/cards/source/package.json b/packages/modules/display_themes/cards/source/package.json index 4175da6ca0..e8145f2fc1 100644 --- a/packages/modules/display_themes/cards/source/package.json +++ b/packages/modules/display_themes/cards/source/package.json @@ -33,17 +33,17 @@ "devDependencies": { "@rollup/plugin-terser": "^0.4.4", "@rushstack/eslint-patch": "^1.12.0", - "@vitejs/plugin-vue": "^5.2.4", + "@vitejs/plugin-vue": "^6.0.1", "@vue/eslint-config-prettier": "^10.2.0", "@vue/test-utils": "^2.4.6", - "eslint": "^9.32.0", + "eslint": "^9.33.0", "eslint-plugin-vue": "^10.4.0", "jsdom": "^26.1.0", "postcss": "^8.5.6", "postcss-preset-env": "^10.2.4", "prettier": "^3.6.2", "rollup-plugin-polyfill-node": "^0.13.0", - "sass": "^1.89.2", + "sass": "^1.90.0", "vite": "^5.4.19", "vite-plugin-node-polyfills": "^0.24.0", "vitest": "^3.2.4" From 8ab744e10a2f86e553b16b2988ea0f48b233c8ac Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Tue, 19 Aug 2025 14:23:47 +0200 Subject: [PATCH 04/42] build UI (#2681) --- ...eLog-d0f0c940.js => ChargeLog-e7acf03d.js} | 2 +- .../ChargePointInstallation-4bbfab0c.js | 1 + .../ChargePointInstallation-acc5f333.js | 1 - .../{Chart-f2027a6a.js => Chart-899aaa0c.js} | 2 +- ...ig-50a55ac2.js => CloudConfig-74bbfdff.js} | 2 +- .../assets/DataManagement-337c2c94.js | 1 + .../assets/DataManagement-d8247a90.js | 1 - ...ig-7ec1f92a.js => DebugConfig-f413af66.js} | 2 +- ...268.js => GeneralChargeConfig-f5f65896.js} | 2 +- web/settings/assets/GeneralConfig-1aa02fdc.js | 1 + web/settings/assets/GeneralConfig-bd327700.js | 1 - .../assets/HardwareInstallation-5d83a25e.js | 1 - .../assets/HardwareInstallation-6515151f.js | 1 + ...20.js => IdentificationConfig-ed3f2bff.js} | 2 +- .../assets/InstallAssistant-0fa0d0dd.js | 1 - .../assets/InstallAssistant-ad73a366.js | 1 + .../assets/InstallAssistantStep0-4316f81d.js | 1 + .../assets/InstallAssistantStep0-fe2946cd.js | 1 - ...8.js => InstallAssistantStep1-2c79328f.js} | 2 +- ....js => InstallAssistantStep10-b27cf512.js} | 2 +- .../assets/InstallAssistantStep2-4bb75653.js | 1 + .../assets/InstallAssistantStep2-f2504bdc.js | 1 - .../assets/InstallAssistantStep3-1db12d61.js | 1 - .../assets/InstallAssistantStep3-c4997725.js | 1 + .../assets/InstallAssistantStep4-11abe033.js | 1 - .../assets/InstallAssistantStep4-abf0a08d.js | 1 + .../InstallAssistantStep4.1-98043578.js | 1 + .../assets/InstallAssistantStep5-62ebcc68.js | 1 - .../assets/InstallAssistantStep5-ee0ba959.js | 1 + ...5.js => InstallAssistantStep6-60f17c70.js} | 2 +- ...f.js => InstallAssistantStep7-881db088.js} | 2 +- ...c.js => InstallAssistantStep8-174b8e4b.js} | 2 +- .../assets/InstallAssistantStep9-21d7f4da.js | 1 + .../assets/InstallAssistantStep9-6029b0cf.js | 1 - ... InstallAssistantStepTemplate-27c622cd.js} | 2 +- ...onfig-74e751bf.js => IoConfig-83896e35.js} | 2 +- ...-39bbfbb6.js => LegalSettings-0495f43d.js} | 2 +- .../assets/LoadManagementConfig-9ba2529d.js | 1 + .../assets/LoadManagementConfig-ebecc34c.js | 1 - ...a68e6b.js => MqttBridgeConfig-0cb3253c.js} | 2 +- ...832dbbd.js => OpenwbIoPattern-66bb2793.js} | 2 +- ...2.js => OpenwbIoSinglePattern-14df64f6.js} | 2 +- ...f22c.js => OpenwbSortableList-227b0e79.js} | 2 +- ...7cbe.js => OptionalComponents-eab310e0.js} | 2 +- ...bc17ec59.js => PVChargeConfig-e427d7a6.js} | 2 +- ...{Status-67426cfa.js => Status-f48d27b8.js} | 2 +- ...upport-f0af7bfc.js => Support-d39bee6a.js} | 2 +- web/settings/assets/System-5b07ce9f.js | 1 + web/settings/assets/System-f8f1bbde.js | 1 - ...e-d5c5514d.js => TestingStore-be12c671.js} | 2 +- ...-c2429926.js => VehicleConfig-2e0daf8e.js} | 2 +- ...d-d519b0e4.js => backup_cloud-08aafac7.js} | 2 +- ...d-f1402716.js => backup_cloud-170635e1.js} | 2 +- ...d-7386c81c.js => backup_cloud-436cb5f2.js} | 2 +- ...d-63db317f.js => backup_cloud-acb80510.js} | 2 +- .../{bat-ff14336b.js => bat-0b64db60.js} | 2 +- .../{bat-c8df9db2.js => bat-2429ce05.js} | 2 +- .../{bat-178b4d72.js => bat-2f1c9807.js} | 2 +- .../{bat-f5996a86.js => bat-37c3cc3b.js} | 2 +- .../{bat-61976e47.js => bat-3999cc82.js} | 2 +- .../{bat-9d7a6eb2.js => bat-3c83952b.js} | 2 +- .../{bat-5d61bb37.js => bat-43e9cde4.js} | 2 +- .../{bat-1ea31bcb.js => bat-4626ba65.js} | 2 +- .../{bat-2c687349.js => bat-513d9188.js} | 2 +- .../{bat-a148f905.js => bat-58a85a8c.js} | 2 +- .../{bat-0a6c26e6.js => bat-5ef99d8c.js} | 2 +- .../{bat-0ab7bb3c.js => bat-6b9fff6c.js} | 2 +- .../{bat-162d668e.js => bat-845f69cb.js} | 2 +- .../{bat-d22cb137.js => bat-a037c1ad.js} | 2 +- .../{bat-24ad9602.js => bat-b7a74be0.js} | 2 +- .../{bat-7f36252e.js => bat-b9d525a8.js} | 2 +- .../{bat-7f9d958a.js => bat-ba22f76f.js} | 2 +- .../{bat-a3aa8666.js => bat-bfa3303d.js} | 2 +- .../{bat-198506bb.js => bat-ccce56c3.js} | 2 +- .../{bat-ad50e924.js => bat-f2c5f46a.js} | 2 +- .../{bat-cadab577.js => bat-f9655da7.js} | 2 +- .../{bat-2f843b85.js => bat-ff0fd7a4.js} | 2 +- ...5a7ba3.js => bat_smart_energy-35671b9e.js} | 2 +- ...nt-d7e93475.js => chargePoint-2e02c1d8.js} | 2 +- ...nt-a724d441.js => chargePoint-2e5fe02e.js} | 2 +- ...nt-363cfa95.js => chargePoint-3411e592.js} | 2 +- ...nt-a57ed65a.js => chargePoint-4a3d6c03.js} | 2 +- ...nt-e966751c.js => chargePoint-64ce2ff0.js} | 2 +- ...nt-e34d0bf9.js => chargePoint-ca1cba52.js} | 2 +- ...nt-36b9cbe5.js => chargePoint-d31da4cb.js} | 2 +- ...mands-f64df432.js => commands-6e8b9876.js} | 2 +- ...mands-36456a01.js => commands-9cc92488.js} | 2 +- ...20a.js => consumption_counter-28c4feb4.js} | 2 +- ...ounter-a4e6b35f.js => counter-034d35d7.js} | 2 +- ...ounter-0402fbea.js => counter-03d43b57.js} | 2 +- ...ounter-a8dd44f0.js => counter-06424364.js} | 2 +- ...ounter-96fd1246.js => counter-0d3d09ba.js} | 2 +- ...ounter-66796b0b.js => counter-15a40a05.js} | 2 +- ...ounter-6014897a.js => counter-16da78bb.js} | 2 +- ...ounter-1c49d5b6.js => counter-1ada1a81.js} | 2 +- ...ounter-88982b01.js => counter-241c338f.js} | 2 +- ...ounter-46e2c43c.js => counter-3b3df318.js} | 2 +- ...ounter-b0118850.js => counter-43bb176d.js} | 2 +- ...ounter-2841a6f4.js => counter-51e1f0a5.js} | 2 +- ...ounter-26162baf.js => counter-593a07d0.js} | 2 +- ...ounter-9d8705db.js => counter-5b6331d0.js} | 2 +- ...ounter-a45df58a.js => counter-6b70c1c4.js} | 2 +- ...ounter-58cdd3f8.js => counter-6cd21185.js} | 2 +- ...ounter-bf7b26c1.js => counter-701a2c72.js} | 2 +- ...ounter-131c9643.js => counter-778d0562.js} | 2 +- ...ounter-0f90fbb4.js => counter-7a682293.js} | 2 +- ...ounter-c9612c06.js => counter-87234fb2.js} | 2 +- ...ounter-84f2b940.js => counter-8a0376f6.js} | 2 +- ...ounter-cbef25b6.js => counter-925dec2d.js} | 2 +- ...ounter-02b4fe5b.js => counter-942689fa.js} | 2 +- ...ounter-63297872.js => counter-95df2c21.js} | 2 +- ...ounter-9fcffe23.js => counter-98126cfc.js} | 2 +- ...ounter-4363f779.js => counter-9ab1cf22.js} | 2 +- ...ounter-0a8d8873.js => counter-a327434b.js} | 2 +- ...ounter-d2e4dcd3.js => counter-a35b5fec.js} | 2 +- ...ounter-a4db7e1c.js => counter-a762a464.js} | 2 +- ...ounter-fa94f200.js => counter-ad41b953.js} | 2 +- ...ounter-f9ff4c43.js => counter-c0da35a2.js} | 2 +- ...ounter-90cbf7c3.js => counter-c26c7ca0.js} | 2 +- ...ounter-fe004f9c.js => counter-d606c310.js} | 2 +- ...ounter-aa4c34e5.js => counter-da1dd0be.js} | 2 +- ...ounter-e40d6637.js => counter-f01de2ea.js} | 2 +- ...ounter-ea3377d7.js => counter-f8177ec2.js} | 2 +- ...a45.js => counter_consumption-452fb197.js} | 2 +- ..._sm-644407b2.js => counter_sm-5e4b1fe5.js} | 2 +- ...{device-de77a290.js => device-07e03083.js} | 2 +- ...{device-da4c8a0c.js => device-0a55e2f7.js} | 2 +- ...{device-95a4fc1b.js => device-0bc39379.js} | 2 +- ...{device-311f3163.js => device-0c3fc809.js} | 2 +- ...{device-3be21bca.js => device-0f31e958.js} | 2 +- ...{device-36206448.js => device-1439cbf1.js} | 2 +- ...{device-a9dd072b.js => device-2d12e320.js} | 2 +- ...{device-0418b69c.js => device-3446cb73.js} | 2 +- ...{device-87d9128d.js => device-37b882f6.js} | 2 +- ...{device-7d51e530.js => device-38d5b6fd.js} | 2 +- ...{device-9e672cae.js => device-3caedbbd.js} | 2 +- ...{device-ba69bd6e.js => device-3e65a99e.js} | 2 +- ...{device-c73cffb1.js => device-40e95f0e.js} | 2 +- ...{device-a2b8c57b.js => device-44136cf2.js} | 2 +- ...{device-8c096b1c.js => device-46241bf0.js} | 2 +- ...{device-4d1a23d8.js => device-4749b385.js} | 2 +- ...{device-f88bddc1.js => device-48658977.js} | 2 +- ...{device-614a3bbf.js => device-48744246.js} | 2 +- ...{device-b830b43e.js => device-4faa8341.js} | 2 +- ...{device-edff48ee.js => device-51fb9fdb.js} | 2 +- ...{device-add01a51.js => device-5457868d.js} | 2 +- ...{device-bc822556.js => device-5e2f3c97.js} | 2 +- ...{device-abe914f8.js => device-6065b001.js} | 2 +- ...{device-897ed9c7.js => device-630d88cd.js} | 2 +- ...{device-a653fa8f.js => device-63843d32.js} | 2 +- ...{device-59d8f491.js => device-66218d05.js} | 2 +- ...{device-ca985fe7.js => device-6aa86d28.js} | 2 +- ...{device-36d1c02e.js => device-6c438877.js} | 2 +- ...{device-c03a1f17.js => device-6dbd2fd0.js} | 2 +- ...{device-b114c41e.js => device-6e2ecab6.js} | 2 +- ...{device-4753a209.js => device-6e2f0696.js} | 2 +- ...{device-c280b8ae.js => device-70a2865d.js} | 2 +- ...{device-6e97a762.js => device-723e5136.js} | 2 +- ...{device-ef5e14d8.js => device-7352834a.js} | 2 +- ...{device-5ed5b74b.js => device-75d75106.js} | 2 +- ...{device-d9cb59b2.js => device-77829da3.js} | 2 +- ...{device-08617811.js => device-78619adc.js} | 2 +- ...{device-9957bca2.js => device-789bc206.js} | 2 +- ...{device-35fe94a8.js => device-793ea822.js} | 2 +- ...{device-28efaad6.js => device-7ba6df48.js} | 2 +- ...{device-b978ff0c.js => device-7dbbe461.js} | 2 +- ...{device-c57e2427.js => device-838dac1d.js} | 2 +- ...{device-aa041e22.js => device-85ba0d9e.js} | 2 +- ...{device-1c1308a7.js => device-891343b7.js} | 2 +- ...{device-26cb01ff.js => device-8a6b31ac.js} | 2 +- ...{device-5c1283a2.js => device-8f44d501.js} | 2 +- ...{device-34a5fde6.js => device-90a7548e.js} | 2 +- ...{device-baaf54be.js => device-952016bf.js} | 2 +- ...{device-acd658a9.js => device-9c1661fe.js} | 2 +- ...{device-0067586f.js => device-9c39a93c.js} | 2 +- ...{device-587feb6a.js => device-a705c660.js} | 2 +- ...{device-3e5fa86e.js => device-a8b3ffa0.js} | 2 +- ...{device-dbf66cd3.js => device-ad797bf7.js} | 2 +- ...{device-f33854c7.js => device-b028c583.js} | 2 +- ...{device-b695068a.js => device-b6b82861.js} | 2 +- ...{device-c9d7c99b.js => device-b915ee50.js} | 2 +- ...{device-a68a7f61.js => device-c057d288.js} | 2 +- ...{device-4561c08a.js => device-c1e4152e.js} | 2 +- ...{device-953c515a.js => device-c6a5b18f.js} | 2 +- ...{device-e89a1f36.js => device-cad9fdab.js} | 2 +- ...{device-7b75323a.js => device-cbcf5efd.js} | 2 +- ...{device-669b1055.js => device-d2e67bbb.js} | 2 +- ...{device-459d681f.js => device-d4bdb914.js} | 2 +- ...{device-5be5124f.js => device-dae4911e.js} | 2 +- ...{device-894e1e36.js => device-e138ac10.js} | 2 +- ...{device-d3973c81.js => device-e4446102.js} | 2 +- ...{device-c318fc1d.js => device-e93f3043.js} | 2 +- ...{device-17d5e025.js => device-ede5926f.js} | 2 +- ...{device-7f3ca9c5.js => device-f14cbc13.js} | 2 +- ...{device-bef28d96.js => device-f1d14f4e.js} | 2 +- ...{device-476e3af1.js => device-f626b3aa.js} | 2 +- ...{device-47dd1fe2.js => device-faa95e47.js} | 2 +- ...{device-bebe8eea.js => device-fcb0b9c0.js} | 2 +- ...{device-bac53175.js => device-fef9b6f6.js} | 2 +- ...e-635b4268.js => displayTheme-178db1df.js} | 2 +- ...e-dcfb0591.js => displayTheme-c2dceb48.js} | 2 +- ...879b.js => electricity_tariff-030b73c0.js} | 2 +- ...68b0.js => electricity_tariff-0d25f98f.js} | 2 +- ...6626.js => electricity_tariff-2304915c.js} | 2 +- ...dd25.js => electricity_tariff-b497922e.js} | 2 +- ...8d54.js => electricity_tariff-bde56165.js} | 2 +- ...702e.js => electricity_tariff-d0edfdb4.js} | 2 +- ...5da8.js => electricity_tariff-ed71dfac.js} | 2 +- ...6f22.js => electricity_tariff-f3b38e11.js} | 2 +- ...3fd21.js => external_inverter-8207d928.js} | 2 +- .../{index-5b5e1b75.js => index-e4c17b07.js} | 2 +- ...erter-71e5d1d9.js => inverter-0852f06a.js} | 2 +- ...erter-1d570cc3.js => inverter-0d5f082e.js} | 2 +- ...erter-f5498730.js => inverter-10de1272.js} | 2 +- ...erter-6e1544e1.js => inverter-1a358f95.js} | 2 +- ...erter-2734679f.js => inverter-208d8966.js} | 2 +- web/settings/assets/inverter-236b1784.js | 1 + web/settings/assets/inverter-288f20ba.js | 1 - ...erter-28f2d192.js => inverter-36706c9a.js} | 2 +- web/settings/assets/inverter-368435ba.js | 1 - ...erter-3ba45e90.js => inverter-3dafbe7c.js} | 2 +- ...erter-f9f11d2f.js => inverter-3de69e58.js} | 2 +- ...erter-6ff09b8a.js => inverter-3e8be295.js} | 2 +- ...erter-605fa6ec.js => inverter-4b55caa6.js} | 2 +- ...erter-cdc91938.js => inverter-84d0a3ba.js} | 2 +- ...erter-faacb770.js => inverter-878637c0.js} | 2 +- ...erter-0362bee6.js => inverter-8afb296d.js} | 2 +- ...erter-38338915.js => inverter-95466897.js} | 2 +- web/settings/assets/inverter-ad33b033.js | 1 + ...erter-43d63312.js => inverter-b57300f5.js} | 2 +- ...erter-87d42851.js => inverter-c68c3b52.js} | 2 +- ...erter-31850b39.js => inverter-c71098f4.js} | 2 +- ...erter-d0cfa178.js => inverter-c97efa3a.js} | 2 +- ...erter-0fca0a34.js => inverter-da060ce6.js} | 2 +- ...erter-ed07bcb8.js => inverter-df3fe723.js} | 2 +- ...erter-0e8ec83e.js => inverter-e08e7a01.js} | 2 +- ...erter-b5ee1741.js => inverter-e1663f22.js} | 2 +- ...erter-4d10a817.js => inverter-e4584f68.js} | 2 +- ...erter-22b22d69.js => inverter-eb5fcf99.js} | 2 +- ...erter-355fe1e0.js => inverter-f0a34520.js} | 2 +- ...erter-4b9a884a.js => inverter-f432c082.js} | 2 +- ...erter-dcfb460b.js => inverter-fc51cd0b.js} | 2 +- ...erter-3b4e19fa.js => inverter-fd208841.js} | 2 +- ...erter-87f2f05b.js => inverter-fe7c6fda.js} | 2 +- ...0326.js => inverter_secondary-62644358.js} | 2 +- ...tion-e37f3d26.js => io_action-976bf2b0.js} | 2 +- ...tion-ccf7b188.js => io_action-b9cbb026.js} | 2 +- ...tion-0bf854b3.js => io_action-c0bcbb6c.js} | 2 +- ...tion-ea45c9b1.js => io_action-e0e64896.js} | 2 +- ...vice-e73fab6d.js => io_device-9ff50b11.js} | 2 +- ...vice-f7bfe2d9.js => io_device-ff6641fb.js} | 2 +- ...ing-a467b16b.js => monitoring-8ab638da.js} | 2 +- ...ehicle-c54ae651.js => vehicle-02f99327.js} | 2 +- ...ehicle-111b97e5.js => vehicle-081d1860.js} | 2 +- ...ehicle-57c44e4f.js => vehicle-2e31f054.js} | 2 +- ...ehicle-5a13dbc9.js => vehicle-3688de48.js} | 2 +- ...ehicle-30a8b189.js => vehicle-4ee84148.js} | 2 +- ...ehicle-8c574416.js => vehicle-54d21a19.js} | 2 +- ...ehicle-1d9f77b1.js => vehicle-552086ad.js} | 2 +- ...ehicle-05b8b107.js => vehicle-5bf23959.js} | 2 +- ...ehicle-52cf89cb.js => vehicle-62ddb254.js} | 2 +- ...ehicle-d5ac3573.js => vehicle-81c54b19.js} | 2 +- ...ehicle-9e586137.js => vehicle-a08311d0.js} | 2 +- ...ehicle-44740467.js => vehicle-a44392fc.js} | 2 +- ...ehicle-3d04897a.js => vehicle-aa814b6d.js} | 2 +- ...ehicle-b1993187.js => vehicle-b55a7355.js} | 2 +- ...ehicle-52abc450.js => vehicle-b6b40aa6.js} | 2 +- ...ehicle-63d2e44b.js => vehicle-bc9278d5.js} | 2 +- ...ehicle-be11133e.js => vehicle-ce15b972.js} | 2 +- ...ehicle-fc942755.js => vehicle-d5f041d0.js} | 2 +- ...ehicle-2966a953.js => vehicle-e22aaad0.js} | 2 +- ...ehicle-c1d27dfd.js => vehicle-f5091955.js} | 2 +- ...ehicle-0bedc131.js => vehicle-fa5f8129.js} | 2 +- ...{vendor-cc4615be.js => vendor-25d394b4.js} | 74 +++++++++---------- ...s-3dcaeec5.js => vendor-axios-ac33d60c.js} | 2 +- ...a7ccd9.js => vendor-bootstrap-374cd88e.js} | 2 +- ...2bc02c38.js => vendor-chartjs-94a826eb.js} | 2 +- ...7d62.js => vendor-fortawesome-a02b6813.js} | 4 +- ...-13cad4c1.js => vendor-jquery-3364d39b.js} | 2 +- ...9d6dd.js => vendor-sortablejs-0eb84ec8.js} | 2 +- ...Theme-f6f9eecb.js => webTheme-526f053f.js} | 2 +- ...Theme-b08c3f46.js => webTheme-9c8ff1fc.js} | 2 +- web/settings/index.html | 14 ++-- 283 files changed, 311 insertions(+), 310 deletions(-) rename web/settings/assets/{ChargeLog-d0f0c940.js => ChargeLog-e7acf03d.js} (97%) create mode 100644 web/settings/assets/ChargePointInstallation-4bbfab0c.js delete mode 100644 web/settings/assets/ChargePointInstallation-acc5f333.js rename web/settings/assets/{Chart-f2027a6a.js => Chart-899aaa0c.js} (98%) rename web/settings/assets/{CloudConfig-50a55ac2.js => CloudConfig-74bbfdff.js} (96%) create mode 100644 web/settings/assets/DataManagement-337c2c94.js delete mode 100644 web/settings/assets/DataManagement-d8247a90.js rename web/settings/assets/{DebugConfig-7ec1f92a.js => DebugConfig-f413af66.js} (95%) rename web/settings/assets/{GeneralChargeConfig-9090b268.js => GeneralChargeConfig-f5f65896.js} (83%) create mode 100644 web/settings/assets/GeneralConfig-1aa02fdc.js delete mode 100644 web/settings/assets/GeneralConfig-bd327700.js delete mode 100644 web/settings/assets/HardwareInstallation-5d83a25e.js create mode 100644 web/settings/assets/HardwareInstallation-6515151f.js rename web/settings/assets/{IdentificationConfig-be5fb020.js => IdentificationConfig-ed3f2bff.js} (96%) delete mode 100644 web/settings/assets/InstallAssistant-0fa0d0dd.js create mode 100644 web/settings/assets/InstallAssistant-ad73a366.js create mode 100644 web/settings/assets/InstallAssistantStep0-4316f81d.js delete mode 100644 web/settings/assets/InstallAssistantStep0-fe2946cd.js rename web/settings/assets/{InstallAssistantStep1-b2e75978.js => InstallAssistantStep1-2c79328f.js} (75%) rename web/settings/assets/{InstallAssistantStep10-de23a565.js => InstallAssistantStep10-b27cf512.js} (75%) create mode 100644 web/settings/assets/InstallAssistantStep2-4bb75653.js delete mode 100644 web/settings/assets/InstallAssistantStep2-f2504bdc.js delete mode 100644 web/settings/assets/InstallAssistantStep3-1db12d61.js create mode 100644 web/settings/assets/InstallAssistantStep3-c4997725.js delete mode 100644 web/settings/assets/InstallAssistantStep4-11abe033.js create mode 100644 web/settings/assets/InstallAssistantStep4-abf0a08d.js create mode 100644 web/settings/assets/InstallAssistantStep4.1-98043578.js delete mode 100644 web/settings/assets/InstallAssistantStep5-62ebcc68.js create mode 100644 web/settings/assets/InstallAssistantStep5-ee0ba959.js rename web/settings/assets/{InstallAssistantStep6-db46bac5.js => InstallAssistantStep6-60f17c70.js} (84%) rename web/settings/assets/{InstallAssistantStep7-7858cbaf.js => InstallAssistantStep7-881db088.js} (81%) rename web/settings/assets/{InstallAssistantStep8-6835c67c.js => InstallAssistantStep8-174b8e4b.js} (83%) create mode 100644 web/settings/assets/InstallAssistantStep9-21d7f4da.js delete mode 100644 web/settings/assets/InstallAssistantStep9-6029b0cf.js rename web/settings/assets/{InstallAssistantStepTemplate-4589ee8a.js => InstallAssistantStepTemplate-27c622cd.js} (87%) rename web/settings/assets/{IoConfig-74e751bf.js => IoConfig-83896e35.js} (84%) rename web/settings/assets/{LegalSettings-39bbfbb6.js => LegalSettings-0495f43d.js} (89%) create mode 100644 web/settings/assets/LoadManagementConfig-9ba2529d.js delete mode 100644 web/settings/assets/LoadManagementConfig-ebecc34c.js rename web/settings/assets/{MqttBridgeConfig-83a68e6b.js => MqttBridgeConfig-0cb3253c.js} (96%) rename web/settings/assets/{OpenwbIoPattern-c832dbbd.js => OpenwbIoPattern-66bb2793.js} (97%) rename web/settings/assets/{OpenwbIoSinglePattern-bdfa76d2.js => OpenwbIoSinglePattern-14df64f6.js} (97%) rename web/settings/assets/{OpenwbSortableList-5dccf22c.js => OpenwbSortableList-227b0e79.js} (92%) rename web/settings/assets/{OptionalComponents-f21e7cbe.js => OptionalComponents-eab310e0.js} (91%) rename web/settings/assets/{PVChargeConfig-bc17ec59.js => PVChargeConfig-e427d7a6.js} (98%) rename web/settings/assets/{Status-67426cfa.js => Status-f48d27b8.js} (99%) rename web/settings/assets/{Support-f0af7bfc.js => Support-d39bee6a.js} (95%) create mode 100644 web/settings/assets/System-5b07ce9f.js delete mode 100644 web/settings/assets/System-f8f1bbde.js rename web/settings/assets/{TestingStore-d5c5514d.js => TestingStore-be12c671.js} (96%) rename web/settings/assets/{VehicleConfig-c2429926.js => VehicleConfig-2e0daf8e.js} (89%) rename web/settings/assets/{backup_cloud-d519b0e4.js => backup_cloud-08aafac7.js} (89%) rename web/settings/assets/{backup_cloud-f1402716.js => backup_cloud-170635e1.js} (76%) rename web/settings/assets/{backup_cloud-7386c81c.js => backup_cloud-436cb5f2.js} (81%) rename web/settings/assets/{backup_cloud-63db317f.js => backup_cloud-acb80510.js} (69%) rename web/settings/assets/{bat-ff14336b.js => bat-0b64db60.js} (63%) rename web/settings/assets/{bat-c8df9db2.js => bat-2429ce05.js} (63%) rename web/settings/assets/{bat-178b4d72.js => bat-2f1c9807.js} (87%) rename web/settings/assets/{bat-f5996a86.js => bat-37c3cc3b.js} (64%) rename web/settings/assets/{bat-61976e47.js => bat-3999cc82.js} (94%) rename web/settings/assets/{bat-9d7a6eb2.js => bat-3c83952b.js} (63%) rename web/settings/assets/{bat-5d61bb37.js => bat-43e9cde4.js} (63%) rename web/settings/assets/{bat-1ea31bcb.js => bat-4626ba65.js} (67%) rename web/settings/assets/{bat-2c687349.js => bat-513d9188.js} (63%) rename web/settings/assets/{bat-a148f905.js => bat-58a85a8c.js} (69%) rename web/settings/assets/{bat-0a6c26e6.js => bat-5ef99d8c.js} (67%) rename web/settings/assets/{bat-0ab7bb3c.js => bat-6b9fff6c.js} (68%) rename web/settings/assets/{bat-162d668e.js => bat-845f69cb.js} (73%) rename web/settings/assets/{bat-d22cb137.js => bat-a037c1ad.js} (65%) rename web/settings/assets/{bat-24ad9602.js => bat-b7a74be0.js} (67%) rename web/settings/assets/{bat-7f36252e.js => bat-b9d525a8.js} (64%) rename web/settings/assets/{bat-7f9d958a.js => bat-ba22f76f.js} (63%) rename web/settings/assets/{bat-a3aa8666.js => bat-bfa3303d.js} (66%) rename web/settings/assets/{bat-198506bb.js => bat-ccce56c3.js} (64%) rename web/settings/assets/{bat-ad50e924.js => bat-f2c5f46a.js} (93%) rename web/settings/assets/{bat-cadab577.js => bat-f9655da7.js} (72%) rename web/settings/assets/{bat-2f843b85.js => bat-ff0fd7a4.js} (73%) rename web/settings/assets/{bat_smart_energy-f85a7ba3.js => bat_smart_energy-35671b9e.js} (65%) rename web/settings/assets/{chargePoint-d7e93475.js => chargePoint-2e02c1d8.js} (72%) rename web/settings/assets/{chargePoint-a724d441.js => chargePoint-2e5fe02e.js} (82%) rename web/settings/assets/{chargePoint-363cfa95.js => chargePoint-3411e592.js} (59%) rename web/settings/assets/{chargePoint-a57ed65a.js => chargePoint-4a3d6c03.js} (72%) rename web/settings/assets/{chargePoint-e966751c.js => chargePoint-64ce2ff0.js} (96%) rename web/settings/assets/{chargePoint-e34d0bf9.js => chargePoint-ca1cba52.js} (59%) rename web/settings/assets/{chargePoint-36b9cbe5.js => chargePoint-d31da4cb.js} (72%) rename web/settings/assets/{commands-f64df432.js => commands-6e8b9876.js} (88%) rename web/settings/assets/{commands-36456a01.js => commands-9cc92488.js} (84%) rename web/settings/assets/{consumption_counter-3eda920a.js => consumption_counter-28c4feb4.js} (79%) rename web/settings/assets/{counter-a4e6b35f.js => counter-034d35d7.js} (64%) rename web/settings/assets/{counter-0402fbea.js => counter-03d43b57.js} (65%) rename web/settings/assets/{counter-a8dd44f0.js => counter-06424364.js} (70%) rename web/settings/assets/{counter-96fd1246.js => counter-0d3d09ba.js} (63%) rename web/settings/assets/{counter-66796b0b.js => counter-15a40a05.js} (71%) rename web/settings/assets/{counter-6014897a.js => counter-16da78bb.js} (59%) rename web/settings/assets/{counter-1c49d5b6.js => counter-1ada1a81.js} (62%) rename web/settings/assets/{counter-88982b01.js => counter-241c338f.js} (63%) rename web/settings/assets/{counter-46e2c43c.js => counter-3b3df318.js} (53%) rename web/settings/assets/{counter-b0118850.js => counter-43bb176d.js} (81%) rename web/settings/assets/{counter-2841a6f4.js => counter-51e1f0a5.js} (66%) rename web/settings/assets/{counter-26162baf.js => counter-593a07d0.js} (73%) rename web/settings/assets/{counter-9d8705db.js => counter-5b6331d0.js} (58%) rename web/settings/assets/{counter-a45df58a.js => counter-6b70c1c4.js} (65%) rename web/settings/assets/{counter-58cdd3f8.js => counter-6cd21185.js} (72%) rename web/settings/assets/{counter-bf7b26c1.js => counter-701a2c72.js} (58%) rename web/settings/assets/{counter-131c9643.js => counter-778d0562.js} (92%) rename web/settings/assets/{counter-0f90fbb4.js => counter-7a682293.js} (71%) rename web/settings/assets/{counter-c9612c06.js => counter-87234fb2.js} (78%) rename web/settings/assets/{counter-84f2b940.js => counter-8a0376f6.js} (63%) rename web/settings/assets/{counter-cbef25b6.js => counter-925dec2d.js} (78%) rename web/settings/assets/{counter-02b4fe5b.js => counter-942689fa.js} (93%) rename web/settings/assets/{counter-63297872.js => counter-95df2c21.js} (75%) rename web/settings/assets/{counter-9fcffe23.js => counter-98126cfc.js} (63%) rename web/settings/assets/{counter-4363f779.js => counter-9ab1cf22.js} (68%) rename web/settings/assets/{counter-0a8d8873.js => counter-a327434b.js} (76%) rename web/settings/assets/{counter-d2e4dcd3.js => counter-a35b5fec.js} (77%) rename web/settings/assets/{counter-a4db7e1c.js => counter-a762a464.js} (63%) rename web/settings/assets/{counter-fa94f200.js => counter-ad41b953.js} (63%) rename web/settings/assets/{counter-f9ff4c43.js => counter-c0da35a2.js} (68%) rename web/settings/assets/{counter-90cbf7c3.js => counter-c26c7ca0.js} (65%) rename web/settings/assets/{counter-fe004f9c.js => counter-d606c310.js} (54%) rename web/settings/assets/{counter-aa4c34e5.js => counter-da1dd0be.js} (66%) rename web/settings/assets/{counter-e40d6637.js => counter-f01de2ea.js} (55%) rename web/settings/assets/{counter-ea3377d7.js => counter-f8177ec2.js} (93%) rename web/settings/assets/{counter_consumption-91fffa45.js => counter_consumption-452fb197.js} (71%) rename web/settings/assets/{counter_sm-644407b2.js => counter_sm-5e4b1fe5.js} (87%) rename web/settings/assets/{device-de77a290.js => device-07e03083.js} (71%) rename web/settings/assets/{device-da4c8a0c.js => device-0a55e2f7.js} (62%) rename web/settings/assets/{device-95a4fc1b.js => device-0bc39379.js} (69%) rename web/settings/assets/{device-311f3163.js => device-0c3fc809.js} (71%) rename web/settings/assets/{device-3be21bca.js => device-0f31e958.js} (69%) rename web/settings/assets/{device-36206448.js => device-1439cbf1.js} (77%) rename web/settings/assets/{device-a9dd072b.js => device-2d12e320.js} (77%) rename web/settings/assets/{device-0418b69c.js => device-3446cb73.js} (76%) rename web/settings/assets/{device-87d9128d.js => device-37b882f6.js} (63%) rename web/settings/assets/{device-7d51e530.js => device-38d5b6fd.js} (76%) rename web/settings/assets/{device-9e672cae.js => device-3caedbbd.js} (74%) rename web/settings/assets/{device-ba69bd6e.js => device-3e65a99e.js} (66%) rename web/settings/assets/{device-c73cffb1.js => device-40e95f0e.js} (89%) rename web/settings/assets/{device-a2b8c57b.js => device-44136cf2.js} (74%) rename web/settings/assets/{device-8c096b1c.js => device-46241bf0.js} (74%) rename web/settings/assets/{device-4d1a23d8.js => device-4749b385.js} (77%) rename web/settings/assets/{device-f88bddc1.js => device-48658977.js} (69%) rename web/settings/assets/{device-614a3bbf.js => device-48744246.js} (73%) rename web/settings/assets/{device-b830b43e.js => device-4faa8341.js} (83%) rename web/settings/assets/{device-edff48ee.js => device-51fb9fdb.js} (83%) rename web/settings/assets/{device-add01a51.js => device-5457868d.js} (73%) rename web/settings/assets/{device-bc822556.js => device-5e2f3c97.js} (76%) rename web/settings/assets/{device-abe914f8.js => device-6065b001.js} (75%) rename web/settings/assets/{device-897ed9c7.js => device-630d88cd.js} (74%) rename web/settings/assets/{device-a653fa8f.js => device-63843d32.js} (74%) rename web/settings/assets/{device-59d8f491.js => device-66218d05.js} (64%) rename web/settings/assets/{device-ca985fe7.js => device-6aa86d28.js} (69%) rename web/settings/assets/{device-36d1c02e.js => device-6c438877.js} (76%) rename web/settings/assets/{device-c03a1f17.js => device-6dbd2fd0.js} (69%) rename web/settings/assets/{device-b114c41e.js => device-6e2ecab6.js} (69%) rename web/settings/assets/{device-4753a209.js => device-6e2f0696.js} (78%) rename web/settings/assets/{device-c280b8ae.js => device-70a2865d.js} (78%) rename web/settings/assets/{device-6e97a762.js => device-723e5136.js} (86%) rename web/settings/assets/{device-ef5e14d8.js => device-7352834a.js} (73%) rename web/settings/assets/{device-5ed5b74b.js => device-75d75106.js} (75%) rename web/settings/assets/{device-d9cb59b2.js => device-77829da3.js} (63%) rename web/settings/assets/{device-08617811.js => device-78619adc.js} (76%) rename web/settings/assets/{device-9957bca2.js => device-789bc206.js} (73%) rename web/settings/assets/{device-35fe94a8.js => device-793ea822.js} (69%) rename web/settings/assets/{device-28efaad6.js => device-7ba6df48.js} (73%) rename web/settings/assets/{device-b978ff0c.js => device-7dbbe461.js} (78%) rename web/settings/assets/{device-c57e2427.js => device-838dac1d.js} (87%) rename web/settings/assets/{device-aa041e22.js => device-85ba0d9e.js} (73%) rename web/settings/assets/{device-1c1308a7.js => device-891343b7.js} (62%) rename web/settings/assets/{device-26cb01ff.js => device-8a6b31ac.js} (86%) rename web/settings/assets/{device-5c1283a2.js => device-8f44d501.js} (69%) rename web/settings/assets/{device-34a5fde6.js => device-90a7548e.js} (90%) rename web/settings/assets/{device-baaf54be.js => device-952016bf.js} (91%) rename web/settings/assets/{device-acd658a9.js => device-9c1661fe.js} (74%) rename web/settings/assets/{device-0067586f.js => device-9c39a93c.js} (69%) rename web/settings/assets/{device-587feb6a.js => device-a705c660.js} (73%) rename web/settings/assets/{device-3e5fa86e.js => device-a8b3ffa0.js} (63%) rename web/settings/assets/{device-dbf66cd3.js => device-ad797bf7.js} (69%) rename web/settings/assets/{device-f33854c7.js => device-b028c583.js} (71%) rename web/settings/assets/{device-b695068a.js => device-b6b82861.js} (77%) rename web/settings/assets/{device-c9d7c99b.js => device-b915ee50.js} (80%) rename web/settings/assets/{device-a68a7f61.js => device-c057d288.js} (69%) rename web/settings/assets/{device-4561c08a.js => device-c1e4152e.js} (70%) rename web/settings/assets/{device-953c515a.js => device-c6a5b18f.js} (70%) rename web/settings/assets/{device-e89a1f36.js => device-cad9fdab.js} (73%) rename web/settings/assets/{device-7b75323a.js => device-cbcf5efd.js} (76%) rename web/settings/assets/{device-669b1055.js => device-d2e67bbb.js} (63%) rename web/settings/assets/{device-459d681f.js => device-d4bdb914.js} (69%) rename web/settings/assets/{device-5be5124f.js => device-dae4911e.js} (78%) rename web/settings/assets/{device-894e1e36.js => device-e138ac10.js} (69%) rename web/settings/assets/{device-d3973c81.js => device-e4446102.js} (62%) rename web/settings/assets/{device-c318fc1d.js => device-e93f3043.js} (63%) rename web/settings/assets/{device-17d5e025.js => device-ede5926f.js} (80%) rename web/settings/assets/{device-7f3ca9c5.js => device-f14cbc13.js} (69%) rename web/settings/assets/{device-bef28d96.js => device-f1d14f4e.js} (90%) rename web/settings/assets/{device-476e3af1.js => device-f626b3aa.js} (62%) rename web/settings/assets/{device-47dd1fe2.js => device-faa95e47.js} (74%) rename web/settings/assets/{device-bebe8eea.js => device-fcb0b9c0.js} (62%) rename web/settings/assets/{device-bac53175.js => device-fef9b6f6.js} (74%) rename web/settings/assets/{displayTheme-635b4268.js => displayTheme-178db1df.js} (81%) rename web/settings/assets/{displayTheme-dcfb0591.js => displayTheme-c2dceb48.js} (95%) rename web/settings/assets/{electricity_tariff-b686879b.js => electricity_tariff-030b73c0.js} (74%) rename web/settings/assets/{electricity_tariff-6e1968b0.js => electricity_tariff-0d25f98f.js} (74%) rename web/settings/assets/{electricity_tariff-a7206626.js => electricity_tariff-2304915c.js} (68%) rename web/settings/assets/{electricity_tariff-3bf8dd25.js => electricity_tariff-b497922e.js} (84%) rename web/settings/assets/{electricity_tariff-bb2e8d54.js => electricity_tariff-bde56165.js} (72%) rename web/settings/assets/{electricity_tariff-fbcf702e.js => electricity_tariff-d0edfdb4.js} (85%) rename web/settings/assets/{electricity_tariff-40bd5da8.js => electricity_tariff-ed71dfac.js} (90%) rename web/settings/assets/{electricity_tariff-f8256f22.js => electricity_tariff-f3b38e11.js} (80%) rename web/settings/assets/{external_inverter-6433fd21.js => external_inverter-8207d928.js} (82%) rename web/settings/assets/{index-5b5e1b75.js => index-e4c17b07.js} (89%) rename web/settings/assets/{inverter-71e5d1d9.js => inverter-0852f06a.js} (66%) rename web/settings/assets/{inverter-1d570cc3.js => inverter-0d5f082e.js} (63%) rename web/settings/assets/{inverter-f5498730.js => inverter-10de1272.js} (63%) rename web/settings/assets/{inverter-6e1544e1.js => inverter-1a358f95.js} (82%) rename web/settings/assets/{inverter-2734679f.js => inverter-208d8966.js} (64%) create mode 100644 web/settings/assets/inverter-236b1784.js delete mode 100644 web/settings/assets/inverter-288f20ba.js rename web/settings/assets/{inverter-28f2d192.js => inverter-36706c9a.js} (66%) delete mode 100644 web/settings/assets/inverter-368435ba.js rename web/settings/assets/{inverter-3ba45e90.js => inverter-3dafbe7c.js} (63%) rename web/settings/assets/{inverter-f9f11d2f.js => inverter-3de69e58.js} (67%) rename web/settings/assets/{inverter-6ff09b8a.js => inverter-3e8be295.js} (86%) rename web/settings/assets/{inverter-605fa6ec.js => inverter-4b55caa6.js} (75%) rename web/settings/assets/{inverter-cdc91938.js => inverter-84d0a3ba.js} (81%) rename web/settings/assets/{inverter-faacb770.js => inverter-878637c0.js} (71%) rename web/settings/assets/{inverter-0362bee6.js => inverter-8afb296d.js} (64%) rename web/settings/assets/{inverter-38338915.js => inverter-95466897.js} (75%) create mode 100644 web/settings/assets/inverter-ad33b033.js rename web/settings/assets/{inverter-43d63312.js => inverter-b57300f5.js} (65%) rename web/settings/assets/{inverter-87d42851.js => inverter-c68c3b52.js} (67%) rename web/settings/assets/{inverter-31850b39.js => inverter-c71098f4.js} (68%) rename web/settings/assets/{inverter-d0cfa178.js => inverter-c97efa3a.js} (77%) rename web/settings/assets/{inverter-0fca0a34.js => inverter-da060ce6.js} (63%) rename web/settings/assets/{inverter-ed07bcb8.js => inverter-df3fe723.js} (64%) rename web/settings/assets/{inverter-0e8ec83e.js => inverter-e08e7a01.js} (72%) rename web/settings/assets/{inverter-b5ee1741.js => inverter-e1663f22.js} (65%) rename web/settings/assets/{inverter-4d10a817.js => inverter-e4584f68.js} (61%) rename web/settings/assets/{inverter-22b22d69.js => inverter-eb5fcf99.js} (66%) rename web/settings/assets/{inverter-355fe1e0.js => inverter-f0a34520.js} (68%) rename web/settings/assets/{inverter-4b9a884a.js => inverter-f432c082.js} (86%) rename web/settings/assets/{inverter-dcfb460b.js => inverter-fc51cd0b.js} (73%) rename web/settings/assets/{inverter-3b4e19fa.js => inverter-fd208841.js} (67%) rename web/settings/assets/{inverter-87f2f05b.js => inverter-fe7c6fda.js} (89%) rename web/settings/assets/{inverter_secondary-7d7c0326.js => inverter_secondary-62644358.js} (82%) rename web/settings/assets/{io_action-e37f3d26.js => io_action-976bf2b0.js} (86%) rename web/settings/assets/{io_action-ccf7b188.js => io_action-b9cbb026.js} (81%) rename web/settings/assets/{io_action-0bf854b3.js => io_action-c0bcbb6c.js} (78%) rename web/settings/assets/{io_action-ea45c9b1.js => io_action-e0e64896.js} (87%) rename web/settings/assets/{io_device-e73fab6d.js => io_device-9ff50b11.js} (70%) rename web/settings/assets/{io_device-f7bfe2d9.js => io_device-ff6641fb.js} (83%) rename web/settings/assets/{monitoring-a467b16b.js => monitoring-8ab638da.js} (81%) rename web/settings/assets/{vehicle-c54ae651.js => vehicle-02f99327.js} (79%) rename web/settings/assets/{vehicle-111b97e5.js => vehicle-081d1860.js} (79%) rename web/settings/assets/{vehicle-57c44e4f.js => vehicle-2e31f054.js} (92%) rename web/settings/assets/{vehicle-5a13dbc9.js => vehicle-3688de48.js} (84%) rename web/settings/assets/{vehicle-30a8b189.js => vehicle-4ee84148.js} (89%) rename web/settings/assets/{vehicle-8c574416.js => vehicle-54d21a19.js} (78%) rename web/settings/assets/{vehicle-1d9f77b1.js => vehicle-552086ad.js} (69%) rename web/settings/assets/{vehicle-05b8b107.js => vehicle-5bf23959.js} (91%) rename web/settings/assets/{vehicle-52cf89cb.js => vehicle-62ddb254.js} (87%) rename web/settings/assets/{vehicle-d5ac3573.js => vehicle-81c54b19.js} (88%) rename web/settings/assets/{vehicle-9e586137.js => vehicle-a08311d0.js} (73%) rename web/settings/assets/{vehicle-44740467.js => vehicle-a44392fc.js} (64%) rename web/settings/assets/{vehicle-3d04897a.js => vehicle-aa814b6d.js} (93%) rename web/settings/assets/{vehicle-b1993187.js => vehicle-b55a7355.js} (74%) rename web/settings/assets/{vehicle-52abc450.js => vehicle-b6b40aa6.js} (79%) rename web/settings/assets/{vehicle-63d2e44b.js => vehicle-bc9278d5.js} (64%) rename web/settings/assets/{vehicle-be11133e.js => vehicle-ce15b972.js} (82%) rename web/settings/assets/{vehicle-fc942755.js => vehicle-d5f041d0.js} (84%) rename web/settings/assets/{vehicle-2966a953.js => vehicle-e22aaad0.js} (82%) rename web/settings/assets/{vehicle-c1d27dfd.js => vehicle-f5091955.js} (79%) rename web/settings/assets/{vehicle-0bedc131.js => vehicle-fa5f8129.js} (84%) rename web/settings/assets/{vendor-cc4615be.js => vendor-25d394b4.js} (87%) rename web/settings/assets/{vendor-axios-3dcaeec5.js => vendor-axios-ac33d60c.js} (99%) rename web/settings/assets/{vendor-bootstrap-09a7ccd9.js => vendor-bootstrap-374cd88e.js} (99%) rename web/settings/assets/{vendor-chartjs-2bc02c38.js => vendor-chartjs-94a826eb.js} (99%) rename web/settings/assets/{vendor-fortawesome-855c7d62.js => vendor-fortawesome-a02b6813.js} (99%) rename web/settings/assets/{vendor-jquery-13cad4c1.js => vendor-jquery-3364d39b.js} (99%) rename web/settings/assets/{vendor-sortablejs-7c09d6dd.js => vendor-sortablejs-0eb84ec8.js} (99%) rename web/settings/assets/{webTheme-f6f9eecb.js => webTheme-526f053f.js} (66%) rename web/settings/assets/{webTheme-b08c3f46.js => webTheme-9c8ff1fc.js} (90%) diff --git a/web/settings/assets/ChargeLog-d0f0c940.js b/web/settings/assets/ChargeLog-e7acf03d.js similarity index 97% rename from web/settings/assets/ChargeLog-d0f0c940.js rename to web/settings/assets/ChargeLog-e7acf03d.js index ec7703a796..d68e5a1ff3 100644 --- a/web/settings/assets/ChargeLog-d0f0c940.js +++ b/web/settings/assets/ChargeLog-e7acf03d.js @@ -1,3 +1,3 @@ -import{l as N,a2 as k,a3 as B,F as E}from"./vendor-fortawesome-855c7d62.js";import{_ as x,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-cc4615be.js";import{C as W}from"./index-5b5e1b75.js";import"./vendor-sortablejs-7c09d6dd.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:E},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` +import{l as N,a2 as k,a3 as B,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as x,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-25d394b4.js";import{C as W}from"./index-e4c17b07.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:E},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` `)+` `}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[13]})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1,__:[19,20,21,22]}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1,__:[24]}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])),_:1,__:[23]}))])]))])}const Ce=x(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; diff --git a/web/settings/assets/ChargePointInstallation-4bbfab0c.js b/web/settings/assets/ChargePointInstallation-4bbfab0c.js new file mode 100644 index 0000000000..d96a383374 --- /dev/null +++ b/web/settings/assets/ChargePointInstallation-4bbfab0c.js @@ -0,0 +1 @@ +import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as H}from"./index-e4c17b07.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-25d394b4.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-d31da4cb.js"),["assets/chargePoint-d31da4cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-2e5fe02e.js"),["assets/chargePoint-2e5fe02e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-64ce2ff0.js"),["assets/chargePoint-64ce2ff0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-3411e592.js"),["assets/chargePoint-3411e592.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-ca1cba52.js"),["assets/chargePoint-ca1cba52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-4a3d6c03.js"),["assets/chargePoint-4a3d6c03.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-2e02c1d8.js"),["assets/chargePoint-2e02c1d8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-6e8b9876.js"),["assets/commands-6e8b9876.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-9cc92488.js"),["assets/commands-9cc92488.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:0},Oe={key:1},Fe={key:0},Re={key:0},Ne={key:1},Ze={key:1},je={key:0},Je={key:2},$e={key:4};function He(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])),_:1,__:[8]}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[10]}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[12]}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2,__:[15]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[18]})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),u("span",Te,[a(y,{class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),d.endsWith("/0")?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Oe,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Fe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[21]}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Ne,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[22,23,24]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ze,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[25]}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[26,27,28,29]})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[30]}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",je," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2,__:[31,32,33]},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",$e,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[34]}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[37]},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[39,40]},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const Ge=z(ze,[["render",He],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,Ge as b,en as c}; diff --git a/web/settings/assets/ChargePointInstallation-acc5f333.js b/web/settings/assets/ChargePointInstallation-acc5f333.js deleted file mode 100644 index 9bc9196ef3..0000000000 --- a/web/settings/assets/ChargePointInstallation-acc5f333.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,aa as R,al as N,G as Z,am as j,an as $,F as J,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-855c7d62.js";import{_ as V,C as H}from"./index-5b5e1b75.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l,m as d,x as _,E as o,B as i,F as v,G as a,A as p,a2 as T,a3 as O,N as B,q as oe,y as U,z as b,M as S,D as le}from"./vendor-cc4615be.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=W(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),se={name:"ChargePointConfigFallback",mixins:[re]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,f,P,h,t){const w=m("openwb-base-alert"),c=m("openwb-base-textarea");return l(),d("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),_(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),d("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(c,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=y=>n.updateConfiguration(y,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[p("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=W(se,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=W(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,f,P,h,t){return l(),d("div",fe)}const _e=W(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>V(()=>import("./chargePoint-36b9cbe5.js"),["assets/chargePoint-36b9cbe5.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>V(()=>import("./chargePoint-a724d441.js"),["assets/chargePoint-a724d441.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>V(()=>import("./chargePoint-e966751c.js"),["assets/chargePoint-e966751c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>V(()=>import("./chargePoint-363cfa95.js"),["assets/chargePoint-363cfa95.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>V(()=>import("./chargePoint-e34d0bf9.js"),["assets/chargePoint-e34d0bf9.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>V(()=>import("./chargePoint-a57ed65a.js"),["assets/chargePoint-a57ed65a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>V(()=>import("./chargePoint-d7e93475.js"),["assets/chargePoint-d7e93475.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>V(()=>import("./commands-f64df432.js"),["assets/commands-f64df432.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>V(()=>import("./commands-36456a01.js"),["assets/commands-36456a01.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,f,P,h,t){const w=m("openwb-base-heading");return l(),d(B,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(f.chargePoint.type)+'" ',1)]),_:1}),(l(),_(O(t.getChargePointSettingsComponent()),{"charge-point":f.chargePoint,"onUpdate:configuration":e[0]||(e[0]=c=>t.updateConfiguration(c))},null,40,["charge-point"])),e[1]||(e[1]=p("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(f.chargePoint.type)+'" ',1)]),_:1}),(l(),_(O(t.getChargePointCommandsComponent()),{"charge-point":f.chargePoint},null,8,["charge-point"]))],64)}const we=W(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,$);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:J},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,f,P,h,t){const w=m("openwb-base-modal-dialog"),c=m("font-awesome-icon"),y=m("openwb-base-avatar"),C=m("openwb-base-text-input"),z=m("openwb-base-button-group-input"),D=m("openwb-base-card");return l(),d(B,null,[a(w,{show:h.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(D,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(g=>[g.collapsed==!0?(l(),d("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(c,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),d("span",Ce,[a(c,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):b("",!0),t.plan.frequency.selected=="daily"?(l(),d("span",Pe,[a(c,{icon:["fas","calendar-week"]})])):b("",!0),t.plan.frequency.selected=="weekly"?(l(),d("span",Ve,[a(c,{icon:["fas","calendar-alt"]})])):b("",!0)],2)):b("",!0),g.collapsed==!1?(l(),d("span",Le,[a(y,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(c,{icon:["fas","copy"]})]),_:1}),a(y,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(c,{icon:["fas","trash"]})]),_:1})])):b("",!0)]),default:o(()=>[a(C,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=g=>t.plan.name=g),title:"Bezeichnung"},null,8,["modelValue"]),a(z,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=g=>t.plan.active=g),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=g=>t.plan.time[0]=g),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=g=>t.plan.time[1]=g),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(z,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=g=>t.plan.frequency.selected=g),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),_(C,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=g=>t.plan.frequency.once[0]=g),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):b("",!0),t.plan.frequency.selected=="once"?(l(),_(C,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=g=>t.plan.frequency.once[1]=g),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):b("",!0),t.plan.frequency.selected=="weekly"?(l(),d("div",Be,[(l(!0),d(B,null,S(n.weekdays,(g,k)=>(l(),_(z,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":I=>t.plan.frequency.weekly[k]=I,title:g,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):b("",!0)]),_:1},8,["title"])],64)}const ze=W(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,$,ne,te);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:J,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:ze},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[f,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[f]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+f].name;n.push({value:f,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let f={};e&&(f.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:f})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ae={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Se={key:0},De={key:2},Ee={key:0},xe={key:0},qe={key:1},Me={key:0},Te={key:1},Oe={key:0},Fe={key:1},Re={key:2},Ne={key:0},Ze={key:3},je={key:5};function $e(n,e,f,P,h,t){const w=m("openwb-base-modal-dialog"),c=m("font-awesome-icon"),y=m("openwb-base-avatar"),C=m("openwb-base-text-input"),z=m("openwb-base-select-input"),D=m("openwb-charge-point-proxy"),g=m("openwb-base-heading"),k=m("openwb-base-button-group-input"),I=m("openwb-base-card"),G=m("font-awesome-layers"),A=m("openwb-base-alert"),x=m("router-link"),Q=m("openwb-base-array-input"),q=m("openwb-base-range-input"),X=m("openwb-base-number-input"),Y=m("template-auto-lock-plan"),K=m("openwb-base-submit-buttons");return l(),d(B,null,[a(w,{show:h.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeChargePoint(r,h.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(h.modalChargePointIndex))+'" (ID: '+v(h.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:h.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeChargePointTemplate(r,h.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(h.modalChargePointTemplateIndex))+'" (ID: '+v(h.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),p("div",Ae,[p("form",Ue,[a(I,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!f.installAssistantActive},{header:o(()=>[a(c,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[(l(!0),d(B,null,S(t.installedChargePoints,(r,u)=>(l(),_(I,{key:u,title:r.name+" (ID: "+r.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(s=>[s.collapsed?b("",!0):(l(),_(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:L=>t.removeChargePointModal(L,u)},{default:o(()=>[a(c,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(C,{title:"Bezeichnung",subtype:"text","model-value":r.name,"onUpdate:modelValue":s=>n.updateState(u,s,"name")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[u].type},null,8,["model-value"]),r.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),d("span",Se,[a(z,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[u].template,"onUpdate:modelValue":s=>n.updateState(u,s,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):b("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),_(C,{key:1,title:"OCPP-Chargebox ID","model-value":r.ocpp_chargebox_id,"onUpdate:modelValue":s=>n.updateState(u,s,"ocpp_chargebox_id")},{help:o(()=>[...e[8]||(e[8]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):b("",!0),e[14]||(e[14]=p("hr",null,null,-1)),a(D,{"charge-point":r,"onUpdate:configuration":s=>t.updateConfiguration(u,s)},null,8,["charge-point","onUpdate:configuration"]),(r.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&r.charging_type!=="DC"?(l(),d("div",De,[e[13]||(e[13]=p("hr",null,null,-1)),a(g,null,{default:o(()=>[...e[9]||(e[9]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[9]}),a(k,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.auto_phase_switch_hw,"onUpdate:modelValue":s=>n.updateState(u,s,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(k,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.control_pilot_interruption_hw,"onUpdate:modelValue":s=>n.updateState(u,s,"control_pilot_interruption_hw")},{help:o(()=>[...e[10]||(e[10]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(g,null,{default:o(()=>[...e[11]||(e[11]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[11]}),a(k,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.connected_phases,"onUpdate:modelValue":s=>n.updateState(u,s,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(k,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":r.phase_1,"onUpdate:modelValue":s=>n.updateState(u,s,"phase_1")},{help:o(()=>[...e[12]||(e[12]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),p("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),p("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),p("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),p("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):b("",!0)]),_:2,__:[14]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),d("hr",Ee)):b("",!0),a(z,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":h.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=r=>h.chargePointToAdd=r),"onInput:add":t.addChargePoint},{help:o(()=>e[15]||(e[15]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),p("br",null,null,-1),p("ul",null,[p("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),p("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),p("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),p("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),p("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),p("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),e[44]||(e[44]=p("hr",{class:"border-secondary"},null,-1)),a(I,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(c,{icon:["far","file"]}),a(c,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[16]||(e[16]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),_(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(c,{icon:["fas","plus"]})]),_:1},8,["onClick"])):b("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),d("div",xe,[a(A,{subtype:"info"},{default:o(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(l(),d("div",qe,[(l(!0),d(B,null,S(t.chargePointTemplates,(r,u)=>(l(),_(I,{key:u,title:`${r.name} (ID: ${t.getChargePointTemplateIndex(u)})`,collapsible:!0,collapsed:!0},{actions:o(s=>[s.collapsed==!1?(l(),d("span",Me,[a(y,{class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:L=>t.addChargePointTemplate(L,u)},{default:o(()=>[a(c,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),u.endsWith("/0")?b("",!0):(l(),_(y,{key:0,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:L=>t.removeChargePointTemplateModal(L,u)},{default:o(()=>[a(c,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))])):b("",!0)]),default:o(()=>[a(C,{title:"Bezeichnung",subtype:"text","model-value":r.name,disabled:u.endsWith("/0"),"onUpdate:modelValue":s=>n.updateState(u,s,"name")},le({_:2},[u.endsWith("/0")?{name:"help",fn:o(()=>[e[18]||(e[18]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),_(k,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":r.charging_type,"onUpdate:modelValue":s=>n.updateState(u,s,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):b("",!0),e[42]||(e[42]=p("hr",null,null,-1)),a(g,null,{default:o(()=>[...e[19]||(e[19]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[19]}),r.valid_tags.length>0?(l(),d("div",Te,[a(A,{subtype:"info"},{default:o(()=>[e[21]||(e[21]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[20]||(e[20]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[20]}),e[22]||(e[22]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&r.disable_after_unplug?(l(),d("div",Oe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),d("div",Fe,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[23]||(e[23]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[21,22,23]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":r.valid_tags},null,8,["model-value"])])):(l(),d("div",Re,[a(A,{subtype:"info"},{default:o(()=>[e[25]||(e[25]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[24]||(e[24]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[24]}),e[26]||(e[26]=i(".",-1)),e[27]||(e[27]=p("br",null,null,-1)),e[28]||(e[28]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[25,26,27,28]})])),e[43]||(e[43]=p("hr",null,null,-1)),a(g,null,{default:o(()=>[...e[29]||(e[29]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[29]}),a(A,{subtype:"info"},{default:o(()=>[e[30]||(e[30]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[31]||(e[31]=p("br",null,null,-1)),e[32]||(e[32]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),r.charging_type==="AC"?(l(),d("span",Ne," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):b("",!0),e[33]||(e[33]=p("br",null,null,-1)),e[34]||(e[34]=i(" Komplexere Installationen mit mehreren Ladepunkten werden im ",-1)),e[35]||(e[35]=p("a",{href:"https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"},"Wiki zum Lastmanagement",-1)),e[36]||(e[36]=i(" beschrieben. ",-1))]),_:2,__:[30,31,32,33,34,35,36]},1024),r.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),d("div",Ze,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":s=>n.updateState(u,s,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":s=>n.updateState(u,s,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),_(X,{key:4,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":s=>n.updateState(u,n.dc_power2ac_current(s),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),f.installAssistantActive?b("",!0):(l(),d("div",je,[e[41]||(e[41]=p("hr",null,null,-1)),a(g,null,{default:o(()=>[...e[37]||(e[37]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[37]}),a(k,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.active,"onUpdate:modelValue":s=>n.updateState(u,s,"autolock.active")},{help:o(()=>[...e[38]||(e[38]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.wait_for_charging_end,"onUpdate:modelValue":s=>n.updateState(u,s,"autolock.wait_for_charging_end")},{help:o(()=>[...e[39]||(e[39]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(g,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(s=>t.addChargePointTemplateAutolockPlan(u),["stop"])},{default:o(()=>[a(c,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[40]||(e[40]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[40]},1024)])),(l(!0),d(B,null,S(r.autolock.plans,(s,L)=>(l(),_(Y,{key:L,"model-value":s,"template-id":r.id,"onUpdate:modelValue":E=>n.updateState(u,E,`autolock.plans.${L}`),onSendCommand:e[3]||(e[3]=E=>n.$emit("sendCommand",E))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[42,43]},1032,["title"]))),128))]))]),_:1}),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=r=>n.$emit("save")),onReset:e[5]||(e[5]=r=>n.$emit("reset")),onDefaults:e[6]||(e[6]=r=>n.$emit("defaults"))})])])],64)}const Je=W(Ie,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ye=Object.freeze(Object.defineProperty({__proto__:null,default:Je},Symbol.toStringTag,{value:"Module"}));export{re as C,ce as a,Je as b,Ye as c}; diff --git a/web/settings/assets/Chart-f2027a6a.js b/web/settings/assets/Chart-899aaa0c.js similarity index 98% rename from web/settings/assets/Chart-f2027a6a.js rename to web/settings/assets/Chart-899aaa0c.js index 0a0a17cc35..206e9a5927 100644 --- a/web/settings/assets/Chart-f2027a6a.js +++ b/web/settings/assets/Chart-899aaa0c.js @@ -1 +1 @@ -import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-855c7d62.js";import{C as z}from"./index-5b5e1b75.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-2bc02c38.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; +import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-e4c17b07.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-94a826eb.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; diff --git a/web/settings/assets/CloudConfig-50a55ac2.js b/web/settings/assets/CloudConfig-74bbfdff.js similarity index 96% rename from web/settings/assets/CloudConfig-50a55ac2.js rename to web/settings/assets/CloudConfig-74bbfdff.js index a5c42e32e7..a90e1c9f67 100644 --- a/web/settings/assets/CloudConfig-50a55ac2.js +++ b/web/settings/assets/CloudConfig-74bbfdff.js @@ -1 +1 @@ -import{l as S,ab as q,F as z}from"./vendor-fortawesome-855c7d62.js";import{C as P}from"./index-5b5e1b75.js";import{_ as Z,u as a,l,m as b,G as r,E as t,A as m,x as p,z as i,D as h,N as I,B as s,q as k}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";S.add(q);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(n))B.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigCreateForm"},N={key:2,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:3,name:"cloudConfigured"},F={class:"row justify-content-center"};function j(n,e,B,G,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),w=a("openwb-base-card"),f=a("openwb-base-text-input"),_=a("openwb-base-button-group-input"),C=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),b(I,null,[r(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[s(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),m("div",M,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=s(" Du musst der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=s(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),b("div",x,[r(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=s(" Du hast der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=s(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?i("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[s(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?i("",!0):(l(),b("form",R,[r(w,{title:"Neuen Zugang erstellen"},{default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>e[21]||(e[21]=[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutze die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an ",-1),m("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),s(" . ",-1)])),_:1,__:[21]})]),_:1})])),d.cloudBridgeKey?i("",!0):(l(),b("form",N,[r(w,{title:"Vorhandenen Zugang einrichten"},h({default:t(()=>[r(f,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),r(f,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),r(_,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[m("div",U,[r(v,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[s(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),b("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[s(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):i("",!0),r(w,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[m("div",F,[r(v,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[s(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>e[26]||(e[26]=[m("span",null,[s(" Mit diesen Zugangsdaten kannst Du dich in der "),m("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1)])),_:1,__:[26]}),r(f,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),r(f,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=m("hr",null,null,-1)),r(_,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:1,__:[30]})])):i("",!0),d.cloudBridgeKey?(l(),p(W,{key:4,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):i("",!0)]))])],64)}const X=Z(K,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{X as default}; +import{l as S,aa as q,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-e4c17b07.js";import{_ as Z,u as a,l,m as b,G as r,E as t,A as m,x as p,z as i,D as h,N as I,B as s,q as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(q);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(n))B.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigCreateForm"},N={key:2,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:3,name:"cloudConfigured"},F={class:"row justify-content-center"};function j(n,e,B,G,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),w=a("openwb-base-card"),f=a("openwb-base-text-input"),_=a("openwb-base-button-group-input"),C=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),b(I,null,[r(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[s(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),m("div",M,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=s(" Du musst der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=s(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),b("div",x,[r(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=s(" Du hast der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=s(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?i("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[s(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?i("",!0):(l(),b("form",R,[r(w,{title:"Neuen Zugang erstellen"},{default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>e[21]||(e[21]=[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutze die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an ",-1),m("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),s(" . ",-1)])),_:1,__:[21]})]),_:1})])),d.cloudBridgeKey?i("",!0):(l(),b("form",N,[r(w,{title:"Vorhandenen Zugang einrichten"},h({default:t(()=>[r(f,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),r(f,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),r(_,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[m("div",U,[r(v,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[s(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),b("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[s(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):i("",!0),r(w,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[m("div",F,[r(v,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[s(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>e[26]||(e[26]=[m("span",null,[s(" Mit diesen Zugangsdaten kannst Du dich in der "),m("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1)])),_:1,__:[26]}),r(f,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),r(f,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=m("hr",null,null,-1)),r(_,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:1,__:[30]})])):i("",!0),d.cloudBridgeKey?(l(),p(W,{key:4,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):i("",!0)]))])],64)}const X=Z(K,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/DataManagement-337c2c94.js b/web/settings/assets/DataManagement-337c2c94.js new file mode 100644 index 0000000000..bbddd01a3f --- /dev/null +++ b/web/settings/assets/DataManagement-337c2c94.js @@ -0,0 +1 @@ +import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-a02b6813.js";import{_ as B,C as G}from"./index-e4c17b07.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-25d394b4.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-170635e1.js"),["assets/backup_cloud-170635e1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-acb80510.js"),["assets/backup_cloud-acb80510.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-08aafac7.js"),["assets/backup_cloud-08aafac7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-436cb5f2.js"),["assets/backup_cloud-436cb5f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-8ab638da.js"),["assets/monitoring-8ab638da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,_]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,_]of Object.entries(n))if(_==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),_(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},Re={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringConfigured"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,_,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),R=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),m("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(R,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(x,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",Re,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[v.key]=f,title:v.label,options:r.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":n.monitoringConfigured,"hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))},null,8,["form-name"])]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DataManagement-d8247a90.js b/web/settings/assets/DataManagement-d8247a90.js deleted file mode 100644 index 009085212b..0000000000 --- a/web/settings/assets/DataManagement-d8247a90.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-855c7d62.js";import{_ as B,C as G}from"./index-5b5e1b75.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m as f,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-cc4615be.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,r,_,l,a){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),f("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),f("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-f1402716.js"),["assets/backup_cloud-f1402716.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-63db317f.js"),["assets/backup_cloud-63db317f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-d519b0e4.js"),["assets/backup_cloud-d519b0e4.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-7386c81c.js"),["assets/backup_cloud-7386c81c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,r,_,l,a){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),f(W,null,[r.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(r.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(a.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>a.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>a.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,r,_,l,a){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),f("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),f("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-a467b16b.js"),["assets/monitoring-a467b16b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,r,_,l,a){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),f(W,null,[r.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(r.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(a.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>a.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,_]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,_]of Object.entries(n))if(_==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),_(!0)}).catch(a=>{if(a.response){console.error(a.response.status,a.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+a.response.status+": "+a.response.data}else a.request?(console.error(a.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",a.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},Ve={class:"input-group"},Ee={class:"input-group-prepend"},je={class:"input-group-text"},ze={class:"custom-file"},Pe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={class:"input-group-append"},xe=["disabled"],Ue={class:"row justify-content-center"},qe={class:"col-md-4 d-flex py-1 justify-content-center"},He={key:1,name:"resetForm"},Ne={class:"row justify-content-center"},$e={class:"col-md-4 d-flex py-1 justify-content-center"},Ie={key:2,name:"monitoringConfigured"},Ge={key:0},Je={key:1},Ke={key:0};function Ze(n,e,r,_,l,a){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),R=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),f("div",be,[r.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=m=>l.warningAcknowledged=m),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||r.installAssistantActive?(u(),f("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>{var m,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=g=>a.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),f("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=g=>a.updateSelectedRestoreFile(g))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=g=>a.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=g=>a.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),r.showBackupCloudSection?(u(),f("form",Ae,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:a.backupCloudList,"model-value":(m=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:m.type,"onUpdate:modelValue":e[5]||(e[5]=g=>a.updateSelectedBackupCloud(g))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),f("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=g=>n.updateState("openWB/system/backup_cloud/backup_before_update",g))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(R,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=g=>a.sendSystemCommand("createCloudBackup",{}))}),t(x,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=g=>a.updateConfiguration("openWB/system/backup_cloud/config",g)),onSendCommand:e[9]||(e[9]=g=>a.sendSystemCommand(g.command,g.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=g=>n.$emit("save")),onReset:e[11]||(e[11]=g=>n.$emit("reset")),onDefaults:e[12]||(e[12]=g=>n.$emit("defaults"))})])):w("",!0)]}),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ve,[s("div",Ee,[s("div",je,[t(h,{icon:["fas","file-archive"]})])]),s("div",ze,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=m=>a.updateSelectedDataMigrationFile(m))},null,32),s("label",Pe,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Re,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=m=>a.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,xe)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),f(W,null,T(l.dataMigrationConfig,m=>(u(),f("div",{key:m.sectionName},[t(k,null,{default:i(()=>[o(b(m.sectionName),1)]),_:2},1024),(u(!0),f(W,null,T(m.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":g=>l.dataMigrationMapping[v.key]=g,title:v.label,options:a.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",Ue,[s("div",qe,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=m=>a.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),r.installAssistantActive?w("",!0):(u(),f("form",He,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ne,[s("div",$e,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=m=>a.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),r.installAssistantActive?w("",!0):(u(),f("form",Ie,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":n.monitoringConfigured,"hide-defaults":!0,onSave:e[19]||(e[19]=m=>n.$emit("save")),onReset:e[20]||(e[20]=m=>n.$emit("reset"))},null,8,["form-name"])]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),f("div",Ge,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),f("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:a.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=m=>a.updateSelectedMonitoring(m))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),f("div",Ke,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=m=>a.updateConfiguration("openWB/optional/monitoring/config",m))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Qe=C(fe,[["render",Ze],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),tn=Object.freeze(Object.defineProperty({__proto__:null,default:Qe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Qe as D,ae as M,tn as a}; diff --git a/web/settings/assets/DebugConfig-7ec1f92a.js b/web/settings/assets/DebugConfig-f413af66.js similarity index 95% rename from web/settings/assets/DebugConfig-7ec1f92a.js rename to web/settings/assets/DebugConfig-f413af66.js index 1509700f55..937a51f698 100644 --- a/web/settings/assets/DebugConfig-7ec1f92a.js +++ b/web/settings/assets/DebugConfig-f413af66.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-5b5e1b75.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-855c7d62.js";import{a as y}from"./vendor-axios-3dcaeec5.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-sortablejs-7c09d6dd.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +import{C as x}from"./index-e4c17b07.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! `+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=N.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),_=l("openwb-base-select-input"),w=l("openwb-base-alert"),k=l("openwb-base-card");return u(),g(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),g(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[p(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),g(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[p(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),g(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[p(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),g(w,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),p(_,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1,__:[4,5,6]})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Erros",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),_=l("openwb-base-card"),w=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[p(_,{title:"Protokollierung"},{default:r(()=>[p(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])),_:1},8,["model-value"]),p(c,{subtype:"warning"},{default:r(()=>e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])),_:1,__:[5]})]),_:1}),p(w,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),g(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; diff --git a/web/settings/assets/GeneralChargeConfig-9090b268.js b/web/settings/assets/GeneralChargeConfig-f5f65896.js similarity index 83% rename from web/settings/assets/GeneralChargeConfig-9090b268.js rename to web/settings/assets/GeneralChargeConfig-f5f65896.js index 8d05d7d684..8b5f737910 100644 --- a/web/settings/assets/GeneralChargeConfig-9090b268.js +++ b/web/settings/assets/GeneralChargeConfig-f5f65896.js @@ -1 +1 @@ -import{_ as f,C as L}from"./index-5b5e1b75.js";import{_ as O}from"./dynamic-import-helper-be004503.js";import{l as q,a6 as D,a7 as F,F as A}from"./vendor-fortawesome-855c7d62.js";import{_ as B,u,l as a,m as s,x as b,E as r,B as i,F as _,G as n,A as d,a2 as U,a3 as N,N as I,z as y}from"./vendor-cc4615be.js";const M={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},R=B(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),Z={name:"ElectricityTariffConfigFallback",mixins:[R]},H={class:"backup-cloud-fallback"},j={key:1};function G(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+_(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",j,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,_(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);q.add(D,F);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:A},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>O(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-a7206626.js"),["assets/electricity_tariff-a7206626.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-fbcf702e.js"),["assets/electricity_tariff-fbcf702e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-f8256f22.js"),["assets/electricity_tariff-f8256f22.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-bb2e8d54.js"),["assets/electricity_tariff-bb2e8d54.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-3bf8dd25.js"),["assets/electricity_tariff-3bf8dd25.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-b686879b.js"),["assets/electricity_tariff-b686879b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-40bd5da8.js"),["assets/electricity_tariff-40bd5da8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-6e1968b0.js"),["assets/electricity_tariff-6e1968b0.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function x(t,e,g,W,z,m){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),h=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),b(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),b(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(h,null,{default:r(()=>[i(' Einstellungen für Modul "'+_(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),b(N(m.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=c=>m.updateConfiguration(c))},null,40,["electricity-tariff"]))],64)}const Q=B(K,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),X={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:Q},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Y={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:1},pe={key:0},ge={key:1},fe={key:0};function me(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),h=u("openwb-base-range-input"),c=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),C=u("openwb-electricity-tariff-proxy"),$=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",Y,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),b(h,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):y("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(c,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:20,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):y("",!0),n(c,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:m.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>m.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(C,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>m.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):y("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speicher-Entladung",buttons:[{buttonValue:"no_limit",text:"immer"},{buttonValue:"limit_stop",text:"gesperrt, wenn Fahrzeug lädt"},{buttonValue:"limit_to_home_consumption",text:"für Hausverbrauch"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>e[32]||(e[32]=[i(" Wenn das Entladen des Speichers immer erlaubt ist, wird das Fahrzeug aus dem Speicher geladen anstatt Strom aus dem Netz zu beziehen. ",-1),d("br",null,null,-1),i(' Im Modus "gesperrt, wenn Fahrzeug lädt", wird die Entladung nur zugelassen, wenn alle Fahrzeuge im Modus PV-Laden ohne Mindeststrom oder Zielladen mit PV-Überschuss laden.',-1),d("br",null,null,-1),i(' Wenn das Entladen des Speichers auf den Hausverbrauch begrenzt ist und mindestens Fahrzeuge nicht im Modus PV-Laden ohne Mindeststrom oder Zielladen lädt, wird die Entladung des Speichers in Höhe des Hausverbrauchs zugelassen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "gesperrt, wenn Fahrzeug lädt".',-1),d("br",null,null,-1),i(" Diese Einstellung übersteuert ggf die Einstellungen zur Speicher-Beachtung im Modus PV-Laden. ",-1)])),_:1},8,["model-value"])])):(a(),s("div",de,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[33]})]))])):y("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,V;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",pe,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(a(),s("div",ge,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=v=>t.updateState("openWB/optional/ocpp/config",v,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[35]||(e[35]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[35]}),n($,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=v=>t.updateState("openWB/optional/ocpp/config",v,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":(V=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:V.version,"onUpdate:modelValue":e[13]||(e[13]=v=>t.updateState("openWB/optional/ocpp/config",v,"version"))},null,8,["model-value"])])):y("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const ce=B(X,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{R as E,ye as G}; +import{_ as f,C as L}from"./index-e4c17b07.js";import{_ as O}from"./dynamic-import-helper-be004503.js";import{l as q,a6 as D,a7 as F,F as A}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as b,E as r,B as i,F as _,G as n,A as d,a2 as U,a3 as N,N as I,z as y}from"./vendor-25d394b4.js";const M={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},R=B(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),Z={name:"ElectricityTariffConfigFallback",mixins:[R]},H={class:"backup-cloud-fallback"},j={key:1};function G(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+_(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",j,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,_(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);q.add(D,F);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:A},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>O(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-2304915c.js"),["assets/electricity_tariff-2304915c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-d0edfdb4.js"),["assets/electricity_tariff-d0edfdb4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-f3b38e11.js"),["assets/electricity_tariff-f3b38e11.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-bde56165.js"),["assets/electricity_tariff-bde56165.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-b497922e.js"),["assets/electricity_tariff-b497922e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-030b73c0.js"),["assets/electricity_tariff-030b73c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ed71dfac.js"),["assets/electricity_tariff-ed71dfac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-0d25f98f.js"),["assets/electricity_tariff-0d25f98f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function x(t,e,g,W,z,m){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),h=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),b(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),b(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(h,null,{default:r(()=>[i(' Einstellungen für Modul "'+_(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),b(N(m.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=c=>m.updateConfiguration(c))},null,40,["electricity-tariff"]))],64)}const Q=B(K,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),X={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:Q},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Y={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:1},pe={key:0},ge={key:1},fe={key:0};function me(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),h=u("openwb-base-range-input"),c=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),C=u("openwb-electricity-tariff-proxy"),$=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",Y,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),b(h,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):y("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(c,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:20,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):y("",!0),n(c,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:m.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>m.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(C,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>m.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):y("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speicher-Entladung",buttons:[{buttonValue:"no_limit",text:"immer"},{buttonValue:"limit_stop",text:"gesperrt, wenn Fahrzeug lädt"},{buttonValue:"limit_to_home_consumption",text:"für Hausverbrauch"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>e[32]||(e[32]=[i(" Wenn das Entladen des Speichers immer erlaubt ist, wird das Fahrzeug aus dem Speicher geladen anstatt Strom aus dem Netz zu beziehen. ",-1),d("br",null,null,-1),i(' Im Modus "gesperrt, wenn Fahrzeug lädt", wird die Entladung nur zugelassen, wenn alle Fahrzeuge im Modus PV-Laden ohne Mindeststrom oder Zielladen mit PV-Überschuss laden.',-1),d("br",null,null,-1),i(' Wenn das Entladen des Speichers auf den Hausverbrauch begrenzt ist und mindestens Fahrzeuge nicht im Modus PV-Laden ohne Mindeststrom oder Zielladen lädt, wird die Entladung des Speichers in Höhe des Hausverbrauchs zugelassen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "gesperrt, wenn Fahrzeug lädt".',-1),d("br",null,null,-1),i(" Diese Einstellung übersteuert ggf die Einstellungen zur Speicher-Beachtung im Modus PV-Laden. ",-1)])),_:1},8,["model-value"])])):(a(),s("div",de,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[33]})]))])):y("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,V;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",pe,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(a(),s("div",ge,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=v=>t.updateState("openWB/optional/ocpp/config",v,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[35]||(e[35]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[35]}),n($,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=v=>t.updateState("openWB/optional/ocpp/config",v,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":(V=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:V.version,"onUpdate:modelValue":e[13]||(e[13]=v=>t.updateState("openWB/optional/ocpp/config",v,"version"))},null,8,["model-value"])])):y("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const ce=B(X,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{R as E,ye as G}; diff --git a/web/settings/assets/GeneralConfig-1aa02fdc.js b/web/settings/assets/GeneralConfig-1aa02fdc.js new file mode 100644 index 0000000000..3103282fff --- /dev/null +++ b/web/settings/assets/GeneralConfig-1aa02fdc.js @@ -0,0 +1 @@ +import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-a02b6813.js";import{_ as O,C as Y}from"./index-e4c17b07.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-25d394b4.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-9c8ff1fc.js"),["assets/webTheme-9c8ff1fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-526f053f.js"),["assets/webTheme-526f053f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/GeneralConfig-bd327700.js b/web/settings/assets/GeneralConfig-bd327700.js deleted file mode 100644 index 95770a32ed..0000000000 --- a/web/settings/assets/GeneralConfig-bd327700.js +++ /dev/null @@ -1 +0,0 @@ -import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-855c7d62.js";import{_ as O,C as Y}from"./index-5b5e1b75.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as p,a2 as te,a3 as ne,N as oe,z as f}from"./vendor-cc4615be.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const b=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(b,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(b,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(b,{subtype:"info"},{default:o(()=>[p("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-b08c3f46.js"),["assets/webTheme-b08c3f46.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-f6f9eecb.js"),["assets/webTheme-f6f9eecb.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function pe(t,e,u,B,V,h){const b=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(b,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(b,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const me=W(ge,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:me,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const b=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[p("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(b,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[p("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),p("p",null,[a(' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet.'),p("br"),a(" Eine bebilderte Anleitung zur Konfiguration der Ladepunkte findest Du auf der "),p("a",{href:"https://openwb.de/main/?page_id=1025",target:"_blank",rel:"noopener noreferrer"}," Homepage "),a(". ")],-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?f("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),p("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):f("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(b,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):f("",!0)])),u.installAssistantActive?f("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[p("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),p("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?f("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(b,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):f("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),p("br",null,null,-1),p("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),p("br",null,null,-1),p("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):f("",!0)]),_:1})])),u.installAssistantActive?f("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(b,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):f("",!0)])):f("",!0)]))]),_:1})),u.installAssistantActive?f("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(b,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/HardwareInstallation-5d83a25e.js b/web/settings/assets/HardwareInstallation-5d83a25e.js deleted file mode 100644 index ed9cdc7fb4..0000000000 --- a/web/settings/assets/HardwareInstallation-5d83a25e.js +++ /dev/null @@ -1 +0,0 @@ -import{l as S,d as U,y as q,aj as G,aa as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-855c7d62.js";import{_ as e,C as J}from"./index-5b5e1b75.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-cc4615be.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),A=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),A=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b695068a.js"),["assets/device-b695068a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-26cb01ff.js"),["assets/device-26cb01ff.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-add01a51.js"),["assets/device-add01a51.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-88982b01.js"),["assets/counter-88982b01.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-28efaad6.js"),["assets/device-28efaad6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-acd658a9.js"),["assets/device-acd658a9.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-da4c8a0c.js"),["assets/device-da4c8a0c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-bebe8eea.js"),["assets/device-bebe8eea.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-368435ba.js"),["assets/inverter-368435ba.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-aa041e22.js"),["assets/device-aa041e22.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-fe004f9c.js"),["assets/counter-fe004f9c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-897ed9c7.js"),["assets/device-897ed9c7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-7f9d958a.js"),["assets/bat-7f9d958a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-9fcffe23.js"),["assets/counter-9fcffe23.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-5be5124f.js"),["assets/device-5be5124f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-f5498730.js"),["assets/inverter-f5498730.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-d2e4dcd3.js"),["assets/counter-d2e4dcd3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-894e1e36.js"),["assets/device-894e1e36.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-d0cfa178.js"),["assets/inverter-d0cfa178.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-e89a1f36.js"),["assets/device-e89a1f36.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-0418b69c.js"),["assets/device-0418b69c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-0402fbea.js"),["assets/counter-0402fbea.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-bef28d96.js"),["assets/device-bef28d96.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-43d63312.js"),["assets/inverter-43d63312.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-198506bb.js"),["assets/bat-198506bb.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-ef5e14d8.js"),["assets/device-ef5e14d8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-c8df9db2.js"),["assets/bat-c8df9db2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-84f2b940.js"),["assets/counter-84f2b940.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-a68a7f61.js"),["assets/device-a68a7f61.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-ed07bcb8.js"),["assets/inverter-ed07bcb8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-9d7a6eb2.js"),["assets/bat-9d7a6eb2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-644407b2.js"),["assets/counter_sm-644407b2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-17d5e025.js"),["assets/device-17d5e025.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-7d7c0326.js"),["assets/inverter_secondary-7d7c0326.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-61976e47.js"),["assets/bat-61976e47.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-02b4fe5b.js"),["assets/counter-02b4fe5b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-b114c41e.js"),["assets/device-b114c41e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-6ff09b8a.js"),["assets/inverter-6ff09b8a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-178b4d72.js"),["assets/bat-178b4d72.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-131c9643.js"),["assets/counter-131c9643.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-8c096b1c.js"),["assets/device-8c096b1c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-4b9a884a.js"),["assets/inverter-4b9a884a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-ad50e924.js"),["assets/bat-ad50e924.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-ea3377d7.js"),["assets/counter-ea3377d7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-36206448.js"),["assets/device-36206448.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-87f2f05b.js"),["assets/inverter-87f2f05b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-66796b0b.js"),["assets/counter-66796b0b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-0ab7bb3c.js"),["assets/bat-0ab7bb3c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-6e97a762.js"),["assets/device-6e97a762.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-c9d7c99b.js"),["assets/device-c9d7c99b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-c73cffb1.js"),["assets/device-c73cffb1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-36d1c02e.js"),["assets/device-36d1c02e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-d22cb137.js"),["assets/bat-d22cb137.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-90cbf7c3.js"),["assets/counter-90cbf7c3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-953c515a.js"),["assets/device-953c515a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-b5ee1741.js"),["assets/inverter-b5ee1741.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-e40d6637.js"),["assets/counter-e40d6637.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-bac53175.js"),["assets/device-bac53175.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-de77a290.js"),["assets/device-de77a290.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-1d570cc3.js"),["assets/inverter-1d570cc3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-a8dd44f0.js"),["assets/counter-a8dd44f0.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-f33854c7.js"),["assets/device-f33854c7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-28f2d192.js"),["assets/inverter-28f2d192.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-7d51e530.js"),["assets/device-7d51e530.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-0f90fbb4.js"),["assets/counter-0f90fbb4.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-b978ff0c.js"),["assets/device-b978ff0c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-6014897a.js"),["assets/counter-6014897a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-a2b8c57b.js"),["assets/device-a2b8c57b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-59d8f491.js"),["assets/device-59d8f491.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-355fe1e0.js"),["assets/inverter-355fe1e0.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4d1a23d8.js"),["assets/device-4d1a23d8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-2f843b85.js"),["assets/bat-2f843b85.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-a45df58a.js"),["assets/counter-a45df58a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-0067586f.js"),["assets/device-0067586f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-22b22d69.js"),["assets/inverter-22b22d69.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-1c1308a7.js"),["assets/device-1c1308a7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-96fd1246.js"),["assets/counter-96fd1246.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-35fe94a8.js"),["assets/device-35fe94a8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-d3973c81.js"),["assets/device-d3973c81.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-288f20ba.js"),["assets/inverter-288f20ba.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-24ad9602.js"),["assets/bat-24ad9602.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-1ea31bcb.js"),["assets/bat-1ea31bcb.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-f9ff4c43.js"),["assets/counter-f9ff4c43.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-3b4e19fa.js"),["assets/inverter-3b4e19fa.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-cadab577.js"),["assets/bat-cadab577.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-3eda920a.js"),["assets/consumption_counter-3eda920a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-c9612c06.js"),["assets/counter-c9612c06.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-c03a1f17.js"),["assets/device-c03a1f17.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-dcfb460b.js"),["assets/inverter-dcfb460b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-87d42851.js"),["assets/inverter-87d42851.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-fa94f200.js"),["assets/counter-fa94f200.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-95a4fc1b.js"),["assets/device-95a4fc1b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-aa4c34e5.js"),["assets/counter-aa4c34e5.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bc822556.js"),["assets/device-bc822556.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-b0118850.js"),["assets/counter-b0118850.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-ca985fe7.js"),["assets/device-ca985fe7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-cdc91938.js"),["assets/inverter-cdc91938.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-9e672cae.js"),["assets/device-9e672cae.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-476e3af1.js"),["assets/device-476e3af1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-47dd1fe2.js"),["assets/device-47dd1fe2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-26162baf.js"),["assets/counter-26162baf.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4753a209.js"),["assets/device-4753a209.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-7b75323a.js"),["assets/device-7b75323a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-a9dd072b.js"),["assets/device-a9dd072b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-a3aa8666.js"),["assets/bat-a3aa8666.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-2841a6f4.js"),["assets/counter-2841a6f4.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-459d681f.js"),["assets/device-459d681f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-f9f11d2f.js"),["assets/inverter-f9f11d2f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-4363f779.js"),["assets/counter-4363f779.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-0e8ec83e.js"),["assets/inverter-0e8ec83e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-f5996a86.js"),["assets/bat-f5996a86.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-f85a7ba3.js"),["assets/bat_smart_energy-f85a7ba3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-a4e6b35f.js"),["assets/counter-a4e6b35f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-abe914f8.js"),["assets/device-abe914f8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-6e1544e1.js"),["assets/inverter-6e1544e1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-7f36252e.js"),["assets/bat-7f36252e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-4561c08a.js"),["assets/device-4561c08a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-669b1055.js"),["assets/device-669b1055.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-1c49d5b6.js"),["assets/counter-1c49d5b6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-7f3ca9c5.js"),["assets/device-7f3ca9c5.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-3ba45e90.js"),["assets/inverter-3ba45e90.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-87d9128d.js"),["assets/device-87d9128d.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-9957bca2.js"),["assets/device-9957bca2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-0a8d8873.js"),["assets/counter-0a8d8873.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-d9cb59b2.js"),["assets/device-d9cb59b2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-614a3bbf.js"),["assets/device-614a3bbf.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-31850b39.js"),["assets/inverter-31850b39.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-5ed5b74b.js"),["assets/device-5ed5b74b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-3e5fa86e.js"),["assets/device-3e5fa86e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-162d668e.js"),["assets/bat-162d668e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-63297872.js"),["assets/counter-63297872.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-edff48ee.js"),["assets/device-edff48ee.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-6433fd21.js"),["assets/external_inverter-6433fd21.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-0362bee6.js"),["assets/inverter-0362bee6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-0a6c26e6.js"),["assets/bat-0a6c26e6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-3be21bca.js"),["assets/device-3be21bca.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-2734679f.js"),["assets/inverter-2734679f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-b830b43e.js"),["assets/device-b830b43e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-2c687349.js"),["assets/bat-2c687349.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-a4db7e1c.js"),["assets/counter-a4db7e1c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-08617811.js"),["assets/device-08617811.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-0fca0a34.js"),["assets/inverter-0fca0a34.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-a148f905.js"),["assets/bat-a148f905.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-9d8705db.js"),["assets/counter-9d8705db.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-91fffa45.js"),["assets/counter_consumption-91fffa45.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-baaf54be.js"),["assets/device-baaf54be.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-5d61bb37.js"),["assets/bat-5d61bb37.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-5c1283a2.js"),["assets/device-5c1283a2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-38338915.js"),["assets/inverter-38338915.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-34a5fde6.js"),["assets/device-34a5fde6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-dbf66cd3.js"),["assets/device-dbf66cd3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-311f3163.js"),["assets/device-311f3163.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-bf7b26c1.js"),["assets/counter-bf7b26c1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-c57e2427.js"),["assets/device-c57e2427.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-46e2c43c.js"),["assets/counter-46e2c43c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-a653fa8f.js"),["assets/device-a653fa8f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-c280b8ae.js"),["assets/device-c280b8ae.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-587feb6a.js"),["assets/device-587feb6a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-4d10a817.js"),["assets/inverter-4d10a817.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-ff14336b.js"),["assets/bat-ff14336b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-58cdd3f8.js"),["assets/counter-58cdd3f8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f88bddc1.js"),["assets/device-f88bddc1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-faacb770.js"),["assets/inverter-faacb770.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-cbef25b6.js"),["assets/counter-cbef25b6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-ba69bd6e.js"),["assets/device-ba69bd6e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-605fa6ec.js"),["assets/inverter-605fa6ec.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-c318fc1d.js"),["assets/device-c318fc1d.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-71e5d1d9.js"),["assets/inverter-71e5d1d9.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b695068a.js"),["assets/device-b695068a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-26cb01ff.js"),["assets/device-26cb01ff.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-add01a51.js"),["assets/device-add01a51.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-28efaad6.js"),["assets/device-28efaad6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-acd658a9.js"),["assets/device-acd658a9.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-da4c8a0c.js"),["assets/device-da4c8a0c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-bebe8eea.js"),["assets/device-bebe8eea.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-aa041e22.js"),["assets/device-aa041e22.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-897ed9c7.js"),["assets/device-897ed9c7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-5be5124f.js"),["assets/device-5be5124f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-894e1e36.js"),["assets/device-894e1e36.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-e89a1f36.js"),["assets/device-e89a1f36.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-0418b69c.js"),["assets/device-0418b69c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-bef28d96.js"),["assets/device-bef28d96.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-ef5e14d8.js"),["assets/device-ef5e14d8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-a68a7f61.js"),["assets/device-a68a7f61.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-17d5e025.js"),["assets/device-17d5e025.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-b114c41e.js"),["assets/device-b114c41e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-8c096b1c.js"),["assets/device-8c096b1c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-36206448.js"),["assets/device-36206448.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-6e97a762.js"),["assets/device-6e97a762.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-c9d7c99b.js"),["assets/device-c9d7c99b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-c73cffb1.js"),["assets/device-c73cffb1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-36d1c02e.js"),["assets/device-36d1c02e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-953c515a.js"),["assets/device-953c515a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-bac53175.js"),["assets/device-bac53175.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-de77a290.js"),["assets/device-de77a290.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-f33854c7.js"),["assets/device-f33854c7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-7d51e530.js"),["assets/device-7d51e530.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-b978ff0c.js"),["assets/device-b978ff0c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-a2b8c57b.js"),["assets/device-a2b8c57b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-59d8f491.js"),["assets/device-59d8f491.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4d1a23d8.js"),["assets/device-4d1a23d8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-0067586f.js"),["assets/device-0067586f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-1c1308a7.js"),["assets/device-1c1308a7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-35fe94a8.js"),["assets/device-35fe94a8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-d3973c81.js"),["assets/device-d3973c81.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-c03a1f17.js"),["assets/device-c03a1f17.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-95a4fc1b.js"),["assets/device-95a4fc1b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bc822556.js"),["assets/device-bc822556.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-ca985fe7.js"),["assets/device-ca985fe7.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-9e672cae.js"),["assets/device-9e672cae.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-476e3af1.js"),["assets/device-476e3af1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-47dd1fe2.js"),["assets/device-47dd1fe2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4753a209.js"),["assets/device-4753a209.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-7b75323a.js"),["assets/device-7b75323a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-a9dd072b.js"),["assets/device-a9dd072b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-459d681f.js"),["assets/device-459d681f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-abe914f8.js"),["assets/device-abe914f8.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-4561c08a.js"),["assets/device-4561c08a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-669b1055.js"),["assets/device-669b1055.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-7f3ca9c5.js"),["assets/device-7f3ca9c5.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-87d9128d.js"),["assets/device-87d9128d.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-9957bca2.js"),["assets/device-9957bca2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-d9cb59b2.js"),["assets/device-d9cb59b2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-614a3bbf.js"),["assets/device-614a3bbf.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-5ed5b74b.js"),["assets/device-5ed5b74b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-3e5fa86e.js"),["assets/device-3e5fa86e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-edff48ee.js"),["assets/device-edff48ee.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-3be21bca.js"),["assets/device-3be21bca.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-b830b43e.js"),["assets/device-b830b43e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-08617811.js"),["assets/device-08617811.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-baaf54be.js"),["assets/device-baaf54be.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-5c1283a2.js"),["assets/device-5c1283a2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-34a5fde6.js"),["assets/device-34a5fde6.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-dbf66cd3.js"),["assets/device-dbf66cd3.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-311f3163.js"),["assets/device-311f3163.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-c57e2427.js"),["assets/device-c57e2427.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-a653fa8f.js"),["assets/device-a653fa8f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-c280b8ae.js"),["assets/device-c280b8ae.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-587feb6a.js"),["assets/device-587feb6a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f88bddc1.js"),["assets/device-f88bddc1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-ba69bd6e.js"),["assets/device-ba69bd6e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-c318fc1d.js"),["assets/device-c318fc1d.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),A=p("router-link"),T=p("openwb-base-alert"),b=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(A,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(b,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(b,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(b,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(b,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(b,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/HardwareInstallation-6515151f.js b/web/settings/assets/HardwareInstallation-6515151f.js new file mode 100644 index 0000000000..c4f51bf807 --- /dev/null +++ b/web/settings/assets/HardwareInstallation-6515151f.js @@ -0,0 +1 @@ +import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-a02b6813.js";import{_ as e,C as J}from"./index-e4c17b07.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-25d394b4.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b6b82861.js"),["assets/device-b6b82861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-8a6b31ac.js"),["assets/device-8a6b31ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-5457868d.js"),["assets/device-5457868d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-241c338f.js"),["assets/counter-241c338f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-7ba6df48.js"),["assets/device-7ba6df48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-9c1661fe.js"),["assets/device-9c1661fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-0a55e2f7.js"),["assets/device-0a55e2f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-fcb0b9c0.js"),["assets/device-fcb0b9c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-236b1784.js"),["assets/inverter-236b1784.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-85ba0d9e.js"),["assets/device-85ba0d9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-d606c310.js"),["assets/counter-d606c310.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-630d88cd.js"),["assets/device-630d88cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-ba22f76f.js"),["assets/bat-ba22f76f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-98126cfc.js"),["assets/counter-98126cfc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-dae4911e.js"),["assets/device-dae4911e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-10de1272.js"),["assets/inverter-10de1272.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-a35b5fec.js"),["assets/counter-a35b5fec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e138ac10.js"),["assets/device-e138ac10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-c97efa3a.js"),["assets/inverter-c97efa3a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-cad9fdab.js"),["assets/device-cad9fdab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-3446cb73.js"),["assets/device-3446cb73.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-03d43b57.js"),["assets/counter-03d43b57.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f1d14f4e.js"),["assets/device-f1d14f4e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-b57300f5.js"),["assets/inverter-b57300f5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-ccce56c3.js"),["assets/bat-ccce56c3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-7352834a.js"),["assets/device-7352834a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-2429ce05.js"),["assets/bat-2429ce05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-8a0376f6.js"),["assets/counter-8a0376f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-c057d288.js"),["assets/device-c057d288.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-df3fe723.js"),["assets/inverter-df3fe723.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-3c83952b.js"),["assets/bat-3c83952b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-5e4b1fe5.js"),["assets/counter_sm-5e4b1fe5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-ede5926f.js"),["assets/device-ede5926f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-62644358.js"),["assets/inverter_secondary-62644358.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-3999cc82.js"),["assets/bat-3999cc82.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-942689fa.js"),["assets/counter-942689fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-6e2ecab6.js"),["assets/device-6e2ecab6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-3e8be295.js"),["assets/inverter-3e8be295.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-2f1c9807.js"),["assets/bat-2f1c9807.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-778d0562.js"),["assets/counter-778d0562.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-46241bf0.js"),["assets/device-46241bf0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-f432c082.js"),["assets/inverter-f432c082.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-f2c5f46a.js"),["assets/bat-f2c5f46a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-f8177ec2.js"),["assets/counter-f8177ec2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-1439cbf1.js"),["assets/device-1439cbf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-fe7c6fda.js"),["assets/inverter-fe7c6fda.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-15a40a05.js"),["assets/counter-15a40a05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-6b9fff6c.js"),["assets/bat-6b9fff6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-723e5136.js"),["assets/device-723e5136.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-b915ee50.js"),["assets/device-b915ee50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-40e95f0e.js"),["assets/device-40e95f0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-6c438877.js"),["assets/device-6c438877.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-a037c1ad.js"),["assets/bat-a037c1ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-c26c7ca0.js"),["assets/counter-c26c7ca0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-c6a5b18f.js"),["assets/device-c6a5b18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-e1663f22.js"),["assets/inverter-e1663f22.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-f01de2ea.js"),["assets/counter-f01de2ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-fef9b6f6.js"),["assets/device-fef9b6f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-07e03083.js"),["assets/device-07e03083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-0d5f082e.js"),["assets/inverter-0d5f082e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-06424364.js"),["assets/counter-06424364.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-b028c583.js"),["assets/device-b028c583.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-36706c9a.js"),["assets/inverter-36706c9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-38d5b6fd.js"),["assets/device-38d5b6fd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-7a682293.js"),["assets/counter-7a682293.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-7dbbe461.js"),["assets/device-7dbbe461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-16da78bb.js"),["assets/counter-16da78bb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-44136cf2.js"),["assets/device-44136cf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-66218d05.js"),["assets/device-66218d05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-f0a34520.js"),["assets/inverter-f0a34520.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4749b385.js"),["assets/device-4749b385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-ff0fd7a4.js"),["assets/bat-ff0fd7a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-6b70c1c4.js"),["assets/counter-6b70c1c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-9c39a93c.js"),["assets/device-9c39a93c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-eb5fcf99.js"),["assets/inverter-eb5fcf99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-891343b7.js"),["assets/device-891343b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-0d3d09ba.js"),["assets/counter-0d3d09ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-793ea822.js"),["assets/device-793ea822.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-e4446102.js"),["assets/device-e4446102.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-ad33b033.js"),["assets/inverter-ad33b033.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-b7a74be0.js"),["assets/bat-b7a74be0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-4626ba65.js"),["assets/bat-4626ba65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-c0da35a2.js"),["assets/counter-c0da35a2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-fd208841.js"),["assets/inverter-fd208841.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-f9655da7.js"),["assets/bat-f9655da7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-28c4feb4.js"),["assets/consumption_counter-28c4feb4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-87234fb2.js"),["assets/counter-87234fb2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-6dbd2fd0.js"),["assets/device-6dbd2fd0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-fc51cd0b.js"),["assets/inverter-fc51cd0b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-c68c3b52.js"),["assets/inverter-c68c3b52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-ad41b953.js"),["assets/counter-ad41b953.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-0bc39379.js"),["assets/device-0bc39379.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-da1dd0be.js"),["assets/counter-da1dd0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-5e2f3c97.js"),["assets/device-5e2f3c97.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-43bb176d.js"),["assets/counter-43bb176d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-6aa86d28.js"),["assets/device-6aa86d28.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-84d0a3ba.js"),["assets/inverter-84d0a3ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-3caedbbd.js"),["assets/device-3caedbbd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-f626b3aa.js"),["assets/device-f626b3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-faa95e47.js"),["assets/device-faa95e47.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-593a07d0.js"),["assets/counter-593a07d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-6e2f0696.js"),["assets/device-6e2f0696.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-cbcf5efd.js"),["assets/device-cbcf5efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-2d12e320.js"),["assets/device-2d12e320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-bfa3303d.js"),["assets/bat-bfa3303d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-51e1f0a5.js"),["assets/counter-51e1f0a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-d4bdb914.js"),["assets/device-d4bdb914.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-3de69e58.js"),["assets/inverter-3de69e58.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-9ab1cf22.js"),["assets/counter-9ab1cf22.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-e08e7a01.js"),["assets/inverter-e08e7a01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-37c3cc3b.js"),["assets/bat-37c3cc3b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-35671b9e.js"),["assets/bat_smart_energy-35671b9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-034d35d7.js"),["assets/counter-034d35d7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6065b001.js"),["assets/device-6065b001.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-1a358f95.js"),["assets/inverter-1a358f95.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-b9d525a8.js"),["assets/bat-b9d525a8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-c1e4152e.js"),["assets/device-c1e4152e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-d2e67bbb.js"),["assets/device-d2e67bbb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-1ada1a81.js"),["assets/counter-1ada1a81.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f14cbc13.js"),["assets/device-f14cbc13.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-3dafbe7c.js"),["assets/inverter-3dafbe7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-37b882f6.js"),["assets/device-37b882f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-789bc206.js"),["assets/device-789bc206.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-a327434b.js"),["assets/counter-a327434b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-77829da3.js"),["assets/device-77829da3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-48744246.js"),["assets/device-48744246.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-c71098f4.js"),["assets/inverter-c71098f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-75d75106.js"),["assets/device-75d75106.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-a8b3ffa0.js"),["assets/device-a8b3ffa0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-845f69cb.js"),["assets/bat-845f69cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-95df2c21.js"),["assets/counter-95df2c21.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-51fb9fdb.js"),["assets/device-51fb9fdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-8207d928.js"),["assets/external_inverter-8207d928.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-8afb296d.js"),["assets/inverter-8afb296d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-5ef99d8c.js"),["assets/bat-5ef99d8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-0f31e958.js"),["assets/device-0f31e958.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-208d8966.js"),["assets/inverter-208d8966.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4faa8341.js"),["assets/device-4faa8341.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-513d9188.js"),["assets/bat-513d9188.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-a762a464.js"),["assets/counter-a762a464.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-78619adc.js"),["assets/device-78619adc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-da060ce6.js"),["assets/inverter-da060ce6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-58a85a8c.js"),["assets/bat-58a85a8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-5b6331d0.js"),["assets/counter-5b6331d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-452fb197.js"),["assets/counter_consumption-452fb197.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-952016bf.js"),["assets/device-952016bf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-43e9cde4.js"),["assets/bat-43e9cde4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-8f44d501.js"),["assets/device-8f44d501.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-95466897.js"),["assets/inverter-95466897.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-90a7548e.js"),["assets/device-90a7548e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-ad797bf7.js"),["assets/device-ad797bf7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-0c3fc809.js"),["assets/device-0c3fc809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-701a2c72.js"),["assets/counter-701a2c72.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-838dac1d.js"),["assets/device-838dac1d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-3b3df318.js"),["assets/counter-3b3df318.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-63843d32.js"),["assets/device-63843d32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-70a2865d.js"),["assets/device-70a2865d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a705c660.js"),["assets/device-a705c660.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-e4584f68.js"),["assets/inverter-e4584f68.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-0b64db60.js"),["assets/bat-0b64db60.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-6cd21185.js"),["assets/counter-6cd21185.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-48658977.js"),["assets/device-48658977.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-878637c0.js"),["assets/inverter-878637c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-925dec2d.js"),["assets/counter-925dec2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-3e65a99e.js"),["assets/device-3e65a99e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-4b55caa6.js"),["assets/inverter-4b55caa6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e93f3043.js"),["assets/device-e93f3043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-0852f06a.js"),["assets/inverter-0852f06a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b6b82861.js"),["assets/device-b6b82861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-8a6b31ac.js"),["assets/device-8a6b31ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-5457868d.js"),["assets/device-5457868d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-7ba6df48.js"),["assets/device-7ba6df48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-9c1661fe.js"),["assets/device-9c1661fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-0a55e2f7.js"),["assets/device-0a55e2f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-fcb0b9c0.js"),["assets/device-fcb0b9c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-85ba0d9e.js"),["assets/device-85ba0d9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-630d88cd.js"),["assets/device-630d88cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-dae4911e.js"),["assets/device-dae4911e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e138ac10.js"),["assets/device-e138ac10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-cad9fdab.js"),["assets/device-cad9fdab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-3446cb73.js"),["assets/device-3446cb73.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f1d14f4e.js"),["assets/device-f1d14f4e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-7352834a.js"),["assets/device-7352834a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-c057d288.js"),["assets/device-c057d288.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-ede5926f.js"),["assets/device-ede5926f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-6e2ecab6.js"),["assets/device-6e2ecab6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-46241bf0.js"),["assets/device-46241bf0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-1439cbf1.js"),["assets/device-1439cbf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-723e5136.js"),["assets/device-723e5136.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-b915ee50.js"),["assets/device-b915ee50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-40e95f0e.js"),["assets/device-40e95f0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-6c438877.js"),["assets/device-6c438877.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-c6a5b18f.js"),["assets/device-c6a5b18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-fef9b6f6.js"),["assets/device-fef9b6f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-07e03083.js"),["assets/device-07e03083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-b028c583.js"),["assets/device-b028c583.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-38d5b6fd.js"),["assets/device-38d5b6fd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-7dbbe461.js"),["assets/device-7dbbe461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-44136cf2.js"),["assets/device-44136cf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-66218d05.js"),["assets/device-66218d05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4749b385.js"),["assets/device-4749b385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-9c39a93c.js"),["assets/device-9c39a93c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-891343b7.js"),["assets/device-891343b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-793ea822.js"),["assets/device-793ea822.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-e4446102.js"),["assets/device-e4446102.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-6dbd2fd0.js"),["assets/device-6dbd2fd0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-0bc39379.js"),["assets/device-0bc39379.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-5e2f3c97.js"),["assets/device-5e2f3c97.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-6aa86d28.js"),["assets/device-6aa86d28.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-3caedbbd.js"),["assets/device-3caedbbd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-f626b3aa.js"),["assets/device-f626b3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-faa95e47.js"),["assets/device-faa95e47.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-6e2f0696.js"),["assets/device-6e2f0696.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-cbcf5efd.js"),["assets/device-cbcf5efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-2d12e320.js"),["assets/device-2d12e320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-d4bdb914.js"),["assets/device-d4bdb914.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6065b001.js"),["assets/device-6065b001.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-c1e4152e.js"),["assets/device-c1e4152e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-d2e67bbb.js"),["assets/device-d2e67bbb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f14cbc13.js"),["assets/device-f14cbc13.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-37b882f6.js"),["assets/device-37b882f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-789bc206.js"),["assets/device-789bc206.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-77829da3.js"),["assets/device-77829da3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-48744246.js"),["assets/device-48744246.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-75d75106.js"),["assets/device-75d75106.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-a8b3ffa0.js"),["assets/device-a8b3ffa0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-51fb9fdb.js"),["assets/device-51fb9fdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-0f31e958.js"),["assets/device-0f31e958.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4faa8341.js"),["assets/device-4faa8341.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-78619adc.js"),["assets/device-78619adc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-952016bf.js"),["assets/device-952016bf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-8f44d501.js"),["assets/device-8f44d501.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-90a7548e.js"),["assets/device-90a7548e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-ad797bf7.js"),["assets/device-ad797bf7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-0c3fc809.js"),["assets/device-0c3fc809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-838dac1d.js"),["assets/device-838dac1d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-63843d32.js"),["assets/device-63843d32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-70a2865d.js"),["assets/device-70a2865d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a705c660.js"),["assets/device-a705c660.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-48658977.js"),["assets/device-48658977.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-3e65a99e.js"),["assets/device-3e65a99e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e93f3043.js"),["assets/device-e93f3043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/IdentificationConfig-be5fb020.js b/web/settings/assets/IdentificationConfig-ed3f2bff.js similarity index 96% rename from web/settings/assets/IdentificationConfig-be5fb020.js rename to web/settings/assets/IdentificationConfig-ed3f2bff.js index d4f7c1f74a..01553f7d89 100644 --- a/web/settings/assets/IdentificationConfig-be5fb020.js +++ b/web/settings/assets/IdentificationConfig-ed3f2bff.js @@ -1,2 +1,2 @@ -import{C as $}from"./index-5b5e1b75.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as i,B as r,z as c,N as k,M as B,F as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const y={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},F={key:1},q={key:0},T={key:0},V={key:1},S={key:2},A={key:0},C={key:0},E={key:1},N={key:2},P=["title","collapsed"],U={key:0},j={key:0},O={key:1};function R(e,t,Z,H,J,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),v=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(v,{title:"Identifikation"},{default:i(()=>[a(u,{subtype:"info"},{default:i(()=>t[4]||(t[4]=[r(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r(" Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst! ",-1)])),_:1,__:[4]}),a(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:i(()=>t[5]||(t[5]=[r(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",F,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",q,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` +import{C as $}from"./index-e4c17b07.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as i,B as r,z as c,N as k,M as B,F as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const y={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},F={key:1},q={key:0},T={key:0},V={key:1},S={key:2},A={key:0},C={key:0},E={key:1},N={key:2},P=["title","collapsed"],U={key:0},j={key:0},O={key:1};function R(e,t,Z,H,J,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),v=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(v,{title:"Identifikation"},{default:i(()=>[a(u,{subtype:"info"},{default:i(()=>t[4]||(t[4]=[r(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r(" Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst! ",-1)])),_:1,__:[4]}),a(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:i(()=>t[5]||(t[5]=[r(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",F,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",q,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` `)},null,8,["model-value"])])):c("",!0)]))]),_:1}),a(g,{class:"mt-0"},{default:i(()=>t[6]||(t[6]=[r(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])),_:1,__:[6]}),l("div",null,[a(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",T,[a(u,{subtype:"info"},{default:i(()=>t[7]||(t[7]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),r(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[7]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",V,[a(u,{subtype:"info"},{default:i(()=>t[8]||(t[8]=[r(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[8]})])):(o(),s("div",S,[a(u,{subtype:"info"},{default:i(()=>t[9]||(t[9]=[r(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])),_:1,__:[9]}),(o(!0),s(k,null,B(m.chargePointTemplates,(n,d)=>(o(),s("div",{key:d},[a(g,{class:"mt-0"},{default:i(()=>[r(f(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!e.installAssistantActive?(o(),s("div",A,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',"model-value":n.valid_tags,"onUpdate:modelValue":h=>e.updateState(d,h,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):c("",!0),a(b,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":h=>e.updateState(d,h,"disable_after_unplug")},{help:i(()=>[r(f('Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+n.name+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt.'),1)]),_:2},1032,["model-value","onUpdate:modelValue"]),t[10]||(t[10]=l("br",null,null,-1))]))),128))]))]),_:1})]),a(g,{class:"mt-0"},{default:i(()=>t[11]||(t[11]=[r(" Zuordnung von Fahrzeugen ",-1)])),_:1,__:[11]}),l("div",null,[a(v,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:i(()=>t[12]||(t[12]=[r(" Fahrzeuge ",-1)])),default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",C,[a(u,{subtype:"info"},{default:i(()=>t[13]||(t[13]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),r(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[13]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",E,[a(u,{subtype:"info"},{default:i(()=>t[14]||(t[14]=[r(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[14]})])):(o(),s("div",N,[a(u,{subtype:"info"},{default:i(()=>t[15]||(t[15]=[r(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5min verworfen wird. ",-1)])),_:1,__:[15]}),(o(!0),s(k,null,B(m.vehicleIndexes,n=>(o(),s("div",{key:n,title:m.getVehicleName(n),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==n),subtype:"info"},[t[16]||(t[16]=l("br",null,null,-1)),a(g,{class:"mt-0"},{default:i(()=>[r(f(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!e.installAssistantActive?(o(),s("div",U,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',"model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+n+"/tag_id",d)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):c("",!0),a(b,{title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],d,"load_default")},{help:i(()=>[r(f('Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name+'" gespeichert.')+" ",1),e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?(o(),s("div",j,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge aktiviert, denen dieses Lade-Profil zugeordnet wurde. ')):(o(),s("div",O,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge deaktiviert, denen dieses Lade-Profil zugeordnet wurde. '))]),_:2},1032,["model-value","onUpdate:modelValue"])],8,P))),128))]))]),_:1},8,["collapsed"])]),a(z,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const ee=w(y,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{ee as default}; diff --git a/web/settings/assets/InstallAssistant-0fa0d0dd.js b/web/settings/assets/InstallAssistant-0fa0d0dd.js deleted file mode 100644 index db50df2f0d..0000000000 --- a/web/settings/assets/InstallAssistant-0fa0d0dd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r,_ as t}from"./index-5b5e1b75.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-fe2946cd.js"),["assets/InstallAssistantStep0-fe2946cd.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-b2e75978.js"),["assets/InstallAssistantStep1-b2e75978.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-d8247a90.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-de23a565.js"),["assets/InstallAssistantStep10-de23a565.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-f2504bdc.js"),["assets/InstallAssistantStep2-f2504bdc.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-f8f1bbde.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-1db12d61.js"),["assets/InstallAssistantStep3-1db12d61.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-bd327700.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-11abe033.js"),["assets/InstallAssistantStep4-11abe033.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-acc5f333.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-62ebcc68.js"),["assets/InstallAssistantStep5-62ebcc68.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-5d83a25e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-db46bac5.js"),["assets/InstallAssistantStep6-db46bac5.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-acc5f333.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-7858cbaf.js"),["assets/InstallAssistantStep7-7858cbaf.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-ebecc34c.js","assets/OpenwbSortableList-5dccf22c.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-6835c67c.js"),["assets/InstallAssistantStep8-6835c67c.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-c2429926.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-6029b0cf.js"),["assets/InstallAssistantStep9-6029b0cf.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-4589ee8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-d8247a90.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-4589ee8a.js"),["assets/InstallAssistantStepTemplate-4589ee8a.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,e,f,g,o,n){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:n.endAssistant},{default:v(()=>e[4]||(e[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(n.getInstallAssistantStepComponent()),{onSendCommand:e[0]||(e[0]=a=>s.$emit("sendCommand",a)),onSave:e[1]||(e[1]=a=>s.$emit("save")),onReset:e[2]||(e[2]=a=>s.$emit("reset")),onDefaults:e[3]||(e[3]=a=>s.$emit("defaults")),onSwitchPage:n.switchPage,onEndAssistant:n.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistant-ad73a366.js b/web/settings/assets/InstallAssistant-ad73a366.js new file mode 100644 index 0000000000..d45c9928fa --- /dev/null +++ b/web/settings/assets/InstallAssistant-ad73a366.js @@ -0,0 +1 @@ +import{C as r,_ as t}from"./index-e4c17b07.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-4316f81d.js"),["assets/InstallAssistantStep0-4316f81d.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-2c79328f.js"),["assets/InstallAssistantStep1-2c79328f.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-337c2c94.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-b27cf512.js"),["assets/InstallAssistantStep10-b27cf512.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-4bb75653.js"),["assets/InstallAssistantStep2-4bb75653.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-5b07ce9f.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-c4997725.js"),["assets/InstallAssistantStep3-c4997725.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-1aa02fdc.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-98043578.js"),["assets/InstallAssistantStep4.1-98043578.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-83896e35.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-abf0a08d.js"),["assets/InstallAssistantStep4-abf0a08d.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-4bbfab0c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-ee0ba959.js"),["assets/InstallAssistantStep5-ee0ba959.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-6515151f.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-60f17c70.js"),["assets/InstallAssistantStep6-60f17c70.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-4bbfab0c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-881db088.js"),["assets/InstallAssistantStep7-881db088.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-9ba2529d.js","assets/OpenwbSortableList-227b0e79.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-174b8e4b.js"),["assets/InstallAssistantStep8-174b8e4b.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-2e0daf8e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-21d7f4da.js"),["assets/InstallAssistantStep9-21d7f4da.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-337c2c94.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-27c622cd.js"),["assets/InstallAssistantStepTemplate-27c622cd.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistantStep0-4316f81d.js b/web/settings/assets/InstallAssistantStep0-4316f81d.js new file mode 100644 index 0000000000..f6f5b46b39 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep0-4316f81d.js @@ -0,0 +1 @@ +import{C as m}from"./index-e4c17b07.js";import g from"./InstallAssistantStepTemplate-27c622cd.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep0-fe2946cd.js b/web/settings/assets/InstallAssistantStep0-fe2946cd.js deleted file mode 100644 index cb58df8721..0000000000 --- a/web/settings/assets/InstallAssistantStep0-fe2946cd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./index-5b5e1b75.js";import d from"./InstallAssistantStepTemplate-4589ee8a.js";import{_ as p,u as i,l as m,x as g,E as a,G as h,B as f,A as t}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const c={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:d},mixins:[u],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,A,w,P,n){const o=i("openwb-base-modal-dialog"),r=i("InstallAssistantStepTemplate");return m(),g(r,{title:"Start","hide-previous":!0,onNextPage:n.requestNextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{content:a(()=>[h(o,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=l=>n.nextPage(l))},{default:a(()=>e[1]||(e[1]=[f(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[2]||(e[2]=t("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[3]||(e[3]=t("p",null,"Dieser Assistent führt Dich durch die Konfiguration der einzelnen Module:",-1)),e[4]||(e[4]=t("ol",null,[t("li",null,"Datensicherung der bestehenden Konfiguration"),t("li",null,"Aktualisierung des openWB-Systems"),t("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[5]||(e[5]=t("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[6]||(e[6]=t("ol",{start:"4"},[t("li",null,"Energiesystem - Geräte und Komponenten einrichten"),t("li",null,"Einrichten der Ladepunkte (openWB als primary)"),t("li",null,"Konfiguration des Lastmanagements"),t("li",null,"Einrichten der Fahrzeuge"),t("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[7]||(e[7]=t("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1))]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; diff --git a/web/settings/assets/InstallAssistantStep1-b2e75978.js b/web/settings/assets/InstallAssistantStep1-2c79328f.js similarity index 75% rename from web/settings/assets/InstallAssistantStep1-b2e75978.js rename to web/settings/assets/InstallAssistantStep1-2c79328f.js index 3259e4f1a5..13d8df292a 100644 --- a/web/settings/assets/InstallAssistantStep1-b2e75978.js +++ b/web/settings/assets/InstallAssistantStep1-2c79328f.js @@ -1 +1 @@ -import{C as m}from"./index-5b5e1b75.js";import p from"./InstallAssistantStepTemplate-4589ee8a.js";import{D as l}from"./DataManagement-d8247a90.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; +import{C as m}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{D as l}from"./DataManagement-337c2c94.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-de23a565.js b/web/settings/assets/InstallAssistantStep10-b27cf512.js similarity index 75% rename from web/settings/assets/InstallAssistantStep10-de23a565.js rename to web/settings/assets/InstallAssistantStep10-b27cf512.js index be35905bf0..b75940a3cf 100644 --- a/web/settings/assets/InstallAssistantStep10-de23a565.js +++ b/web/settings/assets/InstallAssistantStep10-b27cf512.js @@ -1 +1 @@ -import{C as a}from"./index-5b5e1b75.js";import o from"./InstallAssistantStepTemplate-4589ee8a.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; +import{C as a}from"./index-e4c17b07.js";import o from"./InstallAssistantStepTemplate-27c622cd.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-4bb75653.js b/web/settings/assets/InstallAssistantStep2-4bb75653.js new file mode 100644 index 0000000000..408edcac0a --- /dev/null +++ b/web/settings/assets/InstallAssistantStep2-4bb75653.js @@ -0,0 +1 @@ +import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import d from"./System-5b07ce9f.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null," Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen. ",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep2-f2504bdc.js b/web/settings/assets/InstallAssistantStep2-f2504bdc.js deleted file mode 100644 index 256ff11fa2..0000000000 --- a/web/settings/assets/InstallAssistantStep2-f2504bdc.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-5b5e1b75.js";import u from"./InstallAssistantStepTemplate-4589ee8a.js";import d from"./System-f8f1bbde.js";import{_ as p,u as a,l as f,x as g,E as o,A as s,G as A}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const S={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:u,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,w,v,k,i){const r=a("SystemView"),m=a("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[s("p",null," Bitte ein System-Update durchführen, um die Software auf den neuesten Stand der Features und Funktionen zu bringen. ",-1),s("p",null," Hierzu Versions-Informationen / Aktualisierung auswählen, Informationen aktualisieren klicken und falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),s("p",null," Bei openWB-Systemen mit integriertem Display muss nach Zurücksetzen auf Werkseinstellungen oder nach Ausführen eines Updates das Display wieder eingeschaltet werden. ",-1),s("p",null,' Ein Klick auf "Änderungen" zeigt die Modifikationen. Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[A(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const U=p(S,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{U as default}; diff --git a/web/settings/assets/InstallAssistantStep3-1db12d61.js b/web/settings/assets/InstallAssistantStep3-1db12d61.js deleted file mode 100644 index 60c7501f57..0000000000 --- a/web/settings/assets/InstallAssistantStep3-1db12d61.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./index-5b5e1b75.js";import d from"./InstallAssistantStepTemplate-4589ee8a.js";import{G as m}from"./GeneralConfig-bd327700.js";import{_ as p,u as a,l as g,x as f,E as i,A as n,G as w}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[u],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:5)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function B(t,e,S,c,h,r){const o=a("GeneralConfigView"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)",onNextPage:r.nextPage,onPreviousPage:r.previousPage,onEndAssistant:r.endAssistant},{help:i(()=>e[4]||(e[4]=[n("p",null," Hier wird abgefragt, ob Dein System mit mehreren openWBs oder nur mit einer openWB betrieben wird. Eine openWB kann andere openWBs steuern. ",-1),n("p",null,' Zuerst ist im Feld "Steuerungsmodus" festzulegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),n("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo und Buchse können sowohl als steuernder primary oder als ferngesteuerte secondary betrieben werden (Duo mit 2 Ladepunkten). Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),n("p",null,' Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. -> s. Beschreibung zu "Steuerbare Verbrauchseinrichtung". ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:i(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=p(b,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{x as default}; diff --git a/web/settings/assets/InstallAssistantStep3-c4997725.js b/web/settings/assets/InstallAssistantStep3-c4997725.js new file mode 100644 index 0000000000..40cac51743 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep3-c4997725.js @@ -0,0 +1 @@ +import{C as p}from"./index-e4c17b07.js";import d from"./InstallAssistantStepTemplate-27c622cd.js";import{G as m}from"./GeneralConfig-1aa02fdc.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondarybetrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep4-11abe033.js b/web/settings/assets/InstallAssistantStep4-11abe033.js deleted file mode 100644 index a1c7d91bb9..0000000000 --- a/web/settings/assets/InstallAssistantStep4-11abe033.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-5b5e1b75.js";import p from"./InstallAssistantStepTemplate-4589ee8a.js";import{b as u}from"./ChargePointInstallation-acc5f333.js";import{_ as m,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function h(t,e,k,B,v,i){const r=a("ChargePointInstallationView"),d=a("InstallAssistantStepTemplate");return g(),f(d,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese hier vorzukonfigurierende openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer DUO) interner Ladepunkt eingetragen, es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+) oder Buchse) aus. ',-1),n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. Bei der openWB Pro und Satellit sind keine Einstellungen notwendig. ",-1),n("p",null,"Weitere Einstellungen sind bei der Vorkonfiguration einer secondary nicht notwendig.",-1),n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=m(c,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep4-abf0a08d.js b/web/settings/assets/InstallAssistantStep4-abf0a08d.js new file mode 100644 index 0000000000..274fbfa720 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4-abf0a08d.js @@ -0,0 +1 @@ +import{C as l}from"./index-e4c17b07.js";import d from"./InstallAssistantStepTemplate-27c622cd.js";import{b as m}from"./ChargePointInstallation-4bbfab0c.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-98043578.js b/web/settings/assets/InstallAssistantStep4.1-98043578.js new file mode 100644 index 0000000000..8a6689d1f9 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4.1-98043578.js @@ -0,0 +1 @@ +import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{I as d}from"./IoConfig-83896e35.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[i("p",null,' Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems. ',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep5-62ebcc68.js b/web/settings/assets/InstallAssistantStep5-62ebcc68.js deleted file mode 100644 index c32781bd9e..0000000000 --- a/web/settings/assets/InstallAssistantStep5-62ebcc68.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-5b5e1b75.js";import m from"./InstallAssistantStepTemplate-4589ee8a.js";import{H as u}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as r,l as g,x as f,E as a,A as n,G as w}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,v,S,A,i){const o=r("HardwareInstallationView"),d=r("InstallAssistantStepTemplate");return g(),f(d,{title:"4. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "primary" konfiguriert und übernimmt die Steuerung anderer openWBs, falls vorhanden, sowie die alleinige Regelung des Systems. Dazu müssen im Folgenden die Geräte und Komponenten eingerichtet werden. ',-1),n("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests nach der WB-Montage ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem bestehend aus EVU-Zähler, PV-Anlage und ggf. Speicher in openWB konfiguriert wird. ",-1),n("p",null," Jedes verfügbare Gerät wird durch eine eigene IP-Adresse definiert. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=p(h,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; diff --git a/web/settings/assets/InstallAssistantStep5-ee0ba959.js b/web/settings/assets/InstallAssistantStep5-ee0ba959.js new file mode 100644 index 0000000000..046ae03b37 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep5-ee0ba959.js @@ -0,0 +1 @@ +import{C as d}from"./index-e4c17b07.js";import m from"./InstallAssistantStepTemplate-27c622cd.js";import{H as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep6-db46bac5.js b/web/settings/assets/InstallAssistantStep6-60f17c70.js similarity index 84% rename from web/settings/assets/InstallAssistantStep6-db46bac5.js rename to web/settings/assets/InstallAssistantStep6-60f17c70.js index 96f9fc4fc7..08093ac29e 100644 --- a/web/settings/assets/InstallAssistantStep6-db46bac5.js +++ b/web/settings/assets/InstallAssistantStep6-60f17c70.js @@ -1 +1 @@ -import{C as d}from"./index-5b5e1b75.js";import u from"./InstallAssistantStepTemplate-4589ee8a.js";import{b as p}from"./ChargePointInstallation-acc5f333.js";import{_ as m,u as a,l as g,x as h,E as r,A as n,G as w}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(t,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return g(),h(l,{title:"5. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" Interne openWB ausgewählt. Weitere LP werden im primary als secondary konfigurierte openWB oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null," Im grauen Menü Ladepunkt-Profile können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; +import{C as d}from"./index-e4c17b07.js";import u from"./InstallAssistantStepTemplate-27c622cd.js";import{b as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as m,u as a,l as g,x as h,E as r,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(t,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return g(),h(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" Interne openWB ausgewählt. Weitere LP werden im primary als secondary konfigurierte openWB oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null," Im grauen Menü Ladepunkt-Profile können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep7-7858cbaf.js b/web/settings/assets/InstallAssistantStep7-881db088.js similarity index 81% rename from web/settings/assets/InstallAssistantStep7-7858cbaf.js rename to web/settings/assets/InstallAssistantStep7-881db088.js index ac88336023..5b707bfae2 100644 --- a/web/settings/assets/InstallAssistantStep7-7858cbaf.js +++ b/web/settings/assets/InstallAssistantStep7-881db088.js @@ -1 +1 @@ -import{C as l}from"./index-5b5e1b75.js";import m from"./InstallAssistantStepTemplate-4589ee8a.js";import p from"./LoadManagementConfig-ebecc34c.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./OpenwbSortableList-5dccf22c.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"6. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null," Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. secondary openWB) befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ",-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; +import{C as l}from"./index-e4c17b07.js";import m from"./InstallAssistantStepTemplate-27c622cd.js";import p from"./LoadManagementConfig-9ba2529d.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./OpenwbSortableList-227b0e79.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null," Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. secondary openWB) befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ",-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep8-6835c67c.js b/web/settings/assets/InstallAssistantStep8-174b8e4b.js similarity index 83% rename from web/settings/assets/InstallAssistantStep8-6835c67c.js rename to web/settings/assets/InstallAssistantStep8-174b8e4b.js index e648b29a18..fc479a9f19 100644 --- a/web/settings/assets/InstallAssistantStep8-6835c67c.js +++ b/web/settings/assets/InstallAssistantStep8-174b8e4b.js @@ -1 +1 @@ -import{C as g}from"./index-5b5e1b75.js";import p from"./InstallAssistantStepTemplate-4589ee8a.js";import{a as h}from"./VehicleConfig-c2429926.js";import{F as f}from"./vendor-fortawesome-855c7d62.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"7. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; +import{C as g}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{a as h}from"./VehicleConfig-2e0daf8e.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep9-21d7f4da.js b/web/settings/assets/InstallAssistantStep9-21d7f4da.js new file mode 100644 index 0000000000..09a5b58b09 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep9-21d7f4da.js @@ -0,0 +1 @@ +import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{D as u}from"./DataManagement-337c2c94.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep9-6029b0cf.js b/web/settings/assets/InstallAssistantStep9-6029b0cf.js deleted file mode 100644 index 6aefd5b249..0000000000 --- a/web/settings/assets/InstallAssistantStep9-6029b0cf.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./index-5b5e1b75.js";import p from"./InstallAssistantStepTemplate-4589ee8a.js";import{D as u}from"./DataManagement-d8247a90.js";import{_ as d,u as i,l as g,x as f,E as o,A as a,G as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:8}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function h(t,e,A,P,S,n){const r=i("DataManagement"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),a("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1),a("p",null,' Die Sicherung kann auch automatisiert auf einem Cloud-Dienst durchgeführt werden. Hierzu bitte im unteren Bereich "Backup-Cloud" die entsprechenden Einstellungen vornehmen. ',-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(c,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-4589ee8a.js b/web/settings/assets/InstallAssistantStepTemplate-27c622cd.js similarity index 87% rename from web/settings/assets/InstallAssistantStepTemplate-4589ee8a.js rename to web/settings/assets/InstallAssistantStepTemplate-27c622cd.js index 2f0193468b..8465c22c5e 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-4589ee8a.js +++ b/web/settings/assets/InstallAssistantStepTemplate-27c622cd.js @@ -1 +1 @@ -import{C as g}from"./index-5b5e1b75.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-855c7d62.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; +import{C as g}from"./index-e4c17b07.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfig-74e751bf.js b/web/settings/assets/IoConfig-83896e35.js similarity index 84% rename from web/settings/assets/IoConfig-74e751bf.js rename to web/settings/assets/IoConfig-83896e35.js index 02be8e867d..412ce77f30 100644 --- a/web/settings/assets/IoConfig-74e751bf.js +++ b/web/settings/assets/IoConfig-83896e35.js @@ -1 +1 @@ -import{l as q,aa as $,F as L}from"./vendor-fortawesome-855c7d62.js";import{_ as A,C as E}from"./index-5b5e1b75.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-cc4615be.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-f7bfe2d9.js"),["assets/io_device-f7bfe2d9.js","assets/index-5b5e1b75.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-e73fab6d.js"),["assets/io_device-e73fab6d.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[6]||(e[6]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128)),e[2]||(e[2]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[3]||(e[3]=w("br",null,null,-1)),e[4]||(e[4]=d(" Beispiel: ",-1)),e[5]||(e[5]=w("span",{class:"text-info"},"false",-1))])]),_:1,__:[6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-e37f3d26.js"),["assets/io_action-e37f3d26.js","assets/OpenwbIoSinglePattern-bdfa76d2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-ccf7b188.js"),["assets/io_action-ccf7b188.js","assets/OpenwbIoSinglePattern-bdfa76d2.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-0bf854b3.js"),["assets/io_action-0bf854b3.js","assets/OpenwbIoPattern-c832dbbd.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-ea45c9b1.js"),["assets/io_action-ea45c9b1.js","assets/OpenwbIoPattern-c832dbbd.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ye as I,F as O,Z as a}; +import{l as q,ab as $,F as L}from"./vendor-fortawesome-a02b6813.js";import{_ as A,C as E}from"./index-e4c17b07.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-25d394b4.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-ff6641fb.js"),["assets/io_device-ff6641fb.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-9ff50b11.js"),["assets/io_device-9ff50b11.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[6]||(e[6]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128)),e[2]||(e[2]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[3]||(e[3]=w("br",null,null,-1)),e[4]||(e[4]=d(" Beispiel: ",-1)),e[5]||(e[5]=w("span",{class:"text-info"},"false",-1))])]),_:1,__:[6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-976bf2b0.js"),["assets/io_action-976bf2b0.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-b9cbb026.js"),["assets/io_action-b9cbb026.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-c0bcbb6c.js"),["assets/io_action-c0bcbb6c.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-e0e64896.js"),["assets/io_action-e0e64896.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/LegalSettings-39bbfbb6.js b/web/settings/assets/LegalSettings-0495f43d.js similarity index 89% rename from web/settings/assets/LegalSettings-39bbfbb6.js rename to web/settings/assets/LegalSettings-0495f43d.js index c7d6c1daea..a67b2cdc9b 100644 --- a/web/settings/assets/LegalSettings-39bbfbb6.js +++ b/web/settings/assets/LegalSettings-0495f43d.js @@ -1 +1 @@ -import{l as f,af as k,F as v}from"./vendor-fortawesome-855c7d62.js";import{C as y}from"./index-5b5e1b75.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; +import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-e4c17b07.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; diff --git a/web/settings/assets/LoadManagementConfig-9ba2529d.js b/web/settings/assets/LoadManagementConfig-9ba2529d.js new file mode 100644 index 0000000000..cdaa12d128 --- /dev/null +++ b/web/settings/assets/LoadManagementConfig-9ba2529d.js @@ -0,0 +1 @@ +import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as Z}from"./index-e4c17b07.js";import{S as q}from"./OpenwbSortableList-227b0e79.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as w,M as v,F as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),W=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),_=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(W,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(w,null,v(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(_,{icon:["fas","gauge-high"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(w,null,v(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(_,{icon:["fas","solar-panel"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/LoadManagementConfig-ebecc34c.js b/web/settings/assets/LoadManagementConfig-ebecc34c.js deleted file mode 100644 index 56cf438050..0000000000 --- a/web/settings/assets/LoadManagementConfig-ebecc34c.js +++ /dev/null @@ -1 +0,0 @@ -import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-855c7d62.js";import{C as Z}from"./index-5b5e1b75.js";import{S as $}from"./OpenwbSortableList-5dccf22c.js";import{_ as q,u as l,l as u,m,A as d,G as s,E as o,B as i,N as _,M as w,x as v,F as W}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";C.add(L,x);const A={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let n=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(n).filter(e=>{var t;return(t=n[e])==null?void 0:t.type.includes("counter")}).reduce((e,t)=>({...e,[t]:n[t]}),{})}},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&n.push({value:e.id,text:e.name});return n.sort((e,t)=>e.text==t.text?0:e.text>t.text?1:-1)},inverterConfigs:{get(){let n=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(n).filter(e=>{var t;return(t=n[e])==null?void 0:t.type.includes("inverter")}).reduce((e,t)=>({...e,[t]:n[t]}),{})}},hierarchyLabels:{get(){let n={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))n={...n,...this.getElementTreeNames(e)};return n}},getHcSourceIdOptions(){let n=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:n,groups:e}}},methods:{getElementTreeNames(n){let e={};if(n.type=="cp"){let t=this.getChargePoint(n.id);t&&(e[n.id]=t.name)}else{let t=this.getComponent(n.id);t&&(e[n.id]=t.name)}return n.children.forEach(t=>{e={...e,...this.getElementTreeNames(t)}}),e},getComponent(n){let e;return Object.keys(this.$store.state.mqtt).forEach(t=>{t.match("^openWB/system/device/[0-9]+/component/"+n+"/config$")&&(e=this.$store.state.mqtt[t])}),e},getChargePoint(n){let e;return Object.keys(this.$store.state.mqtt).forEach(t=>{t.match("^openWB/chargepoint/"+n+"/config$")&&(e=this.$store.state.mqtt[t])}),e},isComponentType(n,e){return n==null?void 0:n.split("_").includes(e)}}},E={class:"loadManagementConfig"},M={name:"loadManagementConfigForm"},U={key:0},F={key:1},D={key:0},O={key:1};function P(n,e,t,H,N,g){const c=l("openwb-base-alert"),k=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),f=l("openwb-base-heading"),b=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",E,[d("form",M,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",U,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(k,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]}),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":n.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(f,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(_,null,w(g.counterConfigs,r=>(u(),v(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(b,{icon:["fas","gauge-high"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":n.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>n.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":n.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>n.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":n.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>n.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":n.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>n.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":n.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>n.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(f,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(_,null,w(g.inverterConfigs,r=>(u(),v(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(b,{icon:["fas","solar-panel"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>n.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",D,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",O,[s(z,{title:"Anordnung der Komponenten","model-value":n.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>n.$emit("save")),onReset:e[4]||(e[4]=r=>n.$emit("reset")),onDefaults:e[5]||(e[5]=r=>n.$emit("defaults"))})])])}const Q=q(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/MqttBridgeConfig-83a68e6b.js b/web/settings/assets/MqttBridgeConfig-0cb3253c.js similarity index 96% rename from web/settings/assets/MqttBridgeConfig-83a68e6b.js rename to web/settings/assets/MqttBridgeConfig-0cb3253c.js index 2db76e5ba6..41651aeef4 100644 --- a/web/settings/assets/MqttBridgeConfig-83a68e6b.js +++ b/web/settings/assets/MqttBridgeConfig-0cb3253c.js @@ -1 +1 @@ -import{l as x,d as C,aa as A,F as q}from"./vendor-fortawesome-855c7d62.js";import{C as z}from"./index-5b5e1b75.js";import{_ as D,u,l as m,m as b,G as o,E as a,A as f,N as M,B as s,F as E,x as k,z as T,M as W}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";x.add(C,A);const I={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:q},mixins:[z],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},P={class:"mqttBridgeConfiguration"},Q={key:0},Z={key:1},y=["name"];function N(t,e,v,F,g,i){const U=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),_=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),B=u("openwb-base-number-input"),S=u("openwb-base-submit-buttons"),w=u("openwb-base-card");return m(),b(M,null,[o(U,{show:g.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>i.removeMqttBridge(g.modalMqttBridgeIndex,r))},{default:a(()=>[s(' Wollen Sie die MQTT-Brücke "'+E(i.getMqttBridgeName(g.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),f("div",P,[o(c,{subtype:"danger"},{default:a(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),f("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),o(w,{title:"Konfigurierte MQTT-Brücken"},{actions:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),k(_,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:a(()=>[o(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):T("",!0)]),default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",Q,[o(c,{subtype:"info"},{default:a(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",Z,[Object.keys(i.configuredMqttBridges).length===0?(m(),k(c,{key:0,subtype:"info"},{default:a(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):T("",!0),(m(!0),b(M,null,W(i.configuredMqttBridges,(r,l)=>(m(),b("form",{key:l,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l)},[o(w,{title:r.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:a(()=>[o(_,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(l,n)},{default:a(()=>[o(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:a(()=>[o(S,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l),"hide-defaults":!0,onSave:n=>t.$emit("save",[l]),onReset:n=>t.$emit("reset",[l])},null,8,["form-name","onSave","onReset"])]),default:a(()=>[o(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":r.name,"onUpdate:modelValue":n=>t.updateState(l,n,"name")},{help:a(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.active,"onUpdate:modelValue":n=>t.updateState(l,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),o(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":r.remote.host,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),o(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":r.remote.port,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":r.remote.username,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Passwort",subtype:"password",required:"","model-value":r.remote.password,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":r.remote.prefix,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.prefix")},{help:a(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":r.remote.client_id,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.client_id")},{help:a(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":r.remote.protocol,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),o(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":r.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.tls_version")},{help:a(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.remote.try_private,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.try_private")},{help:a(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),o(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.status")},{help:a(()=>[...e[11]||(e[11]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.graph")},{help:a(()=>[...e[12]||(e[12]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.configuration")},{help:a(()=>[...e[13]||(e[13]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,y))),128))]))]),_:1})])],64)}const J=D(I,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; +import{l as x,d as C,ab as A,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-e4c17b07.js";import{_ as D,u,l as m,m as b,G as o,E as a,A as f,N as M,B as s,F as E,x as k,z as T,M as W}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";x.add(C,A);const I={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:q},mixins:[z],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},P={class:"mqttBridgeConfiguration"},Q={key:0},Z={key:1},y=["name"];function N(t,e,v,F,g,i){const U=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),_=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),B=u("openwb-base-number-input"),S=u("openwb-base-submit-buttons"),w=u("openwb-base-card");return m(),b(M,null,[o(U,{show:g.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>i.removeMqttBridge(g.modalMqttBridgeIndex,r))},{default:a(()=>[s(' Wollen Sie die MQTT-Brücke "'+E(i.getMqttBridgeName(g.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),f("div",P,[o(c,{subtype:"danger"},{default:a(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),f("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),o(w,{title:"Konfigurierte MQTT-Brücken"},{actions:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),k(_,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:a(()=>[o(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):T("",!0)]),default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",Q,[o(c,{subtype:"info"},{default:a(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",Z,[Object.keys(i.configuredMqttBridges).length===0?(m(),k(c,{key:0,subtype:"info"},{default:a(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):T("",!0),(m(!0),b(M,null,W(i.configuredMqttBridges,(r,l)=>(m(),b("form",{key:l,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l)},[o(w,{title:r.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:a(()=>[o(_,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(l,n)},{default:a(()=>[o(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:a(()=>[o(S,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l),"hide-defaults":!0,onSave:n=>t.$emit("save",[l]),onReset:n=>t.$emit("reset",[l])},null,8,["form-name","onSave","onReset"])]),default:a(()=>[o(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":r.name,"onUpdate:modelValue":n=>t.updateState(l,n,"name")},{help:a(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.active,"onUpdate:modelValue":n=>t.updateState(l,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),o(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":r.remote.host,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),o(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":r.remote.port,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":r.remote.username,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Passwort",subtype:"password",required:"","model-value":r.remote.password,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":r.remote.prefix,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.prefix")},{help:a(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":r.remote.client_id,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.client_id")},{help:a(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":r.remote.protocol,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),o(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":r.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.tls_version")},{help:a(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.remote.try_private,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.try_private")},{help:a(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),o(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.status")},{help:a(()=>[...e[11]||(e[11]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.graph")},{help:a(()=>[...e[12]||(e[12]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.configuration")},{help:a(()=>[...e[13]||(e[13]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,y))),128))]))]),_:1})])],64)}const J=D(I,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbIoPattern-c832dbbd.js b/web/settings/assets/OpenwbIoPattern-66bb2793.js similarity index 97% rename from web/settings/assets/OpenwbIoPattern-c832dbbd.js rename to web/settings/assets/OpenwbIoPattern-66bb2793.js index 9ea301fa3d..2f262fc01f 100644 --- a/web/settings/assets/OpenwbIoPattern-c832dbbd.js +++ b/web/settings/assets/OpenwbIoPattern-66bb2793.js @@ -1 +1 @@ -import{l as T,n as M,o as q,p as D,q as y,aa as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-855c7d62.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-cc4615be.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)]))):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:2},1032,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; +import{l as T,n as M,o as q,p as D,q as y,ab as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-25d394b4.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)]))):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:2},1032,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; diff --git a/web/settings/assets/OpenwbIoSinglePattern-bdfa76d2.js b/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js similarity index 97% rename from web/settings/assets/OpenwbIoSinglePattern-bdfa76d2.js rename to web/settings/assets/OpenwbIoSinglePattern-14df64f6.js index 10092a010e..b3cc054a78 100644 --- a/web/settings/assets/OpenwbIoSinglePattern-bdfa76d2.js +++ b/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js @@ -1 +1 @@ -import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-cc4615be.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; +import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-25d394b4.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; diff --git a/web/settings/assets/OpenwbSortableList-5dccf22c.js b/web/settings/assets/OpenwbSortableList-227b0e79.js similarity index 92% rename from web/settings/assets/OpenwbSortableList-5dccf22c.js rename to web/settings/assets/OpenwbSortableList-227b0e79.js index cc46535c1b..f9f72eb39b 100644 --- a/web/settings/assets/OpenwbSortableList-5dccf22c.js +++ b/web/settings/assets/OpenwbSortableList-227b0e79.js @@ -1 +1 @@ -import{O as v}from"./index-5b5e1b75.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-cc4615be.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-855c7d62.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; +import{O as v}from"./index-e4c17b07.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-25d394b4.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-a02b6813.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; diff --git a/web/settings/assets/OptionalComponents-f21e7cbe.js b/web/settings/assets/OptionalComponents-eab310e0.js similarity index 91% rename from web/settings/assets/OptionalComponents-f21e7cbe.js rename to web/settings/assets/OptionalComponents-eab310e0.js index f3f1f36882..e367dc3b9c 100644 --- a/web/settings/assets/OptionalComponents-f21e7cbe.js +++ b/web/settings/assets/OptionalComponents-eab310e0.js @@ -1 +1 @@ -import{_ as T,C as $}from"./index-5b5e1b75.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-855c7d62.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-cc4615be.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-dcfb0591.js"),["assets/displayTheme-dcfb0591.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-635b4268.js"),["assets/displayTheme-635b4268.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; +import{_ as T,C as $}from"./index-e4c17b07.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-25d394b4.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-c2dceb48.js"),["assets/displayTheme-c2dceb48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-178db1df.js"),["assets/displayTheme-178db1df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/PVChargeConfig-bc17ec59.js b/web/settings/assets/PVChargeConfig-e427d7a6.js similarity index 98% rename from web/settings/assets/PVChargeConfig-bc17ec59.js rename to web/settings/assets/PVChargeConfig-e427d7a6.js index 66385d8300..fe34b39556 100644 --- a/web/settings/assets/PVChargeConfig-bc17ec59.js +++ b/web/settings/assets/PVChargeConfig-e427d7a6.js @@ -1 +1 @@ -import{C as S}from"./index-5b5e1b75.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-855c7d62.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; +import{C as S}from"./index-e4c17b07.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-a02b6813.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/Status-67426cfa.js b/web/settings/assets/Status-f48d27b8.js similarity index 99% rename from web/settings/assets/Status-67426cfa.js rename to web/settings/assets/Status-f48d27b8.js index a6e5b739aa..3317f17f3b 100644 --- a/web/settings/assets/Status-67426cfa.js +++ b/web/settings/assets/Status-f48d27b8.js @@ -1 +1 @@ -import{C as k}from"./index-5b5e1b75.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-855c7d62.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-cc4615be.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-2bc02c38.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; +import{C as k}from"./index-e4c17b07.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-a02b6813.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-25d394b4.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-94a826eb.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Support-f0af7bfc.js b/web/settings/assets/Support-d39bee6a.js similarity index 95% rename from web/settings/assets/Support-f0af7bfc.js rename to web/settings/assets/Support-d39bee6a.js index cae8d834b1..8cddce1bdd 100644 --- a/web/settings/assets/Support-f0af7bfc.js +++ b/web/settings/assets/Support-d39bee6a.js @@ -1,3 +1,3 @@ -import{l as S,g as D,F as V}from"./vendor-fortawesome-855c7d62.js";import{C as W}from"./index-5b5e1b75.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} +import{l as S,g as D,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as W}from"./index-e4c17b07.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} `}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} `}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),_=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[5]}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1,__:[6,7]})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[8]}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1,__:[9,10]}),o(B,{title:"Systembericht"},z({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])),_:1,__:[11]}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])),_:1,__:[19]})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])),_:1,__:[22]})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:C(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>e[25]||(e[25]=[n(" Absenden ",-1)])),_:1,__:[25]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(_,{icon:["fas","check"]})]),_:1,__:[26]}))]))])])}const $=A(F,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/System-5b07ce9f.js b/web/settings/assets/System-5b07ce9f.js new file mode 100644 index 0000000000..d6006b503e --- /dev/null +++ b/web/settings/assets/System-5b07ce9f.js @@ -0,0 +1 @@ +import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-a02b6813.js";import{C as D}from"./index-e4c17b07.js";import{_ as R,u as g,l as p,m as y,x as _,E as i,z as h,G as r,A as a,q as k,N as V,M as A,F as B,B as l}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),_(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),a("form",N,[r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),_(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},B(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),_(n,{key:1,subtype:"danger"},{default:i(()=>e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),_(n,{key:2,subtype:"danger"},{default:i(()=>e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,B(s.name),1),a("td",null,B(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,B(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)]),_:1},8,["collapsed"])]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/Support"},{default:i(()=>e[30]||(e[30]=[l(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:i(()=>e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/System-f8f1bbde.js b/web/settings/assets/System-f8f1bbde.js deleted file mode 100644 index 3f2774eaa2..0000000000 --- a/web/settings/assets/System-f8f1bbde.js +++ /dev/null @@ -1 +0,0 @@ -import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-855c7d62.js";import{C as D}from"./index-5b5e1b75.js";import{_ as R,u as g,l as f,m as y,x as B,E as l,z as v,G as r,A as a,q as k,N as V,M as q,F as _,B as i}from"./vendor-cc4615be.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[m,c]of Object.entries(t))c.type==="external_openwb"&&(e[m]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",m="master",c=[t,e],b=(u,p)=>u.value==p.value?0:u.value==t?-1:p.value==t?1:u.value==e?-1:p.value==e?1:u.value==m?-1:p.value==m||u.value>p.value?1:u.value{const d=u=>{const p=u.split("-"),h=p[0].split(".");let w=[];return p.length>1?w=p[1].split("."):w=["release","0"],{semver:h,suffix:w}},o=d(c.value),n=d(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[m].type.includes(e)).reduce((m,c)=>({...m,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:2},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,m,c,b,d){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),u=g("openwb-base-text-input"),p=g("openwb-base-card"),h=g("font-awesome-icon"),w=g("openwb-base-click-button"),S=g("openwb-base-heading"),A=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return f(),y("div",I,[m.installAssistantActive?v("",!0):(f(),B(n,{key:0,subtype:"danger"},{default:l(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||m.installAssistantActive?(f(),y("div",P,[r(p,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:l(()=>[r(u,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(u,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(u,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),a("form",N,[r(p,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!m.installAssistantActive},{default:l(()=>[r(u,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(u,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(u,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(d.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(u,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),d.updateAvailable?(f(),B(p,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:l(()=>[a("ul",O,[(f(!0),y(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(f(),y("li",{key:$},_(s),1))),128))])]),_:1})):v("",!0),r(n,{subtype:"danger"},{default:l(()=>e[20]||(e[20]=[i(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]}),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"?(f(),B(n,{key:1,subtype:"danger"},{default:l(()=>e[21]||(e[21]=[i(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),i(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):v("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>d.sendSystemCommand("systemFetchVersions"))},{default:l(()=>[e[22]||(e[22]=i(" Informationen aktualisieren ",-1)),r(h,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(d.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!d.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>d.systemUpdate())},{default:l(()=>[e[23]||(e[23]=i(" Update ",-1)),r(h,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0?(f(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(S,null,{default:l(()=>e[24]||(e[24]=[i("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:l(()=>e[25]||(e[25]=[i(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(f(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:l(()=>e[26]||(e[26]=[i(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(f(!0),y(V,null,q(d.externalChargepoints,s=>(f(),y("tr",{key:s.id},[a("td",null,_(s.name),1),a("td",null,_(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,_(s.configuration.ip_address),1)]))),128))])]),r(A,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):v("",!0)])):v("",!0)]),_:1},8,["collapsed"])]),m.installAssistantActive?v("",!0):(f(),y("form",Q,[r(p,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:l(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>d.sendSystemCommand("systemReboot"))},{default:l(()=>[e[35]||(e[35]=i(" Neustart ",-1)),r(h,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>d.sendSystemCommand("systemShutdown"))},{default:l(()=>[e[36]||(e[36]=i(" Ausschalten ",-1)),r(h,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:l(()=>[r(n,{subtype:"danger"},{default:l(()=>e[29]||(e[29]=[i(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=i(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=i("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/Support"},{default:l(()=>e[30]||(e[30]=[i(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=i(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),m.installAssistantActive?v("",!0):(f(),y("form",te,[r(p,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:l(()=>[a("div",se,[a("div",ne,[r(w,{class:k(d.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!d.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>d.switchBranch())},{default:l(()=>[r(h,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=i(" Branch und Tag wechseln ",-1)),r(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:l(()=>[r(n,{subtype:"danger"},{default:l(()=>e[37]||(e[37]=[i(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:l(()=>e[38]||(e[38]=[i(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),i(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),i(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),i(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),i(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:d.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:d.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):v("",!0)])}const pe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{pe as default}; diff --git a/web/settings/assets/TestingStore-d5c5514d.js b/web/settings/assets/TestingStore-be12c671.js similarity index 96% rename from web/settings/assets/TestingStore-d5c5514d.js rename to web/settings/assets/TestingStore-be12c671.js index 73040b6ab9..ee6da320f0 100644 --- a/web/settings/assets/TestingStore-d5c5514d.js +++ b/web/settings/assets/TestingStore-be12c671.js @@ -1 +1 @@ -import{C as B}from"./index-5b5e1b75.js";import{S as O}from"./OpenwbSortableList-5dccf22c.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; +import{C as B}from"./index-e4c17b07.js";import{S as O}from"./OpenwbSortableList-227b0e79.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/VehicleConfig-c2429926.js b/web/settings/assets/VehicleConfig-2e0daf8e.js similarity index 89% rename from web/settings/assets/VehicleConfig-c2429926.js rename to web/settings/assets/VehicleConfig-2e0daf8e.js index 2dae6f215f..5fba03ddaa 100644 --- a/web/settings/assets/VehicleConfig-c2429926.js +++ b/web/settings/assets/VehicleConfig-2e0daf8e.js @@ -1 +1 @@ -import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,aa as X,d as oe,a0 as de,ao as se,R as me,M as ge}from"./vendor-fortawesome-855c7d62.js";import{_ as k,C as Y}from"./index-5b5e1b75.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as c,l as d,m as g,x as b,E as a,B as i,F as w,G as l,A as p,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-cc4615be.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,P,y,t){const E=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),g("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[p("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-be11133e.js"),["assets/vehicle-be11133e.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-57c44e4f.js"),["assets/vehicle-57c44e4f.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-52abc450.js"),["assets/vehicle-52abc450.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-d5ac3573.js"),["assets/vehicle-d5ac3573.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-1d9f77b1.js"),["assets/vehicle-1d9f77b1.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-b1993187.js"),["assets/vehicle-b1993187.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-05b8b107.js"),["assets/vehicle-05b8b107.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-8c574416.js"),["assets/vehicle-8c574416.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-c1d27dfd.js"),["assets/vehicle-c1d27dfd.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-63d2e44b.js"),["assets/vehicle-63d2e44b.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-30a8b189.js"),["assets/vehicle-30a8b189.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-52cf89cb.js"),["assets/vehicle-52cf89cb.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-fc942755.js"),["assets/vehicle-fc942755.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-44740467.js"),["assets/vehicle-44740467.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-2966a953.js"),["assets/vehicle-2966a953.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-111b97e5.js"),["assets/vehicle-111b97e5.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-c54ae651.js"),["assets/vehicle-c54ae651.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-9e586137.js"),["assets/vehicle-9e586137.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-3d04897a.js"),["assets/vehicle-3d04897a.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-axios-3dcaeec5.js","assets/index-5b5e1b75.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-0bedc131.js"),["assets/vehicle-0bedc131.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-5a13dbc9.js"),["assets/vehicle-5a13dbc9.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/index-5b5e1b75.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,y,t){const E=c("font-awesome-icon"),h=c("openwb-base-alert"),z=c("openwb-base-heading");return d(),g(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Pe={key:2},Ue={key:3},Le={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Le,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),g("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),g("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",Be,[(d(!0),g(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(d(),b(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(d(),g("div",Me,[e[30]||(e[30]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),p("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(d(),b(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),g("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=p("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",He,[(d(!0),g(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(oe,X,j,G,J,H,R,I,de,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const y=`card-${n}-${P}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=P!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},on={key:0},dn={key:0},sn={key:1},mn={key:0},gn={key:0},pn={key:3},hn={key:0},cn={key:1},bn={key:0},fn={key:0},vn={key:1};function _n(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),S=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),L=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),g(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=u=>t.removeVehicle(u,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=u=>t.removeEvTemplate(u,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=u=>t.removeChargeTemplate(u,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",Qe,[p("form",Xe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(d(),g("div",Ke,[(d(!0),g(W,null,D(t.vehicleIndexes,u=>(d(),b(U,{key:u,title:t.getVehicleName(u),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==u),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/name"],disabled:u===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/name",o)},Z({_:2},[u===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),u!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),u!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),p("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=p("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),g("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"].length>0?(d(),g("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),g("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(d(),g("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"]},null,8,["model-value"])])):(d(),g("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=p("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=p("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(u,o)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),p("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),p("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),p("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type?(d(),g("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":u,vehicle:n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+u+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[u!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:r=>t.removeVehicleModal(r,u)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=p("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(d(),g("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),p("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(d(!0),g(W,null,D(t.evTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":u.battery_capacity/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":u.efficiency,"onUpdate:modelValue":r=>n.updateState(o,r,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),p("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),p("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":u.average_consump/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":u.bidi,"onUpdate:modelValue":r=>n.updateState(o,r,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),g("div",sn,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(u.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(u.dc_max_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),g("span",mn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(L,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":u.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":u.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":u.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":u.nominal_difference,"onUpdate:modelValue":r=>n.updateState(o,r,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),g("span",gn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":u.max_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.control_pilot_interruption,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":u.control_pilot_interruption_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_phase_switch,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_charge_stop,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":u.phase_switch_pause,"onUpdate:modelValue":r=>n.updateState(o,r,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",pn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":u.keep_charge_active_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(r=>[r.collapsed?m("",!0):(d(),g("span",on,[l(z,{class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",hn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(d(),g("div",cn,[(d(!0),g(W,null,D(t.chargeTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==u.id)},{actions:a(r=>[r.collapsed?m("",!0):(d(),g("span",bn,[l(z,{class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":u.chargemode.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.selected"),onButtonClick:r=>t.openActiveChargeModeCard(o,r)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),p("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),p("br",null,null,-1),p("ol",null,[p("li",null,"Ziel (Sofortladen) mit Priorität"),p("li",null,"Ziel (Sofortladen)"),p("li",null,"Zeit mit Priorität"),p("li",null,"Zeit"),p("li",null,"Sofort mit Priorität"),p("li",null,"Sofort"),p("li",null,"Eco (Min-Anteil) mit Priorität"),p("li",null,"Eco (Min-Anteil)"),p("li",null,"PV (Min-Anteil) mit Priorität"),p("li",null,"PV (Min-Anteil)"),p("li",null,"Ziel (PV) mit Priorität"),p("li",null,"Ziel (PV)"),p("li",null,"Eco (PV-Anteil) mit Priorität"),p("li",null,"Eco (PV-Anteil)"),p("li",null,"PV (PV-Anteil) mit Priorität"),p("li",null,"PV (PV-Anteil)"),p("li",null,"Bidi-Entladen ohne Priorität"),p("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),g("div",fn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.prio,"onUpdate:modelValue":r=>n.updateState(o,r,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.load_default,"onUpdate:modelValue":r=>n.updateState(o,r,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=p("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(L,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.instant_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.instant_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(L,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":u.chargemode.pv_charging.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":u.chargemode.pv_charging.min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),p("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateSchedulePlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),p("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),p("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),u.chargemode.scheduled_charging.plans.length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(d(!0),g(W,null,D(u.chargemode.scheduled_charging.plans,(r,A)=>(d(),b(ne,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(L,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.eco_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.eco_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(d(),b(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":u.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":r=>n.updateState(o,parseFloat((r/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),g("div",vn,[e[92]||(e[92]=p("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.time_charging.active,"onUpdate:modelValue":r=>n.updateState(o,r,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[p("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),p("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateTimeChargingPlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(u.time_charging.plans??[]).length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(d(!0),g(W,null,D(u.time_charging.plans??[],(r,A)=>(d(),b(te,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=u=>n.$emit("save")),onReset:e[6]||(e[6]=u=>n.$emit("reset")),onDefaults:e[7]||(e[7]=u=>n.$emit("defaults"))})])])],64)}const Vn=q(Ge,[["render",_n],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,Vn as a,Sn as b}; +import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as oe,a0 as de,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-e4c17b07.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as c,l as d,m as g,x as b,E as a,B as i,F as w,G as l,A as p,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-25d394b4.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,P,y,t){const E=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),g("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[p("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-ce15b972.js"),["assets/vehicle-ce15b972.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-2e31f054.js"),["assets/vehicle-2e31f054.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-b6b40aa6.js"),["assets/vehicle-b6b40aa6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-81c54b19.js"),["assets/vehicle-81c54b19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-552086ad.js"),["assets/vehicle-552086ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-b55a7355.js"),["assets/vehicle-b55a7355.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-5bf23959.js"),["assets/vehicle-5bf23959.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-54d21a19.js"),["assets/vehicle-54d21a19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-f5091955.js"),["assets/vehicle-f5091955.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-bc9278d5.js"),["assets/vehicle-bc9278d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-4ee84148.js"),["assets/vehicle-4ee84148.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-62ddb254.js"),["assets/vehicle-62ddb254.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-d5f041d0.js"),["assets/vehicle-d5f041d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-a44392fc.js"),["assets/vehicle-a44392fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-e22aaad0.js"),["assets/vehicle-e22aaad0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-081d1860.js"),["assets/vehicle-081d1860.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-02f99327.js"),["assets/vehicle-02f99327.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-a08311d0.js"),["assets/vehicle-a08311d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-aa814b6d.js"),["assets/vehicle-aa814b6d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-fa5f8129.js"),["assets/vehicle-fa5f8129.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-3688de48.js"),["assets/vehicle-3688de48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,y,t){const E=c("font-awesome-icon"),h=c("openwb-base-alert"),z=c("openwb-base-heading");return d(),g(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Pe={key:2},Ue={key:3},Le={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Le,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),g("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),g("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",Be,[(d(!0),g(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(d(),b(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(d(),g("div",Me,[e[30]||(e[30]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),p("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(d(),b(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),g("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=p("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",He,[(d(!0),g(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(oe,X,j,G,J,H,R,I,de,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const y=`card-${n}-${P}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=P!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},on={key:0},dn={key:0},sn={key:1},mn={key:0},gn={key:0},pn={key:3},hn={key:0},cn={key:1},bn={key:0},fn={key:0},vn={key:1};function _n(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),S=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),L=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),g(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=u=>t.removeVehicle(u,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=u=>t.removeEvTemplate(u,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=u=>t.removeChargeTemplate(u,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",Qe,[p("form",Xe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(d(),g("div",Ke,[(d(!0),g(W,null,D(t.vehicleIndexes,u=>(d(),b(U,{key:u,title:t.getVehicleName(u),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==u),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/name"],disabled:u===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/name",o)},Z({_:2},[u===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),u!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),u!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),p("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=p("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),g("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"].length>0?(d(),g("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),g("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(d(),g("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"]},null,8,["model-value"])])):(d(),g("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=p("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=p("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(u,o)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),p("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),p("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),p("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type?(d(),g("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":u,vehicle:n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+u+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[u!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:r=>t.removeVehicleModal(r,u)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=p("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(d(),g("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),p("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(d(!0),g(W,null,D(t.evTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":u.battery_capacity/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":u.efficiency,"onUpdate:modelValue":r=>n.updateState(o,r,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),p("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),p("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":u.average_consump/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":u.bidi,"onUpdate:modelValue":r=>n.updateState(o,r,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),g("div",sn,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(u.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(u.dc_max_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),g("span",mn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(L,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":u.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":u.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":u.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":u.nominal_difference,"onUpdate:modelValue":r=>n.updateState(o,r,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),g("span",gn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":u.max_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.control_pilot_interruption,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":u.control_pilot_interruption_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_phase_switch,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_charge_stop,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":u.phase_switch_pause,"onUpdate:modelValue":r=>n.updateState(o,r,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",pn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":u.keep_charge_active_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(r=>[r.collapsed?m("",!0):(d(),g("span",on,[l(z,{class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",hn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(d(),g("div",cn,[(d(!0),g(W,null,D(t.chargeTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==u.id)},{actions:a(r=>[r.collapsed?m("",!0):(d(),g("span",bn,[l(z,{class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":u.chargemode.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.selected"),onButtonClick:r=>t.openActiveChargeModeCard(o,r)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),p("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),p("br",null,null,-1),p("ol",null,[p("li",null,"Ziel (Sofortladen) mit Priorität"),p("li",null,"Ziel (Sofortladen)"),p("li",null,"Zeit mit Priorität"),p("li",null,"Zeit"),p("li",null,"Sofort mit Priorität"),p("li",null,"Sofort"),p("li",null,"Eco (Min-Anteil) mit Priorität"),p("li",null,"Eco (Min-Anteil)"),p("li",null,"PV (Min-Anteil) mit Priorität"),p("li",null,"PV (Min-Anteil)"),p("li",null,"Ziel (PV) mit Priorität"),p("li",null,"Ziel (PV)"),p("li",null,"Eco (PV-Anteil) mit Priorität"),p("li",null,"Eco (PV-Anteil)"),p("li",null,"PV (PV-Anteil) mit Priorität"),p("li",null,"PV (PV-Anteil)"),p("li",null,"Bidi-Entladen ohne Priorität"),p("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),g("div",fn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.prio,"onUpdate:modelValue":r=>n.updateState(o,r,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.load_default,"onUpdate:modelValue":r=>n.updateState(o,r,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=p("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(L,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.instant_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.instant_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(L,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":u.chargemode.pv_charging.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":u.chargemode.pv_charging.min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),p("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateSchedulePlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),p("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),p("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),u.chargemode.scheduled_charging.plans.length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(d(!0),g(W,null,D(u.chargemode.scheduled_charging.plans,(r,A)=>(d(),b(ne,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(L,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.eco_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.eco_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(d(),b(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":u.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":r=>n.updateState(o,parseFloat((r/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),g("div",vn,[e[92]||(e[92]=p("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.time_charging.active,"onUpdate:modelValue":r=>n.updateState(o,r,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[p("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),p("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateTimeChargingPlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(u.time_charging.plans??[]).length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(d(!0),g(W,null,D(u.time_charging.plans??[],(r,A)=>(d(),b(te,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=u=>n.$emit("save")),onReset:e[6]||(e[6]=u=>n.$emit("reset")),onDefaults:e[7]||(e[7]=u=>n.$emit("defaults"))})])])],64)}const Vn=q(Ge,[["render",_n],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,Vn as a,Sn as b}; diff --git a/web/settings/assets/backup_cloud-d519b0e4.js b/web/settings/assets/backup_cloud-08aafac7.js similarity index 89% rename from web/settings/assets/backup_cloud-d519b0e4.js rename to web/settings/assets/backup_cloud-08aafac7.js index aea27bcf46..c736718f63 100644 --- a/web/settings/assets/backup_cloud-d519b0e4.js +++ b/web/settings/assets/backup_cloud-08aafac7.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-d8247a90.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; +import{B as c}from"./DataManagement-337c2c94.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-f1402716.js b/web/settings/assets/backup_cloud-170635e1.js similarity index 76% rename from web/settings/assets/backup_cloud-f1402716.js rename to web/settings/assets/backup_cloud-170635e1.js index 5864c14a00..bc366a20f9 100644 --- a/web/settings/assets/backup_cloud-f1402716.js +++ b/web/settings/assets/backup_cloud-170635e1.js @@ -1 +1 @@ -import{B as a}from"./DataManagement-d8247a90.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; +import{B as a}from"./DataManagement-337c2c94.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-7386c81c.js b/web/settings/assets/backup_cloud-436cb5f2.js similarity index 81% rename from web/settings/assets/backup_cloud-7386c81c.js rename to web/settings/assets/backup_cloud-436cb5f2.js index 10b01c97d0..f0fa61b604 100644 --- a/web/settings/assets/backup_cloud-7386c81c.js +++ b/web/settings/assets/backup_cloud-436cb5f2.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-d8247a90.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; +import{B as r}from"./DataManagement-337c2c94.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/backup_cloud-63db317f.js b/web/settings/assets/backup_cloud-acb80510.js similarity index 69% rename from web/settings/assets/backup_cloud-63db317f.js rename to web/settings/assets/backup_cloud-acb80510.js index 283ebc1564..cd6d2d89f9 100644 --- a/web/settings/assets/backup_cloud-63db317f.js +++ b/web/settings/assets/backup_cloud-acb80510.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-d8247a90.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; +import{B as r}from"./DataManagement-337c2c94.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-ff14336b.js b/web/settings/assets/bat-0b64db60.js similarity index 63% rename from web/settings/assets/bat-ff14336b.js rename to web/settings/assets/bat-0b64db60.js index 1dde8992cb..74273ce60f 100644 --- a/web/settings/assets/bat-ff14336b.js +++ b/web/settings/assets/bat-0b64db60.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-c8df9db2.js b/web/settings/assets/bat-2429ce05.js similarity index 63% rename from web/settings/assets/bat-c8df9db2.js rename to web/settings/assets/bat-2429ce05.js index f5b36c1e05..918e3c43c2 100644 --- a/web/settings/assets/bat-c8df9db2.js +++ b/web/settings/assets/bat-2429ce05.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-178b4d72.js b/web/settings/assets/bat-2f1c9807.js similarity index 87% rename from web/settings/assets/bat-178b4d72.js rename to web/settings/assets/bat-2f1c9807.js index fd4f16865e..5605e88126 100644 --- a/web/settings/assets/bat-178b4d72.js +++ b/web/settings/assets/bat-2f1c9807.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-f5996a86.js b/web/settings/assets/bat-37c3cc3b.js similarity index 64% rename from web/settings/assets/bat-f5996a86.js rename to web/settings/assets/bat-37c3cc3b.js index 632272e161..e0520cae9a 100644 --- a/web/settings/assets/bat-f5996a86.js +++ b/web/settings/assets/bat-37c3cc3b.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-61976e47.js b/web/settings/assets/bat-3999cc82.js similarity index 94% rename from web/settings/assets/bat-61976e47.js rename to web/settings/assets/bat-3999cc82.js index 6db1206412..7779ec1c43 100644 --- a/web/settings/assets/bat-61976e47.js +++ b/web/settings/assets/bat-3999cc82.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-9d7a6eb2.js b/web/settings/assets/bat-3c83952b.js similarity index 63% rename from web/settings/assets/bat-9d7a6eb2.js rename to web/settings/assets/bat-3c83952b.js index e7128e447d..f0ee1b1441 100644 --- a/web/settings/assets/bat-9d7a6eb2.js +++ b/web/settings/assets/bat-3c83952b.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-5d61bb37.js b/web/settings/assets/bat-43e9cde4.js similarity index 63% rename from web/settings/assets/bat-5d61bb37.js rename to web/settings/assets/bat-43e9cde4.js index 1a51b62253..6a8100f5cc 100644 --- a/web/settings/assets/bat-5d61bb37.js +++ b/web/settings/assets/bat-43e9cde4.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-1ea31bcb.js b/web/settings/assets/bat-4626ba65.js similarity index 67% rename from web/settings/assets/bat-1ea31bcb.js rename to web/settings/assets/bat-4626ba65.js index 275b737d30..3fa98aa0b4 100644 --- a/web/settings/assets/bat-1ea31bcb.js +++ b/web/settings/assets/bat-4626ba65.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-2c687349.js b/web/settings/assets/bat-513d9188.js similarity index 63% rename from web/settings/assets/bat-2c687349.js rename to web/settings/assets/bat-513d9188.js index 44c5653fe5..131784f2ec 100644 --- a/web/settings/assets/bat-2c687349.js +++ b/web/settings/assets/bat-513d9188.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-a148f905.js b/web/settings/assets/bat-58a85a8c.js similarity index 69% rename from web/settings/assets/bat-a148f905.js rename to web/settings/assets/bat-58a85a8c.js index 24ae8ffbb3..910f273a14 100644 --- a/web/settings/assets/bat-a148f905.js +++ b/web/settings/assets/bat-58a85a8c.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-0a6c26e6.js b/web/settings/assets/bat-5ef99d8c.js similarity index 67% rename from web/settings/assets/bat-0a6c26e6.js rename to web/settings/assets/bat-5ef99d8c.js index ca0216781a..cfbffde64c 100644 --- a/web/settings/assets/bat-0a6c26e6.js +++ b/web/settings/assets/bat-5ef99d8c.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-0ab7bb3c.js b/web/settings/assets/bat-6b9fff6c.js similarity index 68% rename from web/settings/assets/bat-0ab7bb3c.js rename to web/settings/assets/bat-6b9fff6c.js index 1df6239bb3..eeae113f52 100644 --- a/web/settings/assets/bat-0ab7bb3c.js +++ b/web/settings/assets/bat-6b9fff6c.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-162d668e.js b/web/settings/assets/bat-845f69cb.js similarity index 73% rename from web/settings/assets/bat-162d668e.js rename to web/settings/assets/bat-845f69cb.js index fd78f35c22..06e1e3a1b5 100644 --- a/web/settings/assets/bat-162d668e.js +++ b/web/settings/assets/bat-845f69cb.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-d22cb137.js b/web/settings/assets/bat-a037c1ad.js similarity index 65% rename from web/settings/assets/bat-d22cb137.js rename to web/settings/assets/bat-a037c1ad.js index f215031d2d..d99c59fd5f 100644 --- a/web/settings/assets/bat-d22cb137.js +++ b/web/settings/assets/bat-a037c1ad.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-24ad9602.js b/web/settings/assets/bat-b7a74be0.js similarity index 67% rename from web/settings/assets/bat-24ad9602.js rename to web/settings/assets/bat-b7a74be0.js index 15b6d08a6f..553d5cb955 100644 --- a/web/settings/assets/bat-24ad9602.js +++ b/web/settings/assets/bat-b7a74be0.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-7f36252e.js b/web/settings/assets/bat-b9d525a8.js similarity index 64% rename from web/settings/assets/bat-7f36252e.js rename to web/settings/assets/bat-b9d525a8.js index 878376fc1d..183b1e946b 100644 --- a/web/settings/assets/bat-7f36252e.js +++ b/web/settings/assets/bat-b9d525a8.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-7f9d958a.js b/web/settings/assets/bat-ba22f76f.js similarity index 63% rename from web/settings/assets/bat-7f9d958a.js rename to web/settings/assets/bat-ba22f76f.js index ea2b074734..a6449aa8eb 100644 --- a/web/settings/assets/bat-7f9d958a.js +++ b/web/settings/assets/bat-ba22f76f.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-a3aa8666.js b/web/settings/assets/bat-bfa3303d.js similarity index 66% rename from web/settings/assets/bat-a3aa8666.js rename to web/settings/assets/bat-bfa3303d.js index b52b3275e6..536376e238 100644 --- a/web/settings/assets/bat-a3aa8666.js +++ b/web/settings/assets/bat-bfa3303d.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-198506bb.js b/web/settings/assets/bat-ccce56c3.js similarity index 64% rename from web/settings/assets/bat-198506bb.js rename to web/settings/assets/bat-ccce56c3.js index 8551557e0e..a646a3204d 100644 --- a/web/settings/assets/bat-198506bb.js +++ b/web/settings/assets/bat-ccce56c3.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-ad50e924.js b/web/settings/assets/bat-f2c5f46a.js similarity index 93% rename from web/settings/assets/bat-ad50e924.js rename to web/settings/assets/bat-f2c5f46a.js index 502230dfde..8c0b806bd8 100644 --- a/web/settings/assets/bat-ad50e924.js +++ b/web/settings/assets/bat-f2c5f46a.js @@ -1 +1 @@ -import{C as b}from"./HardwareInstallation-5d83a25e.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; +import{C as b}from"./HardwareInstallation-6515151f.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-cadab577.js b/web/settings/assets/bat-f9655da7.js similarity index 72% rename from web/settings/assets/bat-cadab577.js rename to web/settings/assets/bat-f9655da7.js index 11ae4a0419..2f7cf3aed1 100644 --- a/web/settings/assets/bat-cadab577.js +++ b/web/settings/assets/bat-f9655da7.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-5d83a25e.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; +import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-2f843b85.js b/web/settings/assets/bat-ff0fd7a4.js similarity index 73% rename from web/settings/assets/bat-2f843b85.js rename to web/settings/assets/bat-ff0fd7a4.js index a599e6ba79..5c7215664e 100644 --- a/web/settings/assets/bat-2f843b85.js +++ b/web/settings/assets/bat-ff0fd7a4.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat_smart_energy-f85a7ba3.js b/web/settings/assets/bat_smart_energy-35671b9e.js similarity index 65% rename from web/settings/assets/bat_smart_energy-f85a7ba3.js rename to web/settings/assets/bat_smart_energy-35671b9e.js index 34e0be0fd5..b73e5030f6 100644 --- a/web/settings/assets/bat_smart_energy-f85a7ba3.js +++ b/web/settings/assets/bat_smart_energy-35671b9e.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/chargePoint-d7e93475.js b/web/settings/assets/chargePoint-2e02c1d8.js similarity index 72% rename from web/settings/assets/chargePoint-d7e93475.js rename to web/settings/assets/chargePoint-2e02c1d8.js index 44d5544988..d6128220e6 100644 --- a/web/settings/assets/chargePoint-d7e93475.js +++ b/web/settings/assets/chargePoint-2e02c1d8.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-acc5f333.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; +import{C as s}from"./ChargePointInstallation-4bbfab0c.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-a724d441.js b/web/settings/assets/chargePoint-2e5fe02e.js similarity index 82% rename from web/settings/assets/chargePoint-a724d441.js rename to web/settings/assets/chargePoint-2e5fe02e.js index 8ff404b8a5..1a4672fe36 100644 --- a/web/settings/assets/chargePoint-a724d441.js +++ b/web/settings/assets/chargePoint-2e5fe02e.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-acc5f333.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; +import{C as u}from"./ChargePointInstallation-4bbfab0c.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-363cfa95.js b/web/settings/assets/chargePoint-3411e592.js similarity index 59% rename from web/settings/assets/chargePoint-363cfa95.js rename to web/settings/assets/chargePoint-3411e592.js index fcb40dd9b3..c5b2155530 100644 --- a/web/settings/assets/chargePoint-363cfa95.js +++ b/web/settings/assets/chargePoint-3411e592.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-acc5f333.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-4bbfab0c.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-a57ed65a.js b/web/settings/assets/chargePoint-4a3d6c03.js similarity index 72% rename from web/settings/assets/chargePoint-a57ed65a.js rename to web/settings/assets/chargePoint-4a3d6c03.js index 533ba8231c..bd451fbe9b 100644 --- a/web/settings/assets/chargePoint-a57ed65a.js +++ b/web/settings/assets/chargePoint-4a3d6c03.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-acc5f333.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; +import{C as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-e966751c.js b/web/settings/assets/chargePoint-64ce2ff0.js similarity index 96% rename from web/settings/assets/chargePoint-e966751c.js rename to web/settings/assets/chargePoint-64ce2ff0.js index fcaeb4b8d1..acdecc8525 100644 --- a/web/settings/assets/chargePoint-e966751c.js +++ b/web/settings/assets/chargePoint-64ce2ff0.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-acc5f333.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; +import{C as d}from"./ChargePointInstallation-4bbfab0c.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/chargePoint-e34d0bf9.js b/web/settings/assets/chargePoint-ca1cba52.js similarity index 59% rename from web/settings/assets/chargePoint-e34d0bf9.js rename to web/settings/assets/chargePoint-ca1cba52.js index 19124664e2..00973cfa44 100644 --- a/web/settings/assets/chargePoint-e34d0bf9.js +++ b/web/settings/assets/chargePoint-ca1cba52.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-acc5f333.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-4bbfab0c.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-36b9cbe5.js b/web/settings/assets/chargePoint-d31da4cb.js similarity index 72% rename from web/settings/assets/chargePoint-36b9cbe5.js rename to web/settings/assets/chargePoint-d31da4cb.js index 61e1cf31d5..798a8f27bd 100644 --- a/web/settings/assets/chargePoint-36b9cbe5.js +++ b/web/settings/assets/chargePoint-d31da4cb.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-acc5f333.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; +import{C as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/commands-f64df432.js b/web/settings/assets/commands-6e8b9876.js similarity index 88% rename from web/settings/assets/commands-f64df432.js rename to web/settings/assets/commands-6e8b9876.js index d881b2de6b..a5f2758daf 100644 --- a/web/settings/assets/commands-f64df432.js +++ b/web/settings/assets/commands-6e8b9876.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-acc5f333.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; +import{a as g}from"./ChargePointInstallation-4bbfab0c.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; diff --git a/web/settings/assets/commands-36456a01.js b/web/settings/assets/commands-9cc92488.js similarity index 84% rename from web/settings/assets/commands-36456a01.js rename to web/settings/assets/commands-9cc92488.js index 175013e156..dfabb3c688 100644 --- a/web/settings/assets/commands-36456a01.js +++ b/web/settings/assets/commands-9cc92488.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-acc5f333.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; +import{a as d}from"./ChargePointInstallation-4bbfab0c.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; diff --git a/web/settings/assets/consumption_counter-3eda920a.js b/web/settings/assets/consumption_counter-28c4feb4.js similarity index 79% rename from web/settings/assets/consumption_counter-3eda920a.js rename to web/settings/assets/consumption_counter-28c4feb4.js index 73925a7b67..65c9406ddc 100644 --- a/web/settings/assets/consumption_counter-3eda920a.js +++ b/web/settings/assets/consumption_counter-28c4feb4.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-a4e6b35f.js b/web/settings/assets/counter-034d35d7.js similarity index 64% rename from web/settings/assets/counter-a4e6b35f.js rename to web/settings/assets/counter-034d35d7.js index 2990c83f18..d456f691a2 100644 --- a/web/settings/assets/counter-a4e6b35f.js +++ b/web/settings/assets/counter-034d35d7.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-0402fbea.js b/web/settings/assets/counter-03d43b57.js similarity index 65% rename from web/settings/assets/counter-0402fbea.js rename to web/settings/assets/counter-03d43b57.js index 02452f2dad..5790369d27 100644 --- a/web/settings/assets/counter-0402fbea.js +++ b/web/settings/assets/counter-03d43b57.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-a8dd44f0.js b/web/settings/assets/counter-06424364.js similarity index 70% rename from web/settings/assets/counter-a8dd44f0.js rename to web/settings/assets/counter-06424364.js index 7148ee3bca..9bebb96214 100644 --- a/web/settings/assets/counter-a8dd44f0.js +++ b/web/settings/assets/counter-06424364.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-96fd1246.js b/web/settings/assets/counter-0d3d09ba.js similarity index 63% rename from web/settings/assets/counter-96fd1246.js rename to web/settings/assets/counter-0d3d09ba.js index bae1567416..8322a51286 100644 --- a/web/settings/assets/counter-96fd1246.js +++ b/web/settings/assets/counter-0d3d09ba.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-66796b0b.js b/web/settings/assets/counter-15a40a05.js similarity index 71% rename from web/settings/assets/counter-66796b0b.js rename to web/settings/assets/counter-15a40a05.js index 78c3162fe6..134706f001 100644 --- a/web/settings/assets/counter-66796b0b.js +++ b/web/settings/assets/counter-15a40a05.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-6014897a.js b/web/settings/assets/counter-16da78bb.js similarity index 59% rename from web/settings/assets/counter-6014897a.js rename to web/settings/assets/counter-16da78bb.js index caa4fbef54..0ae8e11d1f 100644 --- a/web/settings/assets/counter-6014897a.js +++ b/web/settings/assets/counter-16da78bb.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-5d83a25e.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; +import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-1c49d5b6.js b/web/settings/assets/counter-1ada1a81.js similarity index 62% rename from web/settings/assets/counter-1c49d5b6.js rename to web/settings/assets/counter-1ada1a81.js index 085c9fa790..22fe15faff 100644 --- a/web/settings/assets/counter-1c49d5b6.js +++ b/web/settings/assets/counter-1ada1a81.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-88982b01.js b/web/settings/assets/counter-241c338f.js similarity index 63% rename from web/settings/assets/counter-88982b01.js rename to web/settings/assets/counter-241c338f.js index 6db5bcc906..f3223a296e 100644 --- a/web/settings/assets/counter-88982b01.js +++ b/web/settings/assets/counter-241c338f.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-46e2c43c.js b/web/settings/assets/counter-3b3df318.js similarity index 53% rename from web/settings/assets/counter-46e2c43c.js rename to web/settings/assets/counter-3b3df318.js index fa57d2cbc6..ceb5667e24 100644 --- a/web/settings/assets/counter-46e2c43c.js +++ b/web/settings/assets/counter-3b3df318.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-5d83a25e.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; +import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-b0118850.js b/web/settings/assets/counter-43bb176d.js similarity index 81% rename from web/settings/assets/counter-b0118850.js rename to web/settings/assets/counter-43bb176d.js index 8e21847b0f..4ff0f052a8 100644 --- a/web/settings/assets/counter-b0118850.js +++ b/web/settings/assets/counter-43bb176d.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-2841a6f4.js b/web/settings/assets/counter-51e1f0a5.js similarity index 66% rename from web/settings/assets/counter-2841a6f4.js rename to web/settings/assets/counter-51e1f0a5.js index 87828e171d..f19996869a 100644 --- a/web/settings/assets/counter-2841a6f4.js +++ b/web/settings/assets/counter-51e1f0a5.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-26162baf.js b/web/settings/assets/counter-593a07d0.js similarity index 73% rename from web/settings/assets/counter-26162baf.js rename to web/settings/assets/counter-593a07d0.js index f8ba8c3064..a1882379d5 100644 --- a/web/settings/assets/counter-26162baf.js +++ b/web/settings/assets/counter-593a07d0.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-9d8705db.js b/web/settings/assets/counter-5b6331d0.js similarity index 58% rename from web/settings/assets/counter-9d8705db.js rename to web/settings/assets/counter-5b6331d0.js index e3f3c36e9b..ea897ef222 100644 --- a/web/settings/assets/counter-9d8705db.js +++ b/web/settings/assets/counter-5b6331d0.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-5d83a25e.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; +import{C as t}from"./HardwareInstallation-6515151f.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-a45df58a.js b/web/settings/assets/counter-6b70c1c4.js similarity index 65% rename from web/settings/assets/counter-a45df58a.js rename to web/settings/assets/counter-6b70c1c4.js index 22f4a6c7ae..aebf44f43a 100644 --- a/web/settings/assets/counter-a45df58a.js +++ b/web/settings/assets/counter-6b70c1c4.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-58cdd3f8.js b/web/settings/assets/counter-6cd21185.js similarity index 72% rename from web/settings/assets/counter-58cdd3f8.js rename to web/settings/assets/counter-6cd21185.js index 09d9406bc3..100f6bab0f 100644 --- a/web/settings/assets/counter-58cdd3f8.js +++ b/web/settings/assets/counter-6cd21185.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-bf7b26c1.js b/web/settings/assets/counter-701a2c72.js similarity index 58% rename from web/settings/assets/counter-bf7b26c1.js rename to web/settings/assets/counter-701a2c72.js index 8d34fbb6a3..75bce141ee 100644 --- a/web/settings/assets/counter-bf7b26c1.js +++ b/web/settings/assets/counter-701a2c72.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-5d83a25e.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; +import{C as n}from"./HardwareInstallation-6515151f.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-131c9643.js b/web/settings/assets/counter-778d0562.js similarity index 92% rename from web/settings/assets/counter-131c9643.js rename to web/settings/assets/counter-778d0562.js index 629303ae21..1036551cd9 100644 --- a/web/settings/assets/counter-131c9643.js +++ b/web/settings/assets/counter-778d0562.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-0f90fbb4.js b/web/settings/assets/counter-7a682293.js similarity index 71% rename from web/settings/assets/counter-0f90fbb4.js rename to web/settings/assets/counter-7a682293.js index 49d2cfbece..6213a0884c 100644 --- a/web/settings/assets/counter-0f90fbb4.js +++ b/web/settings/assets/counter-7a682293.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-c9612c06.js b/web/settings/assets/counter-87234fb2.js similarity index 78% rename from web/settings/assets/counter-c9612c06.js rename to web/settings/assets/counter-87234fb2.js index 5e7c2acb3d..d288662c44 100644 --- a/web/settings/assets/counter-c9612c06.js +++ b/web/settings/assets/counter-87234fb2.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-84f2b940.js b/web/settings/assets/counter-8a0376f6.js similarity index 63% rename from web/settings/assets/counter-84f2b940.js rename to web/settings/assets/counter-8a0376f6.js index d2fd1a97be..39da343d86 100644 --- a/web/settings/assets/counter-84f2b940.js +++ b/web/settings/assets/counter-8a0376f6.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-cbef25b6.js b/web/settings/assets/counter-925dec2d.js similarity index 78% rename from web/settings/assets/counter-cbef25b6.js rename to web/settings/assets/counter-925dec2d.js index 874143c562..a972c20059 100644 --- a/web/settings/assets/counter-cbef25b6.js +++ b/web/settings/assets/counter-925dec2d.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-02b4fe5b.js b/web/settings/assets/counter-942689fa.js similarity index 93% rename from web/settings/assets/counter-02b4fe5b.js rename to web/settings/assets/counter-942689fa.js index 9a878410ee..95ae7f62c2 100644 --- a/web/settings/assets/counter-02b4fe5b.js +++ b/web/settings/assets/counter-942689fa.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-63297872.js b/web/settings/assets/counter-95df2c21.js similarity index 75% rename from web/settings/assets/counter-63297872.js rename to web/settings/assets/counter-95df2c21.js index 4bde35895b..6288b9b776 100644 --- a/web/settings/assets/counter-63297872.js +++ b/web/settings/assets/counter-95df2c21.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-9fcffe23.js b/web/settings/assets/counter-98126cfc.js similarity index 63% rename from web/settings/assets/counter-9fcffe23.js rename to web/settings/assets/counter-98126cfc.js index b8d368154b..d3c0c54cc6 100644 --- a/web/settings/assets/counter-9fcffe23.js +++ b/web/settings/assets/counter-98126cfc.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-4363f779.js b/web/settings/assets/counter-9ab1cf22.js similarity index 68% rename from web/settings/assets/counter-4363f779.js rename to web/settings/assets/counter-9ab1cf22.js index 88a736aef4..7c158c8c51 100644 --- a/web/settings/assets/counter-4363f779.js +++ b/web/settings/assets/counter-9ab1cf22.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-0a8d8873.js b/web/settings/assets/counter-a327434b.js similarity index 76% rename from web/settings/assets/counter-0a8d8873.js rename to web/settings/assets/counter-a327434b.js index 78c9889f79..6dd1528db0 100644 --- a/web/settings/assets/counter-0a8d8873.js +++ b/web/settings/assets/counter-a327434b.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-5d83a25e.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; +import{C as n}from"./HardwareInstallation-6515151f.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-d2e4dcd3.js b/web/settings/assets/counter-a35b5fec.js similarity index 77% rename from web/settings/assets/counter-d2e4dcd3.js rename to web/settings/assets/counter-a35b5fec.js index 650c47db24..48dc21cbfa 100644 --- a/web/settings/assets/counter-d2e4dcd3.js +++ b/web/settings/assets/counter-a35b5fec.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-a4db7e1c.js b/web/settings/assets/counter-a762a464.js similarity index 63% rename from web/settings/assets/counter-a4db7e1c.js rename to web/settings/assets/counter-a762a464.js index c19b70e897..e6ec182268 100644 --- a/web/settings/assets/counter-a4db7e1c.js +++ b/web/settings/assets/counter-a762a464.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-fa94f200.js b/web/settings/assets/counter-ad41b953.js similarity index 63% rename from web/settings/assets/counter-fa94f200.js rename to web/settings/assets/counter-ad41b953.js index 733e21ba02..ba084760e7 100644 --- a/web/settings/assets/counter-fa94f200.js +++ b/web/settings/assets/counter-ad41b953.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-f9ff4c43.js b/web/settings/assets/counter-c0da35a2.js similarity index 68% rename from web/settings/assets/counter-f9ff4c43.js rename to web/settings/assets/counter-c0da35a2.js index 188a684ae8..424ee714b4 100644 --- a/web/settings/assets/counter-f9ff4c43.js +++ b/web/settings/assets/counter-c0da35a2.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-90cbf7c3.js b/web/settings/assets/counter-c26c7ca0.js similarity index 65% rename from web/settings/assets/counter-90cbf7c3.js rename to web/settings/assets/counter-c26c7ca0.js index 90f3bb9f96..61a7a6959d 100644 --- a/web/settings/assets/counter-90cbf7c3.js +++ b/web/settings/assets/counter-c26c7ca0.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-fe004f9c.js b/web/settings/assets/counter-d606c310.js similarity index 54% rename from web/settings/assets/counter-fe004f9c.js rename to web/settings/assets/counter-d606c310.js index dbfa5f82ad..0775866fca 100644 --- a/web/settings/assets/counter-fe004f9c.js +++ b/web/settings/assets/counter-d606c310.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-5d83a25e.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; +import{C as t}from"./HardwareInstallation-6515151f.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-aa4c34e5.js b/web/settings/assets/counter-da1dd0be.js similarity index 66% rename from web/settings/assets/counter-aa4c34e5.js rename to web/settings/assets/counter-da1dd0be.js index 48888cf6d8..6e82f3e13f 100644 --- a/web/settings/assets/counter-aa4c34e5.js +++ b/web/settings/assets/counter-da1dd0be.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-e40d6637.js b/web/settings/assets/counter-f01de2ea.js similarity index 55% rename from web/settings/assets/counter-e40d6637.js rename to web/settings/assets/counter-f01de2ea.js index 6db278ab2f..5c96d9a963 100644 --- a/web/settings/assets/counter-e40d6637.js +++ b/web/settings/assets/counter-f01de2ea.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-5d83a25e.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; +import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-ea3377d7.js b/web/settings/assets/counter-f8177ec2.js similarity index 93% rename from web/settings/assets/counter-ea3377d7.js rename to web/settings/assets/counter-f8177ec2.js index 0ba66647e7..a24b00abfb 100644 --- a/web/settings/assets/counter-ea3377d7.js +++ b/web/settings/assets/counter-f8177ec2.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter_consumption-91fffa45.js b/web/settings/assets/counter_consumption-452fb197.js similarity index 71% rename from web/settings/assets/counter_consumption-91fffa45.js rename to web/settings/assets/counter_consumption-452fb197.js index af7af154dd..1dc0d32981 100644 --- a/web/settings/assets/counter_consumption-91fffa45.js +++ b/web/settings/assets/counter_consumption-452fb197.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_sm-644407b2.js b/web/settings/assets/counter_sm-5e4b1fe5.js similarity index 87% rename from web/settings/assets/counter_sm-644407b2.js rename to web/settings/assets/counter_sm-5e4b1fe5.js index d651747457..6836f49b66 100644 --- a/web/settings/assets/counter_sm-644407b2.js +++ b/web/settings/assets/counter_sm-5e4b1fe5.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-de77a290.js b/web/settings/assets/device-07e03083.js similarity index 71% rename from web/settings/assets/device-de77a290.js rename to web/settings/assets/device-07e03083.js index 2add804fd2..21c9e0e7ae 100644 --- a/web/settings/assets/device-de77a290.js +++ b/web/settings/assets/device-07e03083.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-da4c8a0c.js b/web/settings/assets/device-0a55e2f7.js similarity index 62% rename from web/settings/assets/device-da4c8a0c.js rename to web/settings/assets/device-0a55e2f7.js index 97ea6830cd..362321a104 100644 --- a/web/settings/assets/device-da4c8a0c.js +++ b/web/settings/assets/device-0a55e2f7.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-95a4fc1b.js b/web/settings/assets/device-0bc39379.js similarity index 69% rename from web/settings/assets/device-95a4fc1b.js rename to web/settings/assets/device-0bc39379.js index dd2ba7a469..371f7b8561 100644 --- a/web/settings/assets/device-95a4fc1b.js +++ b/web/settings/assets/device-0bc39379.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-311f3163.js b/web/settings/assets/device-0c3fc809.js similarity index 71% rename from web/settings/assets/device-311f3163.js rename to web/settings/assets/device-0c3fc809.js index 2da41e4273..77f3999be4 100644 --- a/web/settings/assets/device-311f3163.js +++ b/web/settings/assets/device-0c3fc809.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3be21bca.js b/web/settings/assets/device-0f31e958.js similarity index 69% rename from web/settings/assets/device-3be21bca.js rename to web/settings/assets/device-0f31e958.js index 5cf4acfe4f..8be31fedd4 100644 --- a/web/settings/assets/device-3be21bca.js +++ b/web/settings/assets/device-0f31e958.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-36206448.js b/web/settings/assets/device-1439cbf1.js similarity index 77% rename from web/settings/assets/device-36206448.js rename to web/settings/assets/device-1439cbf1.js index 928392a4c1..5c1de417c9 100644 --- a/web/settings/assets/device-36206448.js +++ b/web/settings/assets/device-1439cbf1.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-a9dd072b.js b/web/settings/assets/device-2d12e320.js similarity index 77% rename from web/settings/assets/device-a9dd072b.js rename to web/settings/assets/device-2d12e320.js index e7ba216100..eda4877b32 100644 --- a/web/settings/assets/device-a9dd072b.js +++ b/web/settings/assets/device-2d12e320.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-0418b69c.js b/web/settings/assets/device-3446cb73.js similarity index 76% rename from web/settings/assets/device-0418b69c.js rename to web/settings/assets/device-3446cb73.js index a1e91ac84d..13da759e8d 100644 --- a/web/settings/assets/device-0418b69c.js +++ b/web/settings/assets/device-3446cb73.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-87d9128d.js b/web/settings/assets/device-37b882f6.js similarity index 63% rename from web/settings/assets/device-87d9128d.js rename to web/settings/assets/device-37b882f6.js index 31366b95e6..5700f8cebc 100644 --- a/web/settings/assets/device-87d9128d.js +++ b/web/settings/assets/device-37b882f6.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-7d51e530.js b/web/settings/assets/device-38d5b6fd.js similarity index 76% rename from web/settings/assets/device-7d51e530.js rename to web/settings/assets/device-38d5b6fd.js index b4e7876fce..d82cdb321e 100644 --- a/web/settings/assets/device-7d51e530.js +++ b/web/settings/assets/device-38d5b6fd.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-9e672cae.js b/web/settings/assets/device-3caedbbd.js similarity index 74% rename from web/settings/assets/device-9e672cae.js rename to web/settings/assets/device-3caedbbd.js index 7d0d630588..7e159a1159 100644 --- a/web/settings/assets/device-9e672cae.js +++ b/web/settings/assets/device-3caedbbd.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-ba69bd6e.js b/web/settings/assets/device-3e65a99e.js similarity index 66% rename from web/settings/assets/device-ba69bd6e.js rename to web/settings/assets/device-3e65a99e.js index 29478a5d9d..ca5fa0cf65 100644 --- a/web/settings/assets/device-ba69bd6e.js +++ b/web/settings/assets/device-3e65a99e.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-c73cffb1.js b/web/settings/assets/device-40e95f0e.js similarity index 89% rename from web/settings/assets/device-c73cffb1.js rename to web/settings/assets/device-40e95f0e.js index 6c338a88fe..d9c703848a 100644 --- a/web/settings/assets/device-c73cffb1.js +++ b/web/settings/assets/device-40e95f0e.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-5d83a25e.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; +import{D as w}from"./HardwareInstallation-6515151f.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-a2b8c57b.js b/web/settings/assets/device-44136cf2.js similarity index 74% rename from web/settings/assets/device-a2b8c57b.js rename to web/settings/assets/device-44136cf2.js index 8113d0f4ca..aa1a88a172 100644 --- a/web/settings/assets/device-a2b8c57b.js +++ b/web/settings/assets/device-44136cf2.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-8c096b1c.js b/web/settings/assets/device-46241bf0.js similarity index 74% rename from web/settings/assets/device-8c096b1c.js rename to web/settings/assets/device-46241bf0.js index 71621c2682..8e4b1ccce2 100644 --- a/web/settings/assets/device-8c096b1c.js +++ b/web/settings/assets/device-46241bf0.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-4d1a23d8.js b/web/settings/assets/device-4749b385.js similarity index 77% rename from web/settings/assets/device-4d1a23d8.js rename to web/settings/assets/device-4749b385.js index 6202896be0..e4997c19ef 100644 --- a/web/settings/assets/device-4d1a23d8.js +++ b/web/settings/assets/device-4749b385.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-f88bddc1.js b/web/settings/assets/device-48658977.js similarity index 69% rename from web/settings/assets/device-f88bddc1.js rename to web/settings/assets/device-48658977.js index 19fe5197a3..b7380e2cb5 100644 --- a/web/settings/assets/device-f88bddc1.js +++ b/web/settings/assets/device-48658977.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-614a3bbf.js b/web/settings/assets/device-48744246.js similarity index 73% rename from web/settings/assets/device-614a3bbf.js rename to web/settings/assets/device-48744246.js index 05ede18ab8..cad5b1e814 100644 --- a/web/settings/assets/device-614a3bbf.js +++ b/web/settings/assets/device-48744246.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-b830b43e.js b/web/settings/assets/device-4faa8341.js similarity index 83% rename from web/settings/assets/device-b830b43e.js rename to web/settings/assets/device-4faa8341.js index 75babc8fd4..02e4ecfc1f 100644 --- a/web/settings/assets/device-b830b43e.js +++ b/web/settings/assets/device-4faa8341.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-edff48ee.js b/web/settings/assets/device-51fb9fdb.js similarity index 83% rename from web/settings/assets/device-edff48ee.js rename to web/settings/assets/device-51fb9fdb.js index b1ff89925c..ecf6144a71 100644 --- a/web/settings/assets/device-edff48ee.js +++ b/web/settings/assets/device-51fb9fdb.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-add01a51.js b/web/settings/assets/device-5457868d.js similarity index 73% rename from web/settings/assets/device-add01a51.js rename to web/settings/assets/device-5457868d.js index 7113fb66b1..030657e5e0 100644 --- a/web/settings/assets/device-add01a51.js +++ b/web/settings/assets/device-5457868d.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; +import{D as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-bc822556.js b/web/settings/assets/device-5e2f3c97.js similarity index 76% rename from web/settings/assets/device-bc822556.js rename to web/settings/assets/device-5e2f3c97.js index 9800eb03df..d55dcc53cd 100644 --- a/web/settings/assets/device-bc822556.js +++ b/web/settings/assets/device-5e2f3c97.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; +import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-abe914f8.js b/web/settings/assets/device-6065b001.js similarity index 75% rename from web/settings/assets/device-abe914f8.js rename to web/settings/assets/device-6065b001.js index 0e1217460f..46ad3b5718 100644 --- a/web/settings/assets/device-abe914f8.js +++ b/web/settings/assets/device-6065b001.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-897ed9c7.js b/web/settings/assets/device-630d88cd.js similarity index 74% rename from web/settings/assets/device-897ed9c7.js rename to web/settings/assets/device-630d88cd.js index 8465053497..b52c4b67f9 100644 --- a/web/settings/assets/device-897ed9c7.js +++ b/web/settings/assets/device-630d88cd.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-a653fa8f.js b/web/settings/assets/device-63843d32.js similarity index 74% rename from web/settings/assets/device-a653fa8f.js rename to web/settings/assets/device-63843d32.js index 06355273d7..dc7828694c 100644 --- a/web/settings/assets/device-a653fa8f.js +++ b/web/settings/assets/device-63843d32.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-59d8f491.js b/web/settings/assets/device-66218d05.js similarity index 64% rename from web/settings/assets/device-59d8f491.js rename to web/settings/assets/device-66218d05.js index 94fc2f9d36..24d17cdbc0 100644 --- a/web/settings/assets/device-59d8f491.js +++ b/web/settings/assets/device-66218d05.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-ca985fe7.js b/web/settings/assets/device-6aa86d28.js similarity index 69% rename from web/settings/assets/device-ca985fe7.js rename to web/settings/assets/device-6aa86d28.js index 81136200ff..5bcd55abb3 100644 --- a/web/settings/assets/device-ca985fe7.js +++ b/web/settings/assets/device-6aa86d28.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-36d1c02e.js b/web/settings/assets/device-6c438877.js similarity index 76% rename from web/settings/assets/device-36d1c02e.js rename to web/settings/assets/device-6c438877.js index e7d88a3353..82233ae4e5 100644 --- a/web/settings/assets/device-36d1c02e.js +++ b/web/settings/assets/device-6c438877.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-c03a1f17.js b/web/settings/assets/device-6dbd2fd0.js similarity index 69% rename from web/settings/assets/device-c03a1f17.js rename to web/settings/assets/device-6dbd2fd0.js index fa35b2a66c..c70fcc7be2 100644 --- a/web/settings/assets/device-c03a1f17.js +++ b/web/settings/assets/device-6dbd2fd0.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-b114c41e.js b/web/settings/assets/device-6e2ecab6.js similarity index 69% rename from web/settings/assets/device-b114c41e.js rename to web/settings/assets/device-6e2ecab6.js index c040aa9916..5f2bfacbf2 100644 --- a/web/settings/assets/device-b114c41e.js +++ b/web/settings/assets/device-6e2ecab6.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-4753a209.js b/web/settings/assets/device-6e2f0696.js similarity index 78% rename from web/settings/assets/device-4753a209.js rename to web/settings/assets/device-6e2f0696.js index e8f7ebfe5d..2d7c51f10b 100644 --- a/web/settings/assets/device-4753a209.js +++ b/web/settings/assets/device-6e2f0696.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-c280b8ae.js b/web/settings/assets/device-70a2865d.js similarity index 78% rename from web/settings/assets/device-c280b8ae.js rename to web/settings/assets/device-70a2865d.js index 611de7e70d..fb5a0358ff 100644 --- a/web/settings/assets/device-c280b8ae.js +++ b/web/settings/assets/device-70a2865d.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-6e97a762.js b/web/settings/assets/device-723e5136.js similarity index 86% rename from web/settings/assets/device-6e97a762.js rename to web/settings/assets/device-723e5136.js index 1934960dcd..272c2d4140 100644 --- a/web/settings/assets/device-6e97a762.js +++ b/web/settings/assets/device-723e5136.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-ef5e14d8.js b/web/settings/assets/device-7352834a.js similarity index 73% rename from web/settings/assets/device-ef5e14d8.js rename to web/settings/assets/device-7352834a.js index c685884589..b7e4b46d22 100644 --- a/web/settings/assets/device-ef5e14d8.js +++ b/web/settings/assets/device-7352834a.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-5ed5b74b.js b/web/settings/assets/device-75d75106.js similarity index 75% rename from web/settings/assets/device-5ed5b74b.js rename to web/settings/assets/device-75d75106.js index 878f82b809..50f10f7130 100644 --- a/web/settings/assets/device-5ed5b74b.js +++ b/web/settings/assets/device-75d75106.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-d9cb59b2.js b/web/settings/assets/device-77829da3.js similarity index 63% rename from web/settings/assets/device-d9cb59b2.js rename to web/settings/assets/device-77829da3.js index 3699919d0b..ef7fb7e9e0 100644 --- a/web/settings/assets/device-d9cb59b2.js +++ b/web/settings/assets/device-77829da3.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/device-08617811.js b/web/settings/assets/device-78619adc.js similarity index 76% rename from web/settings/assets/device-08617811.js rename to web/settings/assets/device-78619adc.js index c76eb815a2..80adbaf062 100644 --- a/web/settings/assets/device-08617811.js +++ b/web/settings/assets/device-78619adc.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-9957bca2.js b/web/settings/assets/device-789bc206.js similarity index 73% rename from web/settings/assets/device-9957bca2.js rename to web/settings/assets/device-789bc206.js index 59a4c54a23..94fb706172 100644 --- a/web/settings/assets/device-9957bca2.js +++ b/web/settings/assets/device-789bc206.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-35fe94a8.js b/web/settings/assets/device-793ea822.js similarity index 69% rename from web/settings/assets/device-35fe94a8.js rename to web/settings/assets/device-793ea822.js index d5a06a1533..f038a61bc8 100644 --- a/web/settings/assets/device-35fe94a8.js +++ b/web/settings/assets/device-793ea822.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-28efaad6.js b/web/settings/assets/device-7ba6df48.js similarity index 73% rename from web/settings/assets/device-28efaad6.js rename to web/settings/assets/device-7ba6df48.js index d1d26d8ee6..ab41523b7e 100644 --- a/web/settings/assets/device-28efaad6.js +++ b/web/settings/assets/device-7ba6df48.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-b978ff0c.js b/web/settings/assets/device-7dbbe461.js similarity index 78% rename from web/settings/assets/device-b978ff0c.js rename to web/settings/assets/device-7dbbe461.js index e9df4785b3..54e62fdfc6 100644 --- a/web/settings/assets/device-b978ff0c.js +++ b/web/settings/assets/device-7dbbe461.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-c57e2427.js b/web/settings/assets/device-838dac1d.js similarity index 87% rename from web/settings/assets/device-c57e2427.js rename to web/settings/assets/device-838dac1d.js index 1a85fb8fd1..0f3aac2415 100644 --- a/web/settings/assets/device-c57e2427.js +++ b/web/settings/assets/device-838dac1d.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-aa041e22.js b/web/settings/assets/device-85ba0d9e.js similarity index 73% rename from web/settings/assets/device-aa041e22.js rename to web/settings/assets/device-85ba0d9e.js index 0fd9dfc221..0316bfb57e 100644 --- a/web/settings/assets/device-aa041e22.js +++ b/web/settings/assets/device-85ba0d9e.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-1c1308a7.js b/web/settings/assets/device-891343b7.js similarity index 62% rename from web/settings/assets/device-1c1308a7.js rename to web/settings/assets/device-891343b7.js index ff38d0c166..3f77b25266 100644 --- a/web/settings/assets/device-1c1308a7.js +++ b/web/settings/assets/device-891343b7.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-26cb01ff.js b/web/settings/assets/device-8a6b31ac.js similarity index 86% rename from web/settings/assets/device-26cb01ff.js rename to web/settings/assets/device-8a6b31ac.js index 51b59324c0..c3dd327c0c 100644 --- a/web/settings/assets/device-26cb01ff.js +++ b/web/settings/assets/device-8a6b31ac.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-5c1283a2.js b/web/settings/assets/device-8f44d501.js similarity index 69% rename from web/settings/assets/device-5c1283a2.js rename to web/settings/assets/device-8f44d501.js index b14024a937..aa542c1250 100644 --- a/web/settings/assets/device-5c1283a2.js +++ b/web/settings/assets/device-8f44d501.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-34a5fde6.js b/web/settings/assets/device-90a7548e.js similarity index 90% rename from web/settings/assets/device-34a5fde6.js rename to web/settings/assets/device-90a7548e.js index d3d5518f02..7612ed4650 100644 --- a/web/settings/assets/device-34a5fde6.js +++ b/web/settings/assets/device-90a7548e.js @@ -1 +1 @@ -import{D as b}from"./HardwareInstallation-5d83a25e.js";import{_ as v,u as i,l as s,m as g,G as t,E as a,B as r,x as f,A as w,z as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const S={name:"DeviceSungrow",mixins:[b]},_={class:"device-sungrow"};function N(n,e,D,V,H,h){const d=i("openwb-base-heading"),m=i("openwb-base-alert"),p=i("openwb-base-text-input"),l=i("openwb-base-number-input"),u=i("openwb-base-select-input");return s(),g("div",_,[t(d,null,{default:a(()=>e[5]||(e[5]=[r(" Einstellungen für Sungrow ",-1)])),_:1,__:[5]}),t(m,{subtype:"info"},{default:a(()=>e[6]||(e[6]=[r(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[6]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(u,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[7]||(e[7]=[r(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version===0?(s(),f(u,{key:0,title:"Firmware",options:[{value:"v1",text:"bis November 2024"},{value:"v2",text:"ab November 2024"}],"model-value":n.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.firmware"))},{help:a(()=>e[8]||(e[8]=[r(' Mit einem Firmwareupdate hat Sungrow ab November 2024 die Auslesung der Speicherleistung verändert. Sollte ab November 2024 selbst oder vom Installateur ein Firmwareupdate gemacht worden sein bitte "ab November 2024" als Firmware wählen. Ohne dieses Update ist "bis November 2024" die richtige Auswahl (Standard).',-1),w("br",null,null,-1),r(' Für Benutzer mit Installateur-Account: Dies entspricht einer Version des MDSP Moduls größer gleich "SAPPHIRE-H_03011.95.03" ',-1)])),_:1},8,["model-value"])):c("",!0)])}const P=v(S,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{P as default}; +import{D as b}from"./HardwareInstallation-6515151f.js";import{_ as v,u as i,l as s,m as g,G as t,E as a,B as r,x as f,A as w,z as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"DeviceSungrow",mixins:[b]},_={class:"device-sungrow"};function N(n,e,D,V,H,h){const d=i("openwb-base-heading"),m=i("openwb-base-alert"),p=i("openwb-base-text-input"),l=i("openwb-base-number-input"),u=i("openwb-base-select-input");return s(),g("div",_,[t(d,null,{default:a(()=>e[5]||(e[5]=[r(" Einstellungen für Sungrow ",-1)])),_:1,__:[5]}),t(m,{subtype:"info"},{default:a(()=>e[6]||(e[6]=[r(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[6]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(u,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[7]||(e[7]=[r(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version===0?(s(),f(u,{key:0,title:"Firmware",options:[{value:"v1",text:"bis November 2024"},{value:"v2",text:"ab November 2024"}],"model-value":n.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.firmware"))},{help:a(()=>e[8]||(e[8]=[r(' Mit einem Firmwareupdate hat Sungrow ab November 2024 die Auslesung der Speicherleistung verändert. Sollte ab November 2024 selbst oder vom Installateur ein Firmwareupdate gemacht worden sein bitte "ab November 2024" als Firmware wählen. Ohne dieses Update ist "bis November 2024" die richtige Auswahl (Standard).',-1),w("br",null,null,-1),r(' Für Benutzer mit Installateur-Account: Dies entspricht einer Version des MDSP Moduls größer gleich "SAPPHIRE-H_03011.95.03" ',-1)])),_:1},8,["model-value"])):c("",!0)])}const P=v(S,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-baaf54be.js b/web/settings/assets/device-952016bf.js similarity index 91% rename from web/settings/assets/device-baaf54be.js rename to web/settings/assets/device-952016bf.js index d57b4968ab..b53b8dfd51 100644 --- a/web/settings/assets/device-baaf54be.js +++ b/web/settings/assets/device-952016bf.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; +import{D as g}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-acd658a9.js b/web/settings/assets/device-9c1661fe.js similarity index 74% rename from web/settings/assets/device-acd658a9.js rename to web/settings/assets/device-9c1661fe.js index b76cf0054a..b19e6c4bbb 100644 --- a/web/settings/assets/device-acd658a9.js +++ b/web/settings/assets/device-9c1661fe.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-0067586f.js b/web/settings/assets/device-9c39a93c.js similarity index 69% rename from web/settings/assets/device-0067586f.js rename to web/settings/assets/device-9c39a93c.js index a4e6baf599..f394e6c768 100644 --- a/web/settings/assets/device-0067586f.js +++ b/web/settings/assets/device-9c39a93c.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-587feb6a.js b/web/settings/assets/device-a705c660.js similarity index 73% rename from web/settings/assets/device-587feb6a.js rename to web/settings/assets/device-a705c660.js index 20cf5f4222..23585686f4 100644 --- a/web/settings/assets/device-587feb6a.js +++ b/web/settings/assets/device-a705c660.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-3e5fa86e.js b/web/settings/assets/device-a8b3ffa0.js similarity index 63% rename from web/settings/assets/device-3e5fa86e.js rename to web/settings/assets/device-a8b3ffa0.js index bf8c15fa11..6c08ce2d44 100644 --- a/web/settings/assets/device-3e5fa86e.js +++ b/web/settings/assets/device-a8b3ffa0.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-dbf66cd3.js b/web/settings/assets/device-ad797bf7.js similarity index 69% rename from web/settings/assets/device-dbf66cd3.js rename to web/settings/assets/device-ad797bf7.js index 9a8dabcc5a..8171fa7b6a 100644 --- a/web/settings/assets/device-dbf66cd3.js +++ b/web/settings/assets/device-ad797bf7.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-f33854c7.js b/web/settings/assets/device-b028c583.js similarity index 71% rename from web/settings/assets/device-f33854c7.js rename to web/settings/assets/device-b028c583.js index 85d766598e..d2257e398c 100644 --- a/web/settings/assets/device-f33854c7.js +++ b/web/settings/assets/device-b028c583.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-b695068a.js b/web/settings/assets/device-b6b82861.js similarity index 77% rename from web/settings/assets/device-b695068a.js rename to web/settings/assets/device-b6b82861.js index 58e8d02053..baa52bad66 100644 --- a/web/settings/assets/device-b695068a.js +++ b/web/settings/assets/device-b6b82861.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-c9d7c99b.js b/web/settings/assets/device-b915ee50.js similarity index 80% rename from web/settings/assets/device-c9d7c99b.js rename to web/settings/assets/device-b915ee50.js index 18d8fced09..52552e16a3 100644 --- a/web/settings/assets/device-c9d7c99b.js +++ b/web/settings/assets/device-b915ee50.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-a68a7f61.js b/web/settings/assets/device-c057d288.js similarity index 69% rename from web/settings/assets/device-a68a7f61.js rename to web/settings/assets/device-c057d288.js index e5cce42397..b5efb179f8 100644 --- a/web/settings/assets/device-a68a7f61.js +++ b/web/settings/assets/device-c057d288.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-4561c08a.js b/web/settings/assets/device-c1e4152e.js similarity index 70% rename from web/settings/assets/device-4561c08a.js rename to web/settings/assets/device-c1e4152e.js index c5f6b1c8b8..c7e431a73c 100644 --- a/web/settings/assets/device-4561c08a.js +++ b/web/settings/assets/device-c1e4152e.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-953c515a.js b/web/settings/assets/device-c6a5b18f.js similarity index 70% rename from web/settings/assets/device-953c515a.js rename to web/settings/assets/device-c6a5b18f.js index a4018008e0..1d7c13a8fb 100644 --- a/web/settings/assets/device-953c515a.js +++ b/web/settings/assets/device-c6a5b18f.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-e89a1f36.js b/web/settings/assets/device-cad9fdab.js similarity index 73% rename from web/settings/assets/device-e89a1f36.js rename to web/settings/assets/device-cad9fdab.js index 4c12503d0f..09d1b6d804 100644 --- a/web/settings/assets/device-e89a1f36.js +++ b/web/settings/assets/device-cad9fdab.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; +import{D as s}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-7b75323a.js b/web/settings/assets/device-cbcf5efd.js similarity index 76% rename from web/settings/assets/device-7b75323a.js rename to web/settings/assets/device-cbcf5efd.js index 85886e4c24..460b6ba4e9 100644 --- a/web/settings/assets/device-7b75323a.js +++ b/web/settings/assets/device-cbcf5efd.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; +import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-669b1055.js b/web/settings/assets/device-d2e67bbb.js similarity index 63% rename from web/settings/assets/device-669b1055.js rename to web/settings/assets/device-d2e67bbb.js index 87e163a909..dd8f397885 100644 --- a/web/settings/assets/device-669b1055.js +++ b/web/settings/assets/device-d2e67bbb.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-459d681f.js b/web/settings/assets/device-d4bdb914.js similarity index 69% rename from web/settings/assets/device-459d681f.js rename to web/settings/assets/device-d4bdb914.js index 1b950a92c5..ca6f04d104 100644 --- a/web/settings/assets/device-459d681f.js +++ b/web/settings/assets/device-d4bdb914.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-5be5124f.js b/web/settings/assets/device-dae4911e.js similarity index 78% rename from web/settings/assets/device-5be5124f.js rename to web/settings/assets/device-dae4911e.js index 548b8b548a..709b7e54c3 100644 --- a/web/settings/assets/device-5be5124f.js +++ b/web/settings/assets/device-dae4911e.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; +import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-894e1e36.js b/web/settings/assets/device-e138ac10.js similarity index 69% rename from web/settings/assets/device-894e1e36.js rename to web/settings/assets/device-e138ac10.js index ec141f1987..369f93c334 100644 --- a/web/settings/assets/device-894e1e36.js +++ b/web/settings/assets/device-e138ac10.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-d3973c81.js b/web/settings/assets/device-e4446102.js similarity index 62% rename from web/settings/assets/device-d3973c81.js rename to web/settings/assets/device-e4446102.js index 3186f0fe42..08866fc705 100644 --- a/web/settings/assets/device-d3973c81.js +++ b/web/settings/assets/device-e4446102.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-c318fc1d.js b/web/settings/assets/device-e93f3043.js similarity index 63% rename from web/settings/assets/device-c318fc1d.js rename to web/settings/assets/device-e93f3043.js index 00434d31f1..cf4ed03155 100644 --- a/web/settings/assets/device-c318fc1d.js +++ b/web/settings/assets/device-e93f3043.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; +import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-17d5e025.js b/web/settings/assets/device-ede5926f.js similarity index 80% rename from web/settings/assets/device-17d5e025.js rename to web/settings/assets/device-ede5926f.js index 01a1184a43..c5275f81d1 100644 --- a/web/settings/assets/device-17d5e025.js +++ b/web/settings/assets/device-ede5926f.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; +import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-7f3ca9c5.js b/web/settings/assets/device-f14cbc13.js similarity index 69% rename from web/settings/assets/device-7f3ca9c5.js rename to web/settings/assets/device-f14cbc13.js index a2518ed185..24bdb0918b 100644 --- a/web/settings/assets/device-7f3ca9c5.js +++ b/web/settings/assets/device-f14cbc13.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; +import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-bef28d96.js b/web/settings/assets/device-f1d14f4e.js similarity index 90% rename from web/settings/assets/device-bef28d96.js rename to web/settings/assets/device-f1d14f4e.js index 542393fe95..64c62f9e00 100644 --- a/web/settings/assets/device-bef28d96.js +++ b/web/settings/assets/device-f1d14f4e.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-5d83a25e.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; +import{D as f}from"./HardwareInstallation-6515151f.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-476e3af1.js b/web/settings/assets/device-f626b3aa.js similarity index 62% rename from web/settings/assets/device-476e3af1.js rename to web/settings/assets/device-f626b3aa.js index 0f99219c97..17805c3177 100644 --- a/web/settings/assets/device-476e3af1.js +++ b/web/settings/assets/device-f626b3aa.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-47dd1fe2.js b/web/settings/assets/device-faa95e47.js similarity index 74% rename from web/settings/assets/device-47dd1fe2.js rename to web/settings/assets/device-faa95e47.js index ecb9a2622a..a3c93aa804 100644 --- a/web/settings/assets/device-47dd1fe2.js +++ b/web/settings/assets/device-faa95e47.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-bebe8eea.js b/web/settings/assets/device-fcb0b9c0.js similarity index 62% rename from web/settings/assets/device-bebe8eea.js rename to web/settings/assets/device-fcb0b9c0.js index 994108aa3b..f8d4f9e2fd 100644 --- a/web/settings/assets/device-bebe8eea.js +++ b/web/settings/assets/device-fcb0b9c0.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-bac53175.js b/web/settings/assets/device-fef9b6f6.js similarity index 74% rename from web/settings/assets/device-bac53175.js rename to web/settings/assets/device-fef9b6f6.js index ca216190f1..011c0c5e40 100644 --- a/web/settings/assets/device-bac53175.js +++ b/web/settings/assets/device-fef9b6f6.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/displayTheme-635b4268.js b/web/settings/assets/displayTheme-178db1df.js similarity index 81% rename from web/settings/assets/displayTheme-635b4268.js rename to web/settings/assets/displayTheme-178db1df.js index 8b087fc1ea..f2d7eaa6df 100644 --- a/web/settings/assets/displayTheme-635b4268.js +++ b/web/settings/assets/displayTheme-178db1df.js @@ -1 +1 @@ -import{D as d}from"./OptionalComponents-f21e7cbe.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; +import{D as d}from"./OptionalComponents-eab310e0.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/displayTheme-dcfb0591.js b/web/settings/assets/displayTheme-c2dceb48.js similarity index 95% rename from web/settings/assets/displayTheme-dcfb0591.js rename to web/settings/assets/displayTheme-c2dceb48.js index b38d330b0f..fa42265503 100644 --- a/web/settings/assets/displayTheme-dcfb0591.js +++ b/web/settings/assets/displayTheme-c2dceb48.js @@ -1 +1 @@ -import{D as v}from"./OptionalComponents-f21e7cbe.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy-flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge-points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; +import{D as v}from"./OptionalComponents-eab310e0.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy-flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge-points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/electricity_tariff-b686879b.js b/web/settings/assets/electricity_tariff-030b73c0.js similarity index 74% rename from web/settings/assets/electricity_tariff-b686879b.js rename to web/settings/assets/electricity_tariff-030b73c0.js index c8e4f727e9..2899a71e24 100644 --- a/web/settings/assets/electricity_tariff-b686879b.js +++ b/web/settings/assets/electricity_tariff-030b73c0.js @@ -1 +1 @@ -import{E as s}from"./GeneralChargeConfig-9090b268.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; +import{E as s}from"./GeneralChargeConfig-f5f65896.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-6e1968b0.js b/web/settings/assets/electricity_tariff-0d25f98f.js similarity index 74% rename from web/settings/assets/electricity_tariff-6e1968b0.js rename to web/settings/assets/electricity_tariff-0d25f98f.js index 3c84f60049..cbe690e659 100644 --- a/web/settings/assets/electricity_tariff-6e1968b0.js +++ b/web/settings/assets/electricity_tariff-0d25f98f.js @@ -1 +1 @@ -import{E as l}from"./GeneralChargeConfig-9090b268.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; +import{E as l}from"./GeneralChargeConfig-f5f65896.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-a7206626.js b/web/settings/assets/electricity_tariff-2304915c.js similarity index 68% rename from web/settings/assets/electricity_tariff-a7206626.js rename to web/settings/assets/electricity_tariff-2304915c.js index 64fae89bd6..45fc3656ef 100644 --- a/web/settings/assets/electricity_tariff-a7206626.js +++ b/web/settings/assets/electricity_tariff-2304915c.js @@ -1 +1 @@ -import{E as o}from"./GeneralChargeConfig-9090b268.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; +import{E as o}from"./GeneralChargeConfig-f5f65896.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-3bf8dd25.js b/web/settings/assets/electricity_tariff-b497922e.js similarity index 84% rename from web/settings/assets/electricity_tariff-3bf8dd25.js rename to web/settings/assets/electricity_tariff-b497922e.js index 3faa14f2c7..c22d1f4ea9 100644 --- a/web/settings/assets/electricity_tariff-3bf8dd25.js +++ b/web/settings/assets/electricity_tariff-b497922e.js @@ -1 +1 @@ -import{E as p}from"./GeneralChargeConfig-9090b268.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; +import{E as p}from"./GeneralChargeConfig-f5f65896.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-bb2e8d54.js b/web/settings/assets/electricity_tariff-bde56165.js similarity index 72% rename from web/settings/assets/electricity_tariff-bb2e8d54.js rename to web/settings/assets/electricity_tariff-bde56165.js index 4fc910af21..887ace4cc3 100644 --- a/web/settings/assets/electricity_tariff-bb2e8d54.js +++ b/web/settings/assets/electricity_tariff-bde56165.js @@ -1 +1 @@ -import{E as n}from"./GeneralChargeConfig-9090b268.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; +import{E as n}from"./GeneralChargeConfig-f5f65896.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-fbcf702e.js b/web/settings/assets/electricity_tariff-d0edfdb4.js similarity index 85% rename from web/settings/assets/electricity_tariff-fbcf702e.js rename to web/settings/assets/electricity_tariff-d0edfdb4.js index 9c37f6bc30..10c444bc68 100644 --- a/web/settings/assets/electricity_tariff-fbcf702e.js +++ b/web/settings/assets/electricity_tariff-d0edfdb4.js @@ -1 +1 @@ -import{E as c}from"./GeneralChargeConfig-9090b268.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; +import{E as c}from"./GeneralChargeConfig-f5f65896.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-40bd5da8.js b/web/settings/assets/electricity_tariff-ed71dfac.js similarity index 90% rename from web/settings/assets/electricity_tariff-40bd5da8.js rename to web/settings/assets/electricity_tariff-ed71dfac.js index ae34b1f5bd..83927b805f 100644 --- a/web/settings/assets/electricity_tariff-40bd5da8.js +++ b/web/settings/assets/electricity_tariff-ed71dfac.js @@ -1 +1 @@ -import{E as m}from"./GeneralChargeConfig-9090b268.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-cc4615be.js";import"./index-5b5e1b75.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; +import{E as m}from"./GeneralChargeConfig-f5f65896.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-f8256f22.js b/web/settings/assets/electricity_tariff-f3b38e11.js similarity index 80% rename from web/settings/assets/electricity_tariff-f8256f22.js rename to web/settings/assets/electricity_tariff-f3b38e11.js index 79bff7d747..02b4e91dee 100644 --- a/web/settings/assets/electricity_tariff-f8256f22.js +++ b/web/settings/assets/electricity_tariff-f3b38e11.js @@ -1 +1 @@ -import{E as I}from"./GeneralChargeConfig-9090b268.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-cc4615be.js";import{l as T,d as F,aa as O,F as U}from"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,b,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],b=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=b;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const b=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(b,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,b,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,v)=>(o(),w(h,{key:v},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(v)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[v],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(v),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,b,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),v=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(v,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,b,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),v=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(v,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{be as default}; +import{E as I}from"./GeneralChargeConfig-f5f65896.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-25d394b4.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/external_inverter-6433fd21.js b/web/settings/assets/external_inverter-8207d928.js similarity index 82% rename from web/settings/assets/external_inverter-6433fd21.js rename to web/settings/assets/external_inverter-8207d928.js index 16a82f3978..0b9eaa29a4 100644 --- a/web/settings/assets/external_inverter-6433fd21.js +++ b/web/settings/assets/external_inverter-8207d928.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/index-5b5e1b75.js b/web/settings/assets/index-e4c17b07.js similarity index 89% rename from web/settings/assets/index-5b5e1b75.js rename to web/settings/assets/index-e4c17b07.js index 9b445a7b2b..cb8570241d 100644 --- a/web/settings/assets/index-5b5e1b75.js +++ b/web/settings/assets/index-e4c17b07.js @@ -1 +1 @@ -import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as x,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as q,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-cc4615be.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as qe,D as xe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import{p as He,a as Ue}from"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./vendor-jquery-13cad4c1.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,q(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)]),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=x((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},qt={class:"form-group mb-0"},xt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",qt,[a("div",xt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=x((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:x(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=x(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=x(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,q(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},qn={class:"input-group-prepend"},xn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",qn,[a("div",xn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,q(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,q(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,q(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,qe,xe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const xs=y(vs,[["render",qs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:xs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,q(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},qo={key:1},xo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",qo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",xo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-67426cfa.js"),["assets/Status-67426cfa.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-2bc02c38.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-d0f0c940.js"),["assets/ChargeLog-d0f0c940.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-f2027a6a.js"),["assets/Chart-f2027a6a.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-2bc02c38.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-bd327700.js").then(e=>e.a),["assets/GeneralConfig-bd327700.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-be5fb020.js"),["assets/IdentificationConfig-be5fb020.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-f21e7cbe.js").then(e=>e.O),["assets/OptionalComponents-f21e7cbe.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-9090b268.js").then(e=>e.G),["assets/GeneralChargeConfig-9090b268.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-bc17ec59.js"),["assets/PVChargeConfig-bc17ec59.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-5d83a25e.js").then(e=>e.a),["assets/HardwareInstallation-5d83a25e.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-ebecc34c.js"),["assets/LoadManagementConfig-ebecc34c.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-5dccf22c.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-acc5f333.js").then(e=>e.c),["assets/ChargePointInstallation-acc5f333.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-c2429926.js").then(e=>e.b),["assets/VehicleConfig-c2429926.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-74e751bf.js").then(e=>e.I),["assets/IoConfig-74e751bf.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-50a55ac2.js"),["assets/CloudConfig-50a55ac2.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-83a68e6b.js"),["assets/MqttBridgeConfig-83a68e6b.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-7ec1f92a.js"),["assets/DebugConfig-7ec1f92a.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-axios-3dcaeec5.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-f0af7bfc.js"),["assets/Support-f0af7bfc.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-39bbfbb6.js"),["assets/LegalSettings-39bbfbb6.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-f8f1bbde.js"),["assets/System-f8f1bbde.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-d8247a90.js").then(e=>e.a),["assets/DataManagement-d8247a90.js","assets/vendor-fortawesome-855c7d62.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-0fa0d0dd.js"),["assets/InstallAssistant-0fa0d0dd.js","assets/dynamic-import-helper-be004503.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-d5c5514d.js"),["assets/TestingStore-d5c5514d.js","assets/OpenwbSortableList-5dccf22c.js","assets/vendor-cc4615be.js","assets/vendor-sortablejs-7c09d6dd.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-855c7d62.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-09a7ccd9.js","assets/vendor-jquery-13cad4c1.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-3dcaeec5.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; +import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as x,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as q,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-25d394b4.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as qe,D as xe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as He,a as Ue}from"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-jquery-3364d39b.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,q(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)]),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=x((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},qt={class:"form-group mb-0"},xt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",qt,[a("div",xt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=x((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:x(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=x(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=x(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,q(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},qn={class:"input-group-prepend"},xn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",qn,[a("div",xn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,q(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,q(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,q(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,qe,xe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const xs=y(vs,[["render",qs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:xs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,q(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},qo={key:1},xo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",qo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",xo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-f48d27b8.js"),["assets/Status-f48d27b8.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-e7acf03d.js"),["assets/ChargeLog-e7acf03d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-899aaa0c.js"),["assets/Chart-899aaa0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-1aa02fdc.js").then(e=>e.a),["assets/GeneralConfig-1aa02fdc.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-ed3f2bff.js"),["assets/IdentificationConfig-ed3f2bff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-eab310e0.js").then(e=>e.O),["assets/OptionalComponents-eab310e0.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-f5f65896.js").then(e=>e.G),["assets/GeneralChargeConfig-f5f65896.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-e427d7a6.js"),["assets/PVChargeConfig-e427d7a6.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-6515151f.js").then(e=>e.a),["assets/HardwareInstallation-6515151f.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-9ba2529d.js"),["assets/LoadManagementConfig-9ba2529d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-227b0e79.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-4bbfab0c.js").then(e=>e.c),["assets/ChargePointInstallation-4bbfab0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-2e0daf8e.js").then(e=>e.b),["assets/VehicleConfig-2e0daf8e.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-83896e35.js").then(e=>e.b),["assets/IoConfig-83896e35.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-74bbfdff.js"),["assets/CloudConfig-74bbfdff.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-0cb3253c.js"),["assets/MqttBridgeConfig-0cb3253c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-f413af66.js"),["assets/DebugConfig-f413af66.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-d39bee6a.js"),["assets/Support-d39bee6a.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-0495f43d.js"),["assets/LegalSettings-0495f43d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-5b07ce9f.js"),["assets/System-5b07ce9f.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-337c2c94.js").then(e=>e.a),["assets/DataManagement-337c2c94.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-ad73a366.js"),["assets/InstallAssistant-ad73a366.js","assets/dynamic-import-helper-be004503.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-be12c671.js"),["assets/TestingStore-be12c671.js","assets/OpenwbSortableList-227b0e79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; diff --git a/web/settings/assets/inverter-71e5d1d9.js b/web/settings/assets/inverter-0852f06a.js similarity index 66% rename from web/settings/assets/inverter-71e5d1d9.js rename to web/settings/assets/inverter-0852f06a.js index 5bb5fb1773..18be463c85 100644 --- a/web/settings/assets/inverter-71e5d1d9.js +++ b/web/settings/assets/inverter-0852f06a.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-1d570cc3.js b/web/settings/assets/inverter-0d5f082e.js similarity index 63% rename from web/settings/assets/inverter-1d570cc3.js rename to web/settings/assets/inverter-0d5f082e.js index 0cc7cd8e81..4c1c670cef 100644 --- a/web/settings/assets/inverter-1d570cc3.js +++ b/web/settings/assets/inverter-0d5f082e.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-f5498730.js b/web/settings/assets/inverter-10de1272.js similarity index 63% rename from web/settings/assets/inverter-f5498730.js rename to web/settings/assets/inverter-10de1272.js index 0be1d5656a..cfdb85123a 100644 --- a/web/settings/assets/inverter-f5498730.js +++ b/web/settings/assets/inverter-10de1272.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-6e1544e1.js b/web/settings/assets/inverter-1a358f95.js similarity index 82% rename from web/settings/assets/inverter-6e1544e1.js rename to web/settings/assets/inverter-1a358f95.js index decf4998c8..c06f73617a 100644 --- a/web/settings/assets/inverter-6e1544e1.js +++ b/web/settings/assets/inverter-1a358f95.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; +import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-2734679f.js b/web/settings/assets/inverter-208d8966.js similarity index 64% rename from web/settings/assets/inverter-2734679f.js rename to web/settings/assets/inverter-208d8966.js index 51a3304b00..f69f9fa33b 100644 --- a/web/settings/assets/inverter-2734679f.js +++ b/web/settings/assets/inverter-208d8966.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-236b1784.js b/web/settings/assets/inverter-236b1784.js new file mode 100644 index 0000000000..9379d5d254 --- /dev/null +++ b/web/settings/assets/inverter-236b1784.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-6515151f.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-288f20ba.js b/web/settings/assets/inverter-288f20ba.js deleted file mode 100644 index 9d620c328a..0000000000 --- a/web/settings/assets/inverter-288f20ba.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-5d83a25e.js";import{_ as t,l as o,m as n}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-28f2d192.js b/web/settings/assets/inverter-36706c9a.js similarity index 66% rename from web/settings/assets/inverter-28f2d192.js rename to web/settings/assets/inverter-36706c9a.js index d4cbd5e69b..56886aa42f 100644 --- a/web/settings/assets/inverter-28f2d192.js +++ b/web/settings/assets/inverter-36706c9a.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-368435ba.js b/web/settings/assets/inverter-368435ba.js deleted file mode 100644 index c59299a43a..0000000000 --- a/web/settings/assets/inverter-368435ba.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-5d83a25e.js";import{_ as n,l as t,m as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-3ba45e90.js b/web/settings/assets/inverter-3dafbe7c.js similarity index 63% rename from web/settings/assets/inverter-3ba45e90.js rename to web/settings/assets/inverter-3dafbe7c.js index 8a19af6ef0..5f57eb0413 100644 --- a/web/settings/assets/inverter-3ba45e90.js +++ b/web/settings/assets/inverter-3dafbe7c.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-f9f11d2f.js b/web/settings/assets/inverter-3de69e58.js similarity index 67% rename from web/settings/assets/inverter-f9f11d2f.js rename to web/settings/assets/inverter-3de69e58.js index c76e21cc4d..c491beafde 100644 --- a/web/settings/assets/inverter-f9f11d2f.js +++ b/web/settings/assets/inverter-3de69e58.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-6ff09b8a.js b/web/settings/assets/inverter-3e8be295.js similarity index 86% rename from web/settings/assets/inverter-6ff09b8a.js rename to web/settings/assets/inverter-3e8be295.js index ec820a4ee9..ef73284065 100644 --- a/web/settings/assets/inverter-6ff09b8a.js +++ b/web/settings/assets/inverter-3e8be295.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-605fa6ec.js b/web/settings/assets/inverter-4b55caa6.js similarity index 75% rename from web/settings/assets/inverter-605fa6ec.js rename to web/settings/assets/inverter-4b55caa6.js index 51766c0b87..93fbe9aacb 100644 --- a/web/settings/assets/inverter-605fa6ec.js +++ b/web/settings/assets/inverter-4b55caa6.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-cdc91938.js b/web/settings/assets/inverter-84d0a3ba.js similarity index 81% rename from web/settings/assets/inverter-cdc91938.js rename to web/settings/assets/inverter-84d0a3ba.js index bd978eef48..9895bf45cf 100644 --- a/web/settings/assets/inverter-cdc91938.js +++ b/web/settings/assets/inverter-84d0a3ba.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-faacb770.js b/web/settings/assets/inverter-878637c0.js similarity index 71% rename from web/settings/assets/inverter-faacb770.js rename to web/settings/assets/inverter-878637c0.js index abf5e51094..76feaeefa5 100644 --- a/web/settings/assets/inverter-faacb770.js +++ b/web/settings/assets/inverter-878637c0.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-0362bee6.js b/web/settings/assets/inverter-8afb296d.js similarity index 64% rename from web/settings/assets/inverter-0362bee6.js rename to web/settings/assets/inverter-8afb296d.js index 45af8fea0b..cbe80baa7c 100644 --- a/web/settings/assets/inverter-0362bee6.js +++ b/web/settings/assets/inverter-8afb296d.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-38338915.js b/web/settings/assets/inverter-95466897.js similarity index 75% rename from web/settings/assets/inverter-38338915.js rename to web/settings/assets/inverter-95466897.js index 7d9a8229fb..c8d8ebf32e 100644 --- a/web/settings/assets/inverter-38338915.js +++ b/web/settings/assets/inverter-95466897.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-ad33b033.js b/web/settings/assets/inverter-ad33b033.js new file mode 100644 index 0000000000..1cde6207b5 --- /dev/null +++ b/web/settings/assets/inverter-ad33b033.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-6515151f.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-43d63312.js b/web/settings/assets/inverter-b57300f5.js similarity index 65% rename from web/settings/assets/inverter-43d63312.js rename to web/settings/assets/inverter-b57300f5.js index 09f977f2e2..18ed933887 100644 --- a/web/settings/assets/inverter-43d63312.js +++ b/web/settings/assets/inverter-b57300f5.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-87d42851.js b/web/settings/assets/inverter-c68c3b52.js similarity index 67% rename from web/settings/assets/inverter-87d42851.js rename to web/settings/assets/inverter-c68c3b52.js index bd7adf2715..f2291f7a73 100644 --- a/web/settings/assets/inverter-87d42851.js +++ b/web/settings/assets/inverter-c68c3b52.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-31850b39.js b/web/settings/assets/inverter-c71098f4.js similarity index 68% rename from web/settings/assets/inverter-31850b39.js rename to web/settings/assets/inverter-c71098f4.js index 99135e5203..0148958f8d 100644 --- a/web/settings/assets/inverter-31850b39.js +++ b/web/settings/assets/inverter-c71098f4.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-d0cfa178.js b/web/settings/assets/inverter-c97efa3a.js similarity index 77% rename from web/settings/assets/inverter-d0cfa178.js rename to web/settings/assets/inverter-c97efa3a.js index 9514cf4ccd..5cac4dd927 100644 --- a/web/settings/assets/inverter-d0cfa178.js +++ b/web/settings/assets/inverter-c97efa3a.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-0fca0a34.js b/web/settings/assets/inverter-da060ce6.js similarity index 63% rename from web/settings/assets/inverter-0fca0a34.js rename to web/settings/assets/inverter-da060ce6.js index b075793571..988c1641a0 100644 --- a/web/settings/assets/inverter-0fca0a34.js +++ b/web/settings/assets/inverter-da060ce6.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-ed07bcb8.js b/web/settings/assets/inverter-df3fe723.js similarity index 64% rename from web/settings/assets/inverter-ed07bcb8.js rename to web/settings/assets/inverter-df3fe723.js index 9cf90ea49f..c43f4ddec7 100644 --- a/web/settings/assets/inverter-ed07bcb8.js +++ b/web/settings/assets/inverter-df3fe723.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter-0e8ec83e.js b/web/settings/assets/inverter-e08e7a01.js similarity index 72% rename from web/settings/assets/inverter-0e8ec83e.js rename to web/settings/assets/inverter-e08e7a01.js index aaabe2fb72..a47eb434ef 100644 --- a/web/settings/assets/inverter-0e8ec83e.js +++ b/web/settings/assets/inverter-e08e7a01.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-5d83a25e.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; +import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-b5ee1741.js b/web/settings/assets/inverter-e1663f22.js similarity index 65% rename from web/settings/assets/inverter-b5ee1741.js rename to web/settings/assets/inverter-e1663f22.js index e8ee9b6881..123f4870a9 100644 --- a/web/settings/assets/inverter-b5ee1741.js +++ b/web/settings/assets/inverter-e1663f22.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-4d10a817.js b/web/settings/assets/inverter-e4584f68.js similarity index 61% rename from web/settings/assets/inverter-4d10a817.js rename to web/settings/assets/inverter-e4584f68.js index 1b172378d3..93f33c5679 100644 --- a/web/settings/assets/inverter-4d10a817.js +++ b/web/settings/assets/inverter-e4584f68.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-22b22d69.js b/web/settings/assets/inverter-eb5fcf99.js similarity index 66% rename from web/settings/assets/inverter-22b22d69.js rename to web/settings/assets/inverter-eb5fcf99.js index 10f6b60c40..686ab78837 100644 --- a/web/settings/assets/inverter-22b22d69.js +++ b/web/settings/assets/inverter-eb5fcf99.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-355fe1e0.js b/web/settings/assets/inverter-f0a34520.js similarity index 68% rename from web/settings/assets/inverter-355fe1e0.js rename to web/settings/assets/inverter-f0a34520.js index 8947127dfc..44b4cfca65 100644 --- a/web/settings/assets/inverter-355fe1e0.js +++ b/web/settings/assets/inverter-f0a34520.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-5d83a25e.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-4b9a884a.js b/web/settings/assets/inverter-f432c082.js similarity index 86% rename from web/settings/assets/inverter-4b9a884a.js rename to web/settings/assets/inverter-f432c082.js index 198097bbb0..60ea8734f0 100644 --- a/web/settings/assets/inverter-4b9a884a.js +++ b/web/settings/assets/inverter-f432c082.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-dcfb460b.js b/web/settings/assets/inverter-fc51cd0b.js similarity index 73% rename from web/settings/assets/inverter-dcfb460b.js rename to web/settings/assets/inverter-fc51cd0b.js index 5c1c593112..39a555f4ae 100644 --- a/web/settings/assets/inverter-dcfb460b.js +++ b/web/settings/assets/inverter-fc51cd0b.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; +import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-3b4e19fa.js b/web/settings/assets/inverter-fd208841.js similarity index 67% rename from web/settings/assets/inverter-3b4e19fa.js rename to web/settings/assets/inverter-fd208841.js index bd3c1460c0..d8d35ce624 100644 --- a/web/settings/assets/inverter-3b4e19fa.js +++ b/web/settings/assets/inverter-fd208841.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-5d83a25e.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-87f2f05b.js b/web/settings/assets/inverter-fe7c6fda.js similarity index 89% rename from web/settings/assets/inverter-87f2f05b.js rename to web/settings/assets/inverter-fe7c6fda.js index c12721a9ea..c74a15fd42 100644 --- a/web/settings/assets/inverter-87f2f05b.js +++ b/web/settings/assets/inverter-fe7c6fda.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter_secondary-7d7c0326.js b/web/settings/assets/inverter_secondary-62644358.js similarity index 82% rename from web/settings/assets/inverter_secondary-7d7c0326.js rename to web/settings/assets/inverter_secondary-62644358.js index d4c9acd199..f3beae2a62 100644 --- a/web/settings/assets/inverter_secondary-7d7c0326.js +++ b/web/settings/assets/inverter_secondary-62644358.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-5d83a25e.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/io_action-e37f3d26.js b/web/settings/assets/io_action-976bf2b0.js similarity index 86% rename from web/settings/assets/io_action-e37f3d26.js rename to web/settings/assets/io_action-976bf2b0.js index 4eeb048dab..cf49d944ee 100644 --- a/web/settings/assets/io_action-e37f3d26.js +++ b/web/settings/assets/io_action-976bf2b0.js @@ -1 +1 @@ -import{a as v}from"./IoConfig-74e751bf.js";import{O as h}from"./OpenwbIoSinglePattern-bdfa76d2.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; +import{a as v}from"./IoConfig-83896e35.js";import{O as h}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-ccf7b188.js b/web/settings/assets/io_action-b9cbb026.js similarity index 81% rename from web/settings/assets/io_action-ccf7b188.js rename to web/settings/assets/io_action-b9cbb026.js index 152268643f..6c0f4d54c4 100644 --- a/web/settings/assets/io_action-ccf7b188.js +++ b/web/settings/assets/io_action-b9cbb026.js @@ -1 +1 @@ -import{a as g}from"./IoConfig-74e751bf.js";import{O as c}from"./OpenwbIoSinglePattern-bdfa76d2.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; +import{a as g}from"./IoConfig-83896e35.js";import{O as c}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; diff --git a/web/settings/assets/io_action-0bf854b3.js b/web/settings/assets/io_action-c0bcbb6c.js similarity index 78% rename from web/settings/assets/io_action-0bf854b3.js rename to web/settings/assets/io_action-c0bcbb6c.js index 28c135b1f6..6a021986de 100644 --- a/web/settings/assets/io_action-0bf854b3.js +++ b/web/settings/assets/io_action-c0bcbb6c.js @@ -1 +1 @@ -import{a as d}from"./IoConfig-74e751bf.js";import{O as m}from"./OpenwbIoPattern-c832dbbd.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; +import{a as d}from"./IoConfig-83896e35.js";import{O as m}from"./OpenwbIoPattern-66bb2793.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; diff --git a/web/settings/assets/io_action-ea45c9b1.js b/web/settings/assets/io_action-e0e64896.js similarity index 87% rename from web/settings/assets/io_action-ea45c9b1.js rename to web/settings/assets/io_action-e0e64896.js index b74f3c821c..778c4214c8 100644 --- a/web/settings/assets/io_action-ea45c9b1.js +++ b/web/settings/assets/io_action-e0e64896.js @@ -1 +1 @@ -import{a as f}from"./IoConfig-74e751bf.js";import{O as b}from"./OpenwbIoPattern-c832dbbd.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; +import{a as f}from"./IoConfig-83896e35.js";import{O as b}from"./OpenwbIoPattern-66bb2793.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_device-e73fab6d.js b/web/settings/assets/io_device-9ff50b11.js similarity index 70% rename from web/settings/assets/io_device-e73fab6d.js rename to web/settings/assets/io_device-9ff50b11.js index 1aaf885313..3110980d15 100644 --- a/web/settings/assets/io_device-e73fab6d.js +++ b/web/settings/assets/io_device-9ff50b11.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-74e751bf.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; +import{O as m}from"./IoConfig-83896e35.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; diff --git a/web/settings/assets/io_device-f7bfe2d9.js b/web/settings/assets/io_device-ff6641fb.js similarity index 83% rename from web/settings/assets/io_device-f7bfe2d9.js rename to web/settings/assets/io_device-ff6641fb.js index 9b15aff52a..31c3bc2e24 100644 --- a/web/settings/assets/io_device-f7bfe2d9.js +++ b/web/settings/assets/io_device-ff6641fb.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-74e751bf.js";import{C as f}from"./index-5b5e1b75.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; +import{O as m}from"./IoConfig-83896e35.js";import{C as f}from"./index-e4c17b07.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/monitoring-a467b16b.js b/web/settings/assets/monitoring-8ab638da.js similarity index 81% rename from web/settings/assets/monitoring-a467b16b.js rename to web/settings/assets/monitoring-8ab638da.js index 2068322eff..0db54b30b4 100644 --- a/web/settings/assets/monitoring-a467b16b.js +++ b/web/settings/assets/monitoring-8ab638da.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-d8247a90.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; +import{M as l}from"./DataManagement-337c2c94.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-c54ae651.js b/web/settings/assets/vehicle-02f99327.js similarity index 79% rename from web/settings/assets/vehicle-c54ae651.js rename to web/settings/assets/vehicle-02f99327.js index ccc765326e..3969f1eb3e 100644 --- a/web/settings/assets/vehicle-c54ae651.js +++ b/web/settings/assets/vehicle-02f99327.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-c2429926.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; +import{V as l}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-111b97e5.js b/web/settings/assets/vehicle-081d1860.js similarity index 79% rename from web/settings/assets/vehicle-111b97e5.js rename to web/settings/assets/vehicle-081d1860.js index 720d9fbca2..9a1b166799 100644 --- a/web/settings/assets/vehicle-111b97e5.js +++ b/web/settings/assets/vehicle-081d1860.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-c2429926.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; +import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-57c44e4f.js b/web/settings/assets/vehicle-2e31f054.js similarity index 92% rename from web/settings/assets/vehicle-57c44e4f.js rename to web/settings/assets/vehicle-2e31f054.js index cf3fd46da2..62416f703a 100644 --- a/web/settings/assets/vehicle-57c44e4f.js +++ b/web/settings/assets/vehicle-2e31f054.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-c2429926.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; +import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-5a13dbc9.js b/web/settings/assets/vehicle-3688de48.js similarity index 84% rename from web/settings/assets/vehicle-5a13dbc9.js rename to web/settings/assets/vehicle-3688de48.js index 7c4d22139d..fd75e86078 100644 --- a/web/settings/assets/vehicle-5a13dbc9.js +++ b/web/settings/assets/vehicle-3688de48.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-c2429926.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; +import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-30a8b189.js b/web/settings/assets/vehicle-4ee84148.js similarity index 89% rename from web/settings/assets/vehicle-30a8b189.js rename to web/settings/assets/vehicle-4ee84148.js index fa6a680a33..5eaa78e17e 100644 --- a/web/settings/assets/vehicle-30a8b189.js +++ b/web/settings/assets/vehicle-4ee84148.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-c2429926.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; +import{V as m}from"./VehicleConfig-2e0daf8e.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-8c574416.js b/web/settings/assets/vehicle-54d21a19.js similarity index 78% rename from web/settings/assets/vehicle-8c574416.js rename to web/settings/assets/vehicle-54d21a19.js index 29e0ec1044..181353d40f 100644 --- a/web/settings/assets/vehicle-8c574416.js +++ b/web/settings/assets/vehicle-54d21a19.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-c2429926.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; +import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vehicle-1d9f77b1.js b/web/settings/assets/vehicle-552086ad.js similarity index 69% rename from web/settings/assets/vehicle-1d9f77b1.js rename to web/settings/assets/vehicle-552086ad.js index bae272605b..999733efba 100644 --- a/web/settings/assets/vehicle-1d9f77b1.js +++ b/web/settings/assets/vehicle-552086ad.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-c2429926.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; +import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-05b8b107.js b/web/settings/assets/vehicle-5bf23959.js similarity index 91% rename from web/settings/assets/vehicle-05b8b107.js rename to web/settings/assets/vehicle-5bf23959.js index 4fffeafde6..2f14396674 100644 --- a/web/settings/assets/vehicle-05b8b107.js +++ b/web/settings/assets/vehicle-5bf23959.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-c2429926.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; +import{V as m}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-52cf89cb.js b/web/settings/assets/vehicle-62ddb254.js similarity index 87% rename from web/settings/assets/vehicle-52cf89cb.js rename to web/settings/assets/vehicle-62ddb254.js index 2fdacb230c..2893b36dd5 100644 --- a/web/settings/assets/vehicle-52cf89cb.js +++ b/web/settings/assets/vehicle-62ddb254.js @@ -1 +1 @@ -import{V as d}from"./VehicleConfig-c2429926.js";import{_ as u,u as p,l as a,m as f,G as i,E as n,B as l,A as t,F as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[d]},v={class:"vehicle-soc-mqtt"};function g(o,e,w,k,x,B){const s=p("openwb-base-copy-to-clipboard"),m=p("openwb-base-alert");return a(),f("div",v,[i(m,{subtype:"info"},{default:n(()=>[e[19]||(e[19]=l(" Die Daten werden immer dann aktualisiert, wenn das Topic veröffentlicht wird. Die Abfrageintervalle werden nicht berücksichtigt, da das Intervall vom sendenden Client festgelegt wird. ",-1)),t("ul",null,[t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc ",1)]),_:1}),e[0]||(e[0]=t("br",null,null,-1)),e[1]||(e[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[2]||(e[2]=t("br",null,null,-1)),e[3]||(e[3]=l(" Beispiel: ",-1)),e[4]||(e[4]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[9]||(e[9]=t("br",null,null,-1)),e[10]||(e[10]=l(" Beispiel: ",-1)),e[11]||(e[11]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/range ",1)]),_:1}),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=l(" Diese Info ist optional.",-1)),e[16]||(e[16]=t("br",null,null,-1)),e[17]||(e[17]=l(" Beispiel: ",-1)),e[18]||(e[18]=t("span",{class:"text-info"},"356.5",-1))])])]),_:1,__:[19]})])}const N=u(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; +import{V as d}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as p,l as a,m as f,G as i,E as n,B as l,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[d]},v={class:"vehicle-soc-mqtt"};function g(o,e,w,k,x,B){const s=p("openwb-base-copy-to-clipboard"),m=p("openwb-base-alert");return a(),f("div",v,[i(m,{subtype:"info"},{default:n(()=>[e[19]||(e[19]=l(" Die Daten werden immer dann aktualisiert, wenn das Topic veröffentlicht wird. Die Abfrageintervalle werden nicht berücksichtigt, da das Intervall vom sendenden Client festgelegt wird. ",-1)),t("ul",null,[t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc ",1)]),_:1}),e[0]||(e[0]=t("br",null,null,-1)),e[1]||(e[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[2]||(e[2]=t("br",null,null,-1)),e[3]||(e[3]=l(" Beispiel: ",-1)),e[4]||(e[4]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[9]||(e[9]=t("br",null,null,-1)),e[10]||(e[10]=l(" Beispiel: ",-1)),e[11]||(e[11]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/range ",1)]),_:1}),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=l(" Diese Info ist optional.",-1)),e[16]||(e[16]=t("br",null,null,-1)),e[17]||(e[17]=l(" Beispiel: ",-1)),e[18]||(e[18]=t("span",{class:"text-info"},"356.5",-1))])])]),_:1,__:[19]})])}const N=u(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-d5ac3573.js b/web/settings/assets/vehicle-81c54b19.js similarity index 88% rename from web/settings/assets/vehicle-d5ac3573.js rename to web/settings/assets/vehicle-81c54b19.js index 656883a120..2caec908eb 100644 --- a/web/settings/assets/vehicle-d5ac3573.js +++ b/web/settings/assets/vehicle-81c54b19.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfig-c2429926.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; +import{V as s}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-9e586137.js b/web/settings/assets/vehicle-a08311d0.js similarity index 73% rename from web/settings/assets/vehicle-9e586137.js rename to web/settings/assets/vehicle-a08311d0.js index 8189d6a869..3454f561b6 100644 --- a/web/settings/assets/vehicle-9e586137.js +++ b/web/settings/assets/vehicle-a08311d0.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfig-c2429926.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; +import{V as r}from"./VehicleConfig-2e0daf8e.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-44740467.js b/web/settings/assets/vehicle-a44392fc.js similarity index 64% rename from web/settings/assets/vehicle-44740467.js rename to web/settings/assets/vehicle-a44392fc.js index f4655bf110..c907fff331 100644 --- a/web/settings/assets/vehicle-44740467.js +++ b/web/settings/assets/vehicle-a44392fc.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfig-c2429926.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; +import{V as o}from"./VehicleConfig-2e0daf8e.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-3d04897a.js b/web/settings/assets/vehicle-aa814b6d.js similarity index 93% rename from web/settings/assets/vehicle-3d04897a.js rename to web/settings/assets/vehicle-aa814b6d.js index 5099f9ffb6..9f827e1d88 100644 --- a/web/settings/assets/vehicle-3d04897a.js +++ b/web/settings/assets/vehicle-aa814b6d.js @@ -1 +1 @@ -import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-cc4615be.js";import{a as w}from"./vendor-axios-3dcaeec5.js";import{C}from"./index-5b5e1b75.js";import{V as y}from"./VehicleConfig-c2429926.js";import"./vendor-sortablejs-7c09d6dd.js";import"./vendor-fortawesome-855c7d62.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; +import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-25d394b4.js";import{a as w}from"./vendor-axios-ac33d60c.js";import{C}from"./index-e4c17b07.js";import{V as y}from"./VehicleConfig-2e0daf8e.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-b1993187.js b/web/settings/assets/vehicle-b55a7355.js similarity index 74% rename from web/settings/assets/vehicle-b1993187.js rename to web/settings/assets/vehicle-b55a7355.js index 807a550b46..9b399d9688 100644 --- a/web/settings/assets/vehicle-b1993187.js +++ b/web/settings/assets/vehicle-b55a7355.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-c2429926.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; +import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-52abc450.js b/web/settings/assets/vehicle-b6b40aa6.js similarity index 79% rename from web/settings/assets/vehicle-52abc450.js rename to web/settings/assets/vehicle-b6b40aa6.js index 647b62d268..f6fde14d1c 100644 --- a/web/settings/assets/vehicle-52abc450.js +++ b/web/settings/assets/vehicle-b6b40aa6.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-c2429926.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; +import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-63d2e44b.js b/web/settings/assets/vehicle-bc9278d5.js similarity index 64% rename from web/settings/assets/vehicle-63d2e44b.js rename to web/settings/assets/vehicle-bc9278d5.js index 92a46c0594..93441ccbf4 100644 --- a/web/settings/assets/vehicle-63d2e44b.js +++ b/web/settings/assets/vehicle-bc9278d5.js @@ -1 +1 @@ -import{V as n}from"./VehicleConfig-c2429926.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; +import{V as n}from"./VehicleConfig-2e0daf8e.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-be11133e.js b/web/settings/assets/vehicle-ce15b972.js similarity index 82% rename from web/settings/assets/vehicle-be11133e.js rename to web/settings/assets/vehicle-ce15b972.js index 145149e6ee..10c1e6f0af 100644 --- a/web/settings/assets/vehicle-be11133e.js +++ b/web/settings/assets/vehicle-ce15b972.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-c2429926.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; +import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-fc942755.js b/web/settings/assets/vehicle-d5f041d0.js similarity index 84% rename from web/settings/assets/vehicle-fc942755.js rename to web/settings/assets/vehicle-d5f041d0.js index 00aa461f0a..ace227277a 100644 --- a/web/settings/assets/vehicle-fc942755.js +++ b/web/settings/assets/vehicle-d5f041d0.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-c2429926.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; +import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-2966a953.js b/web/settings/assets/vehicle-e22aaad0.js similarity index 82% rename from web/settings/assets/vehicle-2966a953.js rename to web/settings/assets/vehicle-e22aaad0.js index 2782aea557..aaef905a1c 100644 --- a/web/settings/assets/vehicle-2966a953.js +++ b/web/settings/assets/vehicle-e22aaad0.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-c2429926.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; +import{V as l}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-c1d27dfd.js b/web/settings/assets/vehicle-f5091955.js similarity index 79% rename from web/settings/assets/vehicle-c1d27dfd.js rename to web/settings/assets/vehicle-f5091955.js index cbdde58735..fe1c32cf5e 100644 --- a/web/settings/assets/vehicle-c1d27dfd.js +++ b/web/settings/assets/vehicle-f5091955.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-c2429926.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; +import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-0bedc131.js b/web/settings/assets/vehicle-fa5f8129.js similarity index 84% rename from web/settings/assets/vehicle-0bedc131.js rename to web/settings/assets/vehicle-fa5f8129.js index 2d64c542f9..3431c8dbc3 100644 --- a/web/settings/assets/vehicle-0bedc131.js +++ b/web/settings/assets/vehicle-fa5f8129.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-c2429926.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-cc4615be.js";import"./vendor-fortawesome-855c7d62.js";import"./index-5b5e1b75.js";import"./vendor-bootstrap-09a7ccd9.js";import"./vendor-jquery-13cad4c1.js";import"./vendor-axios-3dcaeec5.js";import"./vendor-sortablejs-7c09d6dd.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; +import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vendor-cc4615be.js b/web/settings/assets/vendor-25d394b4.js similarity index 87% rename from web/settings/assets/vendor-cc4615be.js rename to web/settings/assets/vendor-25d394b4.js index b0c8afd123..a478e2dddd 100644 --- a/web/settings/assets/vendor-cc4615be.js +++ b/web/settings/assets/vendor-25d394b4.js @@ -1,9 +1,9 @@ -import{r as require$$1$5}from"./vendor-sortablejs-7c09d6dd.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,x=n?l-1:0,C=n?-1:1,B=e[t+x];for(x+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+x],x+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+x],x+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,x=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+x>=1?t+=C/w:t+=C*Math.pow(2,1-x),t*w>=2&&(d++,w/=2),d+x>=S?(y=0,d=S):d+x>=1?(y=(t*w-1)*Math.pow(2,l),d=d+x):(y=t*Math.pow(2,x-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! +import{r as require$$1$5}from"./vendor-sortablejs-0eb84ec8.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,E=n?l-1:0,C=n?-1:1,B=e[t+E];for(E+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+E],E+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+E],E+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,E=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+E>=1?t+=C/w:t+=C*Math.pow(2,1-E),t*w>=2&&(d++,w/=2),d+E>=S?(y=0,d=S):d+E>=1?(y=(t*w-1)*Math.pow(2,l),d=d+E):(y=t*Math.pow(2,E-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */(function(e){var t=base64Js,n=ieee754,o=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=y,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;var l=2147483647;e.kMaxLength=l,y.TYPED_ARRAY_SUPPORT=a(),!y.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{var J=new Uint8Array(1),Y={foo:function(){return 42}};return Object.setPrototypeOf(Y,Uint8Array.prototype),Object.setPrototypeOf(J,Y),J.foo()===42}catch{return!1}}Object.defineProperty(y.prototype,"parent",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.buffer}}),Object.defineProperty(y.prototype,"offset",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.byteOffset}});function d(J){if(J>l)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return x(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=q(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function x(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return x(J)},y.allocUnsafeSlow=function(J){return x(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=j(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function j(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=j;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||E(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||E(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||E(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||E(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||E(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||E(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||E(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||E(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;nl)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=q(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function E(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return E(J)},y.allocUnsafeSlow=function(J){return E(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=j(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function j(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=j;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;n0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((x,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(x)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const x=w.apply(e,a);return y?toReactive(x):x}let _=n;d!==e&&(y?_=function(x,C){return n.call(this,toReactive(x),C,e)}:n.length>2&&(_=function(x,C){return n.call(this,x,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?!1:(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:x,done:C}=_.next();return C?{value:x,done:C}:{value:y?[S(x[0]),S(x[1])]:S(x),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),Reflect.get(l,"size",l)},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,x)=>l.call(a,_(S),_(x),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let x,C,B,L,F=!1,q=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(q=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=x;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{x.stop(),H&&H.active&&remove(H.effects,x)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let j=q?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(x.flags&1)||!x.dirty&&!Q))if(t){const ae=x.run();if(l||F||(q?ae.some((ce,ue)=>hasChanged(ce,j[ue])):hasChanged(ae,j))){B&&B();const ce=activeWatcher;activeWatcher=x;try{const ue=[ae,j===INITIAL_WATCHER_VALUE?void 0:q&&j[0]===INITIAL_WATCHER_VALUE?[]:j,L];j=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else x.run()};return y&&y(V),x=new ReactiveEffect(C),x.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,x),B=x.onStop=()=>{const Q=cleanupMap.get(x);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(x)}},x.onTrack=n.onTrack,x.onTrigger=n.onTrigger,t?o?V(!0):j=x.run():d?d(V.bind(null,!0),!0):x.run(),D.pause=x.pause.bind(x),D.resume=x.resume.bind(x),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** +**/function warn$3(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((E,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(E)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const E=w.apply(e,a);return y?toReactive(E):E}let _=n;d!==e&&(y?_=function(E,C){return n.call(this,toReactive(E),C,e)}:n.length>2&&(_=function(E,C){return n.call(this,E,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?!1:(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:E,done:C}=_.next();return C?{value:E,done:C}:{value:y?[S(E[0]),S(E[1])]:S(E),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),Reflect.get(l,"size",l)},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,E)=>l.call(a,_(S),_(E),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let E,C,B,L,F=!1,q=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(q=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=E;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{E.stop(),H&&H.active&&remove(H.effects,E)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let j=q?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(E.flags&1)||!E.dirty&&!Q))if(t){const ae=E.run();if(l||F||(q?ae.some((ce,ue)=>hasChanged(ce,j[ue])):hasChanged(ae,j))){B&&B();const ce=activeWatcher;activeWatcher=E;try{const ue=[ae,j===INITIAL_WATCHER_VALUE?void 0:q&&j[0]===INITIAL_WATCHER_VALUE?[]:j,L];j=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else E.run()};return y&&y(V),E=new ReactiveEffect(C),E.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,E),B=E.onStop=()=>{const Q=cleanupMap.get(E);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(E)}},E.onTrack=n.onTrack,E.onTrigger=n.onTrigger,t?o?V(!0):j=E.run():d?d(V.bind(null,!0),!0):E.run(),D.pause=E.pause.bind(E),D.resume=E.resume.bind(E),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const stack=[];function pushWarningContext(e){stack.push(e)}function popWarningContext(){stack.pop()}let isWarning=!1;function warn$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const n=stack.length?stack[stack.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=getComponentTrace();if(o)callWithErrorHandling(o,n,11,[e+t.map(a=>{var d,y;return(y=(d=a.toString)==null?void 0:d.call(a))!=null?y:JSON.stringify(a)}).join(""),n&&n.proxy,l.map(({vnode:a})=>`at <${formatComponentName(n,a.type)}>`).join(` `),l]);else{const a=[`[Vue warn]: ${e}`,...t];l.length&&a.push(` `,...formatTrace(l)),console.warn(...a)}resetTracking(),isWarning=!1}function getComponentTrace(){let e=stack[stack.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function formatTrace(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a)}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};/*! #__NO_SIDE_EFFECTS__ */function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:x,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:q}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:j,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=q("teleport start"),ae=t.anchor=q("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(j,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||x(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:x,props:C}=e;if(x&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,x=>_=x);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(w,S)&&recursiveGetSubtree(n).type!==Comment){let x=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,x),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,x.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete x.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?x.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:x,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:q,onAppear:H,onAfterAppear:D,onAppearCancelled:j}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=q||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=x;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=j||x;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((L,F)=>setRef(L,t&&(isArray$a(t)?t[F]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,x=y.setupState,C=toRaw(x),B=x===EMPTY_OBJ?()=>!1:L=>(hasOwn$3(C,L)&&!isRef(C[L])&&warn$1(`Template ref "${L}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[L])?!1:hasOwn$3(C,L));if(_!=null&&_!==w&&(isString$2(_)?(S[_]=null,B(_)&&(x[_]=null)):isRef(_)&&(_.value=null)),isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const L=isString$2(w),F=isRef(w);if(L||F){const q=()=>{if(e.f){const H=L?B(w)?x[w]:S[w]:w.value;l?isArray$a(H)&&remove(H,a):isArray$a(H)?H.includes(a)||H.push(a):L?(S[w]=[a],B(w)&&(x[w]=S[w])):(w.value=[a],e.k&&(S[e.k]=w.value))}else L?(S[w]=d,B(w)&&(x[w]=d)):F?(w.value=d,e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};d?(q.id=-1,queuePostRenderEffect(q,n)):q()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(j,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,j,V),flushPostFlushCbs(),V._vnode=j;return}x(V.firstChild,j,null,null,null),flushPostFlushCbs(),V._vnode=j},x=(j,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(j)&&j.data==="[",pe=()=>F(j,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=j.nodeType;V.el=j,def(j,"__vnode",V,!0),def(j,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(j),j),M=j):M=pe():(j.data!==V.children&&(warn$1("Hydration text mismatch in",j.parentNode,` +`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a)}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};/*! #__NO_SIDE_EFFECTS__ */function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:E,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:q}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:j,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=q("teleport start"),ae=t.anchor=q("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(j,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||E(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:E,props:C}=e;if(E&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,E=>_=E);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(w,S)&&recursiveGetSubtree(n).type!==Comment){let E=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,E),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete E.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?E.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:E,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:q,onAppear:H,onAfterAppear:D,onAppearCancelled:j}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=q||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=E;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=j||E;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((L,F)=>setRef(L,t&&(isArray$a(t)?t[F]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,E=y.setupState,C=toRaw(E),B=E===EMPTY_OBJ?()=>!1:L=>(hasOwn$3(C,L)&&!isRef(C[L])&&warn$1(`Template ref "${L}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[L])?!1:hasOwn$3(C,L));if(_!=null&&_!==w&&(isString$2(_)?(S[_]=null,B(_)&&(E[_]=null)):isRef(_)&&(_.value=null)),isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const L=isString$2(w),F=isRef(w);if(L||F){const q=()=>{if(e.f){const H=L?B(w)?E[w]:S[w]:w.value;l?isArray$a(H)&&remove(H,a):isArray$a(H)?H.includes(a)||H.push(a):L?(S[w]=[a],B(w)&&(E[w]=S[w])):(w.value=[a],e.k&&(S[e.k]=w.value))}else L?(S[w]=d,B(w)&&(E[w]=d)):F?(w.value=d,e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};d?(q.id=-1,queuePostRenderEffect(q,n)):q()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(j,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,j,V),flushPostFlushCbs(),V._vnode=j;return}E(V.firstChild,j,null,null,null),flushPostFlushCbs(),V._vnode=j},E=(j,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(j)&&j.data==="[",pe=()=>F(j,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=j.nodeType;V.el=j,def(j,"__vnode",V,!0),def(j,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(j),j),M=j):M=pe():(j.data!==V.children&&(warn$1("Hydration text mismatch in",j.parentNode,` - rendered on server: ${JSON.stringify(j.data)} - - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),j.data=V.children),M=a(j));break;case Comment:D(j)?(M=a(j),H(V.el=j.content.firstChild,j,Q)):b!==8||re?M=pe():M=a(j);break;case Static:if(re&&(j=a(j),b=j.nodeType),b===1||b===3){M=j;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(j)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=j.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,j,Q),V.el=j=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(j.firstChild,V,j,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(j,1)||($||(warn$1("Hydration children mismatch on",j,` + - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),j.data=V.children),M=a(j));break;case Comment:D(j)?(M=a(j),H(V.el=j.content.firstChild,j,Q)):b!==8||re?M=pe():M=a(j);break;case Static:if(re&&(j=a(j),b=j.nodeType),b===1||b===3){M=j;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(j)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=j.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,j,Q),V.el=j=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(j.firstChild,V,j,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(j,1)||($||(warn$1("Hydration children mismatch on",j,` Server rendered element contains more child nodes than client vdom.`),$=!0),logMismatchError());const c=O;O=O.nextSibling,y(c)}}else if(u&8){let O=V.children;O[0]===` `&&(j.tagName==="PRE"||j.tagName==="TEXTAREA")&&(O=O.slice(1)),j.textContent!==O&&(isMismatchAllowed(j,0)||(warn$1("Hydration text content mismatch on",j,` - rendered on server: ${j.textContent} - - expected on client: ${V.children}`),logMismatchError()),j.textContent=V.children)}if(pe){const O=j.tagName.includes("-");for(const $ in pe)!(v&&v.some(c=>c.dir.created))&&propHasMismatch(j,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(j,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(j),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return j.nextSibling},B=(j,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;vc.dir.created))&&propHasMismatch(j,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(j,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(j),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return j.nextSibling},B=(j,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;v{const{slotScopeIds:re}=V;re&&(ce=ce?ce.concat(re):re);const pe=d(j),T=B(a(j),V,pe,Q,ae,ce,ue);return T&&isComment(T)&&T.data==="]"?a(V.anchor=T):(logMismatchError(),w(V.anchor=_("]"),pe,T),T)},F=(j,V,Q,ae,ce,ue)=>{if(isMismatchAllowed(j.parentElement,1)||(warn$1(`Hydration node mismatch: - rendered on server:`,j,j.nodeType===3?"(text)":isComment(j)&&j.data==="["?"(start of fragment)":"",` -- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=q(j);for(;;){const u=a(j);if(u&&u!==T)y(u);else break}}const re=a(j),pe=d(j);return y(j),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},q=(j,V="[",Q="]")=>{let ae=0;for(;j;)if(j=a(j),j&&isComment(j)&&(j.data===V&&ae++,j.data===Q)){if(ae===0)return a(j);ae--}return j},H=(j,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(j,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=j),ce=ce.parent},D=j=>j.nodeType===1&&j.tagName==="TEMPLATE";return[S,x]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:x,value:C}of o.dirs)x.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,x=` +- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=q(j);for(;;){const u=a(j);if(u&&u!==T)y(u);else break}}const re=a(j),pe=d(j);return y(j),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},q=(j,V="[",Q="]")=>{let ae=0;for(;j;)if(j=a(j),j&&isComment(j)&&(j.data===V&&ae++,j.data===Q)){if(ae===0)return a(j);ae--}return j},H=(j,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(j,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=j),ce=ce.parent},D=j=>j.nodeType===1&&j.tagName==="TEMPLATE";return[S,E]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:E,value:C}of o.dirs)E.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,E=` - rendered on server: ${_(y)} - expected on client: ${_(w)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`;return warn$1(S,e,x),!0}return!1}function toClassSet(e){return new Set(e.trim().split(/\s+/))}function isSetEqual(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function toStyleMap(e){const t=new Map;for(const n of e.split(";")){let[o,l]=n.split(":");o=o.trim(),l=l&&l.trim(),o&&l&&t.set(o,l)}return t}function isMapEqual(e,t){if(e.size!==t.size)return!1;for(const[n,o]of e)if(o!==t.get(n))return!1;return!0}function resolveCssVars(e,t,n){const o=e.subTree;if(e.getCssVars&&(t===o||o&&o.type===Fragment&&o.children.includes(t))){const l=e.getCssVars();for(const a in l){const d=normalizeCssVarValue(l[a]);n.set(`--${getEscapedCssVarName(a,!1)}`,d)}}t===o&&e.parent&&resolveCssVars(e.parent,e.vnode,n)}const allowMismatchAttr="data-allow-mismatch",MismatchTypeString={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function isMismatchAllowed(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(allowMismatchAttr);)e=e.parentElement;const n=e&&e.getAttribute(allowMismatchAttr);if(n==null)return!1;if(n==="")return!0;{const o=n.split(",");return t===0&&o.includes("children")?!0:o.includes(MismatchTypeString[t])}}const requestIdleCallback=getGlobalThis().requestIdleCallback||(e=>setTimeout(e,1)),cancelIdleCallback=getGlobalThis().cancelIdleCallback||(e=>clearTimeout(e)),hydrateOnIdle=(e=1e4)=>t=>{const n=requestIdleCallback(t,{timeout:e});return()=>cancelIdleCallback(n)};function elementIsVisibleInViewport(e){const{top:t,left:n,bottom:o,right:l}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:d}=window;return(t>0&&t0&&o0&&n0&&l(t,n)=>{const o=new IntersectionObserver(l=>{for(const a of l)if(a.isIntersecting){o.disconnect(),t();break}},e);return n(l=>{if(l instanceof Element){if(elementIsVisibleInViewport(l))return t(),o.disconnect(),!1;o.observe(l)}}),()=>o.disconnect()},hydrateOnMediaQuery=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},hydrateOnInteraction=(e=[])=>(t,n)=>{isString$2(e)&&(e=[e]);let o=!1;const l=d=>{o||(o=!0,a(),t(),d.target.dispatchEvent(new d.constructor(d.type,d)))},a=()=>{n(d=>{for(const y of e)d.removeEventListener(y,l)})};return n(d=>{for(const y of e)d.addEventListener(y,l,{once:!0})}),a};function forEachElement(e,t){if(isComment(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(isComment(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const isAsyncWrapper=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function defineAsyncComponent(e){isFunction$2(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:l=200,hydrate:a,timeout:d,suspensible:y=!0,onError:w}=e;let _=null,S,x=0;const C=()=>(x++,_=null,B()),B=()=>{let L;return _||(L=_=t().catch(F=>{if(F=F instanceof Error?F:new Error(String(F)),w)return new Promise((q,H)=>{w(F,()=>q(C()),()=>H(F),x+1)});throw F}).then(F=>{if(L!==_&&_)return _;if(F||warn$1("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),F&&(F.__esModule||F[Symbol.toStringTag]==="Module")&&(F=F.default),F&&!isObject$3(F)&&!isFunction$2(F))throw new Error(`Invalid async component load result: ${F}`);return S=F,F}))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:B,__asyncHydrate(L,F,q){let H=!1;(F.bu||(F.bu=[])).push(()=>H=!0);const D=()=>{if(H){warn$1(`Skipping lazy hydration for component '${getComponentName(S)||S.__file}': it was updated before lazy hydration performed.`);return}q()},j=a?()=>{const V=a(D,Q=>forEachElement(L,Q));V&&(F.bum||(F.bum=[])).push(V)}:D;S?j():B().then(()=>!F.isUnmounted&&j())},get __asyncResolved(){return S},setup(){const L=currentInstance;if(markAsyncBoundary(L),S)return()=>createInnerComp(S,L);const F=j=>{_=null,handleError(j,L,13,!o)};if(y&&L.suspense||isInSSRComponentSetup)return B().then(j=>()=>createInnerComp(j,L)).catch(j=>(F(j),()=>o?createVNode(o,{error:j}):null));const q=ref$1(!1),H=ref$1(),D=ref$1(!!l);return l&&setTimeout(()=>{D.value=!1},l),d!=null&&setTimeout(()=>{if(!q.value&&!H.value){const j=new Error(`Async component timed out after ${d}ms.`);F(j),H.value=j}},d),B().then(()=>{q.value=!0,L.parent&&isKeepAlive(L.parent.vnode)&&L.parent.update()}).catch(j=>{F(j),H.value=j}),()=>{if(q.value&&S)return createInnerComp(S,L);if(H.value&&o)return createVNode(o,{error:H.value});if(n&&!D.value)return createVNode(n)}}})}function createInnerComp(e,t){const{ref:n,props:o,children:l,ce:a}=t.vnode,d=createVNode(e,o,l);return d.ref=n,d.ce=a,delete t.vnode.ce,d}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=getCurrentInstance(),o=n.ctx;if(!o.renderer)return()=>{const D=t.default&&t.default();return D&&D.length===1?D[0]:D};const l=new Map,a=new Set;let d=null;n.__v_cache=l;const y=n.suspense,{renderer:{p:w,m:_,um:S,o:{createElement:x}}}=o,C=x("div");o.activate=(D,j,V,Q,ae)=>{const ce=D.component;_(D,j,V,0,y),w(ce.vnode,D,j,V,ce,y,Q,D.slotScopeIds,ae),queuePostRenderEffect(()=>{ce.isDeactivated=!1,ce.a&&invokeArrayFns(ce.a);const ue=D.props&&D.props.onVnodeMounted;ue&&invokeVNodeHook(ue,ce.parent,D)},y),devtoolsComponentAdded(ce)},o.deactivate=D=>{const j=D.component;invalidateMount(j.m),invalidateMount(j.a),_(D,C,null,1,y),queuePostRenderEffect(()=>{j.da&&invokeArrayFns(j.da);const V=D.props&&D.props.onVnodeUnmounted;V&&invokeVNodeHook(V,j.parent,D),j.isDeactivated=!0},y),devtoolsComponentAdded(j),j.__keepAliveStorageContainer=C};function B(D){resetShapeFlag(D),S(D,n,y,!0)}function L(D){l.forEach((j,V)=>{const Q=getComponentName(j.type);Q&&!D(Q)&&F(V)})}function F(D){const j=l.get(D);j&&(!d||!isSameVNodeType(j,d))?B(j):d&&resetShapeFlag(d),l.delete(D),a.delete(D)}watch(()=>[e.include,e.exclude],([D,j])=>{D&&L(V=>matches(D,V)),j&&L(V=>!matches(j,V))},{flush:"post",deep:!0});let q=null;const H=()=>{q!=null&&(isSuspense(n.subTree.type)?queuePostRenderEffect(()=>{l.set(q,getInnerChild(n.subTree))},n.subTree.suspense):l.set(q,getInnerChild(n.subTree)))};return onMounted(H),onUpdated(H),onBeforeUnmount(()=>{l.forEach(D=>{const{subTree:j,suspense:V}=n,Q=getInnerChild(j);if(D.type===Q.type&&D.key===Q.key){resetShapeFlag(Q);const ae=Q.component.da;ae&&queuePostRenderEffect(ae,V);return}B(D)})}),()=>{if(q=null,!t.default)return d=null;const D=t.default(),j=D[0];if(D.length>1)return warn$1("KeepAlive should contain exactly one component child."),d=null,D;if(!isVNode(j)||!(j.shapeFlag&4)&&!(j.shapeFlag&128))return d=null,j;let V=getInnerChild(j);if(V.type===Comment)return d=null,V;const Q=V.type,ae=getComponentName(isAsyncWrapper(V)?V.type.__asyncResolved||{}:Q),{include:ce,exclude:ue,max:re}=e;if(ce&&(!ae||!matches(ce,ae))||ue&&ae&&matches(ue,ae))return V.shapeFlag&=-257,d=V,j;const pe=V.key==null?Q:V.key,T=l.get(pe);return V.el&&(V=cloneVNode(V),j.shapeFlag&128&&(j.ssContent=V)),q=pe,T?(V.el=T.el,V.component=T.component,V.transition&&setTransitionHooks(V,V.transition),V.shapeFlag|=512,a.delete(pe),a.add(pe)):(a.add(pe),re&&a.size>parseInt(re,10)&&F(a.values().next().value)),V.shapeFlag|=256,d=V,isSuspense(j.type)?j:V}}},KeepAlive=KeepAliveImpl;function matches(e,t){return isArray$a(e)?e.some(n=>matches(n,t)):isString$2(e)?e.split(",").includes(t):isRegExp$3(e)?(e.lastIndex=0,e.test(t)):!1}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,n=currentInstance){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(injectHook(t,o,n),n){let l=n.parent;for(;l&&l.parent;)isKeepAlive(l.parent.vnode)&&injectToKeepAliveRoot(o,t,n,l),l=l.parent}}function injectToKeepAliveRoot(e,t,n,o){const l=injectHook(t,e,o,!0);onUnmounted(()=>{remove(o[t],l)},n)}function resetShapeFlag(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function getInnerChild(e){return e.shapeFlag&128?e.ssContent:e}function injectHook(e,t,n=currentInstance,o=!1){if(n){const l=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...d)=>{pauseTracking();const y=setCurrentInstance(n),w=callWithAsyncErrorHandling(t,n,e,d);return y(),resetTracking(),w});return o?l.unshift(a):l.push(a),a}else{const l=toHandlerKey(ErrorTypeStrings$1[e].replace(/ hook$/,""));warn$1(`${l} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const createHook=e=>(t,n=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...o)=>t(...o),n)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(e){return isString$2(e)?resolveAsset(COMPONENTS,e,!1)||e:e||NULL_DYNAMIC_COMPONENT}function resolveDirective(e){return resolveAsset(DIRECTIVES,e)}function resolveAsset(e,t,n=!0,o=!1){const l=currentRenderingInstance||currentInstance;if(l){const a=l.type;if(e===COMPONENTS){const y=getComponentName(a,!1);if(y&&(y===t||y===camelize(t)||y===capitalize$2(camelize(t))))return a}const d=resolve$2(l[e]||a[e],t)||resolve$2(l.appContext[e],t);if(!d&&o)return a;if(n&&!d){const y=e===COMPONENTS?` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";warn$1(`Failed to resolve ${e.slice(0,-1)}: ${t}${y}`)}return d}else warn$1(`resolve${capitalize$2(e.slice(0,-1))} can only be used in render() or setup().`)}function resolve$2(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize$2(camelize(t))])}function renderList(e,t,n,o){let l;const a=n&&n[o],d=isArray$a(e);if(d||isString$2(e)){const y=d&&isReactive(e);let w=!1,_=!1;y&&(w=!isShallow(e),_=isReadonly(e),e=shallowReadArray(e)),l=new Array(e.length);for(let S=0,x=e.length;St(y,w,void 0,a&&a[w]));else{const y=Object.keys(e);l=new Array(y.length);for(let w=0,_=y.length;w<_;w++){const S=y[w];l[w]=t(e[S],S,w,a&&a[w])}}else l=[];return n&&(n[o]=l),l}function createSlots(e,t){for(let n=0;n{const a=o.fn(...l);return a&&(a.key=o.key),a}:o.fn)}return e}function renderSlot(e,t,n={},o,l){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce)return t!=="default"&&(n.name=t),openBlock(),createBlock(Fragment,null,[createVNode("slot",n,o&&o())],64);let a=e[t];a&&a.length>1&&(warn$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),a=()=>[]),a&&a._c&&(a._d=!1),openBlock();const d=a&&ensureValidVNode(a(n)),y=n.key||d&&d.key,w=createBlock(Fragment,{key:(y&&!isSymbol$4(y)?y:`_${t}`)+(!d&&o?"_fb":"")},d||(o?o():[]),d&&e._===1?64:-2);return!l&&w.scopeId&&(w.slotScopeIds=[w.scopeId+"-s"]),a&&a._c&&(a._d=!0),w}function ensureValidVNode(e){return e.some(t=>isVNode(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}function toHandlers(e,t){const n={};if(!isObject$3(e))return warn$1("v-on with no argument expects an object value."),n;for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:toHandlerKey(o)]=e[o];return n}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>shallowReadonly(e.props),$attrs:e=>shallowReadonly(e.attrs),$slots:e=>shallowReadonly(e.slots),$refs:e=>shallowReadonly(e.refs),$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick$4.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),isReservedPrefix=e=>e==="_"||e==="$",hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn$3(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:l,props:a,accessCache:d,type:y,appContext:w}=e;if(t==="__isVue")return!0;let _;if(t[0]!=="$"){const B=d[t];if(B!==void 0)switch(B){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(hasSetupBinding(o,t))return d[t]=1,o[t];if(l!==EMPTY_OBJ&&hasOwn$3(l,t))return d[t]=2,l[t];if((_=e.propsOptions[0])&&hasOwn$3(_,t))return d[t]=3,a[t];if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];shouldCacheAccess&&(d[t]=0)}}const S=publicPropertiesMap[t];let x,C;if(S)return t==="$attrs"?(track(e.attrs,"get",""),markAttrsAccessed()):t==="$slots"&&track(e,"get",t),S(e);if((x=y.__cssModules)&&(x=x[t]))return x;if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];if(C=w.config.globalProperties,hasOwn$3(C,t))return C[t];currentRenderingInstance&&(!isString$2(t)||t.indexOf("__v")!==0)&&(l!==EMPTY_OBJ&&isReservedPrefix(t[0])&&hasOwn$3(l,t)?warn$1(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===currentRenderingInstance&&warn$1(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:l,ctx:a}=e;return hasSetupBinding(l,t)?(l[t]=n,!0):l.__isScriptSetup&&hasOwn$3(l,t)?(warn$1(`Cannot mutate - - - - - - + + + + + + + From ca8bc593940351bd01c9dd6216be21ba11cfd180 Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Tue, 19 Aug 2025 15:07:43 +0200 Subject: [PATCH 05/42] show CURRENT_OUT_OF_NOMINAL_DIFFERENCE in cp info box (#2682) --- packages/control/ev/ev.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/control/ev/ev.py b/packages/control/ev/ev.py index 91ed80bb12..ab74e2d326 100644 --- a/packages/control/ev/ev.py +++ b/packages/control/ev/ev.py @@ -354,7 +354,10 @@ def auto_phase_switch(self, delay)[1]) control_parameter.state = ChargepointState.PHASE_SWITCH_DELAY elif condition_msg: - log.debug(f"Keine Phasenumschaltung{condition_msg}") + if condition_msg == self.CURRENT_OUT_OF_NOMINAL_DIFFERENCE: + message = f"Keine Phasenumschaltung{condition_msg}" + else: + log.debug(f"Keine Phasenumschaltung{condition_msg}") else: if condition: # Timer laufen lassen From c11aaf75f9fa79307a9e1822d24d3b784957c714 Mon Sep 17 00:00:00 2001 From: Thomas Papendieck <14850347+tpd-opitz@users.noreply.github.com> Date: Thu, 21 Aug 2025 07:26:48 +0200 Subject: [PATCH 06/42] Update energycharts/tariff.py - add retry on timeout (#2684) * Update tariff.py - add retry on timeout --- .../energycharts/tariff.py | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/packages/modules/electricity_tariffs/energycharts/tariff.py b/packages/modules/electricity_tariffs/energycharts/tariff.py index 7d878e6a55..70668920f6 100644 --- a/packages/modules/electricity_tariffs/energycharts/tariff.py +++ b/packages/modules/electricity_tariffs/energycharts/tariff.py @@ -1,29 +1,59 @@ +import logging +import random +import requests +import time from typing import Dict from datetime import datetime, timedelta - from helpermodules import timecheck - from modules.common import req from modules.common.abstract_device import DeviceDescriptor from modules.common.component_state import TariffState from modules.electricity_tariffs.energycharts.config import EnergyChartsTariffConfiguration from modules.electricity_tariffs.energycharts.config import EnergyChartsTariff +MAX_RETRIES = 10 +MAX_DELAY = 10 +log = logging.getLogger(__name__) + + +def get_tomorrow_last_hour_timestamp() -> int: + tomorrow = datetime.now() + timedelta(days=2) + return int(tomorrow.timestamp()) + -def fetch_prices(config: EnergyChartsTariffConfiguration) -> Dict[int, float]: - tomorrow = datetime.now() + timedelta(1) +def create_request_url(config: EnergyChartsTariffConfiguration) -> str: start_time = timecheck.create_unix_timestamp_current_full_hour() - end_time = int(tomorrow.timestamp()) + end_time = get_tomorrow_last_hour_timestamp() url = f'https://api.energy-charts.info/price?bzn={config.country}&start={start_time}&end={end_time}' - raw_prices = req.get_http_session().get(url).json() - price_arr = [] - for price in raw_prices['price']: - price_arr.append((float(price + (config.surcharge*10))/1000000)) # €/MWh -> €/Wh + Aufschlag + log.debug("fetching tariffs: %s", url) + return url + + +def parse_response(config: EnergyChartsTariffConfiguration, raw_prices: dict) -> Dict[str, float]: prices: Dict[int, float] = {} - prices = dict(zip([str(int(unix_seconds)) for unix_seconds in raw_prices['unix_seconds']], price_arr)) + for timestamp, price_per_MWh in zip(raw_prices['unix_seconds'], raw_prices['price']): + prices[str(int(timestamp))] = float(price_per_MWh + (config.surcharge*10))/1000000 + log.debug("converted prices: %s : %s", len(prices), prices) return prices +def fetch_prices(config: EnergyChartsTariffConfiguration) -> Dict[str, float]: + url = create_request_url(config) + for attempt in range(MAX_RETRIES): + attempt += 1 # one-based indexing + try: + response = req.get_http_session().get(url, timeout=(10, 20)) + response.raise_for_status() + return parse_response(config, response.json()) + except requests.exceptions.Timeout as e: + if MAX_RETRIES > attempt: + delay = (attempt) * random.uniform(attempt, MAX_DELAY) + log.warning(f"Timeout beim Abrufen der Preise (Versuch {attempt}/{MAX_RETRIES}) : {str(e)}" + f", neuer Versuch in {delay:.1f} Sekunden...") + time.sleep(delay) + raise Exception("Timeout beim Abrufen der Preise nach {MAX_RETRIES} Versuchen") + + def create_electricity_tariff(config: EnergyChartsTariff): def updater(): return TariffState(prices=fetch_prices(config.configuration)) From 56e16924b3f6a60f1671bf8ca75f948af61dedb5 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Tue, 19 Aug 2025 08:22:51 +0200 Subject: [PATCH 07/42] fix deprecated meta tag --- packages/modules/web_themes/koala/source/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/web_themes/koala/source/index.html b/packages/modules/web_themes/koala/source/index.html index 14e0fbe404..361ce4e9f9 100644 --- a/packages/modules/web_themes/koala/source/index.html +++ b/packages/modules/web_themes/koala/source/index.html @@ -7,7 +7,7 @@ - + Date: Thu, 21 Aug 2025 09:23:55 +0200 Subject: [PATCH 08/42] optimize group size calculation --- .../source/src/components/BaseCarousel.vue | 47 ++++++++++++------- .../koala/source/src/layouts/MainLayout.vue | 8 +--- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue index c4122bad8b..5a5d0ac250 100644 --- a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue +++ b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue @@ -46,36 +46,46 @@ const currentSlide = ref(0); const animated = ref(true); const carouselRef = ref<{ $el: HTMLElement } | null>(null); const itemRef = ref<(HTMLElement | null)[]>([]); -const groupSize = ref(2); -const updateGroupSize = () => { +const groupSize = computed(() => { if (!itemRef.value[0]) { - groupSize.value = 1; // Fallback to 1 if no items are available - setTimeout(updateGroupSize, 50); - return; + return; // Fallback if no item is present } - const carouselSlideWidth = - carouselRef.value?.$el.querySelector('.q-carousel__slide')?.clientWidth ?? - 0; const itemWidth = itemRef.value[0]?.clientWidth ?? 300; // Fallback - // Get computed padding from the carousel slide element + let carouselSlideWidth = 0; let padding = 0; const slideEl = carouselRef.value?.$el.querySelector('.q-carousel__slide'); if (slideEl) { + carouselSlideWidth = slideEl.clientWidth ?? 0; const style = window.getComputedStyle(slideEl); padding = parseFloat(style.paddingLeft || '0') + parseFloat(style.paddingRight || '0'); - } - groupSize.value = Math.max( + } + const maxGroupSize = Math.max( 1, Math.floor((carouselSlideWidth - padding) / itemWidth), ); -}; + + // Special case: Prevent a second group with only one item, + // if all items would fit side by side without navigation arrows + if ( + props.items.length > maxGroupSize && + props.items.length <= maxGroupSize * 2 && + props.items.length - maxGroupSize === 1 + ) { + // Check if all items would fit side by side + if (props.items.length * itemWidth <= carouselSlideWidth) { + return props.items.length; + } + } + return maxGroupSize; +}); const groupedItems = computed(() => { + const groupSizeValue = groupSize.value ? groupSize.value : props.items.length; return props.items.reduce((resultArray, item, index) => { - const chunkIndex = Math.floor(index / groupSize.value); + const chunkIndex = Math.floor(index / groupSizeValue); if (!resultArray[chunkIndex]) { resultArray[chunkIndex] = []; } @@ -86,14 +96,19 @@ const groupedItems = computed(() => { onMounted(async () => { await nextTick(() => { - updateGroupSize(); - window.addEventListener('resize', updateGroupSize); + window.addEventListener('resize', () => { + // Trigger a re-render by resetting itemRef + itemRef.value = [...itemRef.value]; + }); }); }); watch( () => props.items, - () => updateGroupSize(), + () => { + // Reset itemRef to trigger re-render + itemRef.value = [...itemRef.value]; + }, ); const handleSlideChange = () => { diff --git a/packages/modules/web_themes/koala/source/src/layouts/MainLayout.vue b/packages/modules/web_themes/koala/source/src/layouts/MainLayout.vue index c787fb655a..8dea2e77be 100644 --- a/packages/modules/web_themes/koala/source/src/layouts/MainLayout.vue +++ b/packages/modules/web_themes/koala/source/src/layouts/MainLayout.vue @@ -159,14 +159,8 @@ onMounted(() => { From 1d9ececbae4082a0239efe61fe2cf6e3816e0a90 Mon Sep 17 00:00:00 2001 From: benderl Date: Thu, 21 Aug 2025 10:06:29 +0000 Subject: [PATCH 09/42] Build Web Theme: Koala --- .../{ErrorNotFound-Bhkm54zb.js => ErrorNotFound-DfEklPRR.js} | 2 +- .../assets/{IndexPage-Bex5YD_j.js => IndexPage-DZdkjiJs.js} | 4 ++-- .../assets/{IndexPage-Ckkw4D5a.css => IndexPage-h6LZXkns.css} | 2 +- .../web_themes/koala/web/assets/MainLayout-GpfoR3E8.css | 1 + .../assets/{MainLayout-BMuAZADJ.js => MainLayout-jx0u-kTA.js} | 2 +- .../web_themes/koala/web/assets/MainLayout-laRNFXea.css | 1 - ...lper-aCm0_6bg.js => _plugin-vue_export-helper-UW32PSUV.js} | 2 +- .../koala/web/assets/{index-DQS_YrrO.js => index-BffAdZ7B.js} | 4 ++-- .../assets/{mqtt-store-N-bUJWDJ.js => mqtt-store-2RAlxljy.js} | 2 +- .../web_themes/koala/web/assets/store-init-B2y2b7C6.js | 1 + .../web_themes/koala/web/assets/store-init-WQ5XFokr.js | 1 - packages/modules/web_themes/koala/web/index.html | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) rename packages/modules/web_themes/koala/web/assets/{ErrorNotFound-Bhkm54zb.js => ErrorNotFound-DfEklPRR.js} (88%) rename packages/modules/web_themes/koala/web/assets/{IndexPage-Bex5YD_j.js => IndexPage-DZdkjiJs.js} (76%) rename packages/modules/web_themes/koala/web/assets/{IndexPage-Ckkw4D5a.css => IndexPage-h6LZXkns.css} (99%) create mode 100644 packages/modules/web_themes/koala/web/assets/MainLayout-GpfoR3E8.css rename packages/modules/web_themes/koala/web/assets/{MainLayout-BMuAZADJ.js => MainLayout-jx0u-kTA.js} (99%) delete mode 100644 packages/modules/web_themes/koala/web/assets/MainLayout-laRNFXea.css rename packages/modules/web_themes/koala/web/assets/{_plugin-vue_export-helper-aCm0_6bg.js => _plugin-vue_export-helper-UW32PSUV.js} (99%) rename packages/modules/web_themes/koala/web/assets/{index-DQS_YrrO.js => index-BffAdZ7B.js} (99%) rename packages/modules/web_themes/koala/web/assets/{mqtt-store-N-bUJWDJ.js => mqtt-store-2RAlxljy.js} (99%) create mode 100644 packages/modules/web_themes/koala/web/assets/store-init-B2y2b7C6.js delete mode 100644 packages/modules/web_themes/koala/web/assets/store-init-WQ5XFokr.js diff --git a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-Bhkm54zb.js b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-DfEklPRR.js similarity index 88% rename from packages/modules/web_themes/koala/web/assets/ErrorNotFound-Bhkm54zb.js rename to packages/modules/web_themes/koala/web/assets/ErrorNotFound-DfEklPRR.js index afa486c252..ac4d8c70b0 100644 --- a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-Bhkm54zb.js +++ b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-DfEklPRR.js @@ -1 +1 @@ -import{C as o,a3 as s,F as l,a4 as t,H as n,Q as r}from"./index-DQS_YrrO.js";const a={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({name:"ErrorNotFound",__name:"ErrorNotFound",setup(c){return(d,e)=>(l(),s("div",a,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),n(r,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default}; +import{C as o,a3 as s,F as l,a4 as t,H as n,Q as r}from"./index-BffAdZ7B.js";const a={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({name:"ErrorNotFound",__name:"ErrorNotFound",setup(c){return(d,e)=>(l(),s("div",a,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),n(r,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default}; diff --git a/packages/modules/web_themes/koala/web/assets/IndexPage-Bex5YD_j.js b/packages/modules/web_themes/koala/web/assets/IndexPage-DZdkjiJs.js similarity index 76% rename from packages/modules/web_themes/koala/web/assets/IndexPage-Bex5YD_j.js rename to packages/modules/web_themes/koala/web/assets/IndexPage-DZdkjiJs.js index c5f3b0640c..6456320ffd 100644 --- a/packages/modules/web_themes/koala/web/assets/IndexPage-Bex5YD_j.js +++ b/packages/modules/web_themes/koala/web/assets/IndexPage-DZdkjiJs.js @@ -1,4 +1,4 @@ -var Gg=Object.defineProperty;var Jg=(t,e,n)=>e in t?Gg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ve=(t,e,n)=>Jg(t,typeof e!="symbol"?e+"":e,n);import{i as qo,e as Pn,K as Md,g as Ue,r as N,a as m,o as zt,m as fn,j as cn,R as Pd,h as S,J as xe,t as mi,L as sa,M as Wr,N as Ot,c as ze,w as fe,q as oa,s as aa,d as nt,x as em,O as Td,P as Aa,S as Bn,T as qa,n as Id,U as no,V as Lo,W as tm,X as Is,Y as nm,Z as im,v as ra,l as sm,y as om,_ as am,$ as Fl,a0 as Hr,a1 as Ds,Q as Me,C as be,a2 as Dd,a3 as Q,F as M,a4 as q,a5 as Oe,a6 as Qe,a7 as gt,a8 as re,I as $e,a9 as le,aa as Od,ab as rm,B as lm,ac as Tn,u as ht,ad as Vd,ae as um,af as Ed,z as cm,ag as Ad,ah as dm,ai as In,E as K,G as A,H as C,aj as Ce,ak as fm,al as an,am as Vi,an as qd,ao as hm,p as Ld,ap as si,aq as Nn,ar as gm,f as mm,k as $l,as as jr,at as Ur,au as vm,av as is,aw as pm,ax as zl,ay as To,az as bm,aA as ym,aB as xm,aC as wm,aD as Bl,aE as Nl,aF as _m,aG as Sm,aH as km,aI as Yr,aJ as Zr,aK as Cm}from"./index-DQS_YrrO.js";import{y as _s,j as Os,Q as Mm,z as Wl,A as Pm,B as Hl,u as hn,c as gn,_ as mt,o as wn,h as Rd,s as Fd,C as Tm,D as jl,E as Xr,i as $d,F as Im,G as zd,H as Dm,I as Om,k as Bd,J as Nd,K as Ul,L as Vm,M as Yl,g as Wd,N as Em,O as Am,P as la,w as xn,p as zs,q as Bs,r as di,v as Ns,l as qm,m as Lm,R as Rm,S as Fm,U as $m,V as Zl,t as Lt,T as zm,d as Ii,x as En}from"./_plugin-vue_export-helper-aCm0_6bg.js";import{u as Re}from"./mqtt-store-N-bUJWDJ.js";let La,io=0;const Mt=new Array(256);for(let t=0;t<256;t++)Mt[t]=(t+256).toString(16).substring(1);const Bm=(()=>{const t=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(t!==void 0){if(t.randomBytes!==void 0)return t.randomBytes;if(t.getRandomValues!==void 0)return e=>{const n=new Uint8Array(e);return t.getRandomValues(n),n}}return e=>{const n=[];for(let i=e;i>0;i--)n.push(Math.floor(Math.random()*256));return n}})(),Xl=4096;function fr(){(La===void 0||io+16>Xl)&&(io=0,La=Bm(Xl));const t=Array.prototype.slice.call(La,io,io+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Mt[t[0]]+Mt[t[1]]+Mt[t[2]]+Mt[t[3]]+"-"+Mt[t[4]]+Mt[t[5]]+"-"+Mt[t[6]]+Mt[t[7]]+"-"+Mt[t[8]]+Mt[t[9]]+"-"+Mt[t[10]]+Mt[t[11]]+Mt[t[12]]+Mt[t[13]]+Mt[t[14]]+Mt[t[15]]}let Nm=0;const Wm=["click","keydown"],Hm={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Nm++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function jm(t,e,n,i){const s=qo(Md,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ue(),a=N(null),r=N(null),l=N(null),u=m(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=m(()=>s.currentModel.value===t.name),d=m(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(c.value===!0?" q-tab--active"+(s.tabProps.value.activeClass?" "+s.tabProps.value.activeClass:"")+(s.tabProps.value.activeColor?` text-${s.tabProps.value.activeColor}`:"")+(s.tabProps.value.activeBgColor?` bg-${s.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(t.icon&&t.label&&s.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(t.noCaps===!0||s.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(t.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")),f=m(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(s.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(t.contentClass!==void 0?` ${t.contentClass}`:"")),h=m(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function g(_,y){if(y!==!0&&_?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",_);return}}function p(_){sa(_,[13,32])?g(_,!0):Wr(_)!==!0&&_.keyCode>=35&&_.keyCode<=40&&_.altKey!==!0&&_.metaKey!==!0&&s.onKbdNavigate(_.keyCode,o.$el)===!0&&Ot(_),n("keydown",_)}function v(){const _=s.tabProps.value.narrowIndicator,y=[],x=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&y.push(S(xe,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&y.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&y.push(t.alertIcon!==void 0?S(xe,{class:"q-tab__alert-icon",color:t.alert!==!0?t.alert:void 0,name:t.alertIcon}):S("div",{class:"q-tab__alert"+(t.alert!==!0?` text-${t.alert}`:"")})),_===!0&&y.push(x);const V=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,y))];return _===!1&&V.push(x),V}const b={name:m(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};zt(()=>{s.unregisterTab(b)}),fn(()=>{s.registerTab(b)});function w(_,y){const x={ref:r,class:d.value,tabindex:h.value,role:"tab","aria-selected":c.value===!0?"true":"false","aria-disabled":t.disable===!0?"true":void 0,onClick:g,onKeydown:p,...y};return cn(S(_,x,v()),[[Pd,u.value]])}return{renderTab:w,$tabs:s}}const Ra=ze({name:"QTab",props:Hm,emits:Wm,setup(t,{slots:e,emit:n}){const{renderTab:i}=jm(t,e,n);return()=>i("div")}});let Vs=!1;{const t=document.createElement("div");t.setAttribute("dir","rtl"),Object.assign(t.style,{width:"1px",height:"1px",overflow:"auto"});const e=document.createElement("div");Object.assign(e.style,{width:"1000px",height:"1px"}),document.body.appendChild(t),t.appendChild(e),t.scrollLeft=-1e3,Vs=t.scrollLeft>=0,t.remove()}function Um(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Ym=["left","center","right","justify"],Zm=ze({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Ym.includes(t)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(t,{slots:e,emit:n}){const{proxy:i}=Ue(),{$q:s}=i,{registerTick:o}=_s(),{registerTick:a}=_s(),{registerTick:r}=_s(),{registerTimeout:l,removeTimeout:u}=Os(),{registerTimeout:c,removeTimeout:d}=Os(),f=N(null),h=N(null),g=N(t.modelValue),p=N(!1),v=N(!0),b=N(!1),w=N(!1),_=[],y=N(0),x=N(!1);let V=null,E=null,L;const D=m(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Um(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),I=m(()=>{const R=y.value,Z=g.value;for(let X=0;X`q-tabs__content--align-${p.value===!0?"left":w.value===!0?"justify":t.align}`),T=m(()=>`q-tabs row no-wrap items-center q-tabs--${p.value===!0?"":"not-"}scrollable q-tabs--${t.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${t.outsideArrows===!0?"outside":"inside"} q-tabs--mobile-with${t.mobileArrows===!0?"":"out"}-arrows`+(t.dense===!0?" q-tabs--dense":"")+(t.shrink===!0?" col-shrink":"")+(t.stretch===!0?" self-stretch":"")),H=m(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+F.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),z=m(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),j=m(()=>t.vertical!==!0&&s.lang.rtl===!0),U=m(()=>Vs===!1&&j.value===!0);fe(j,P),fe(()=>t.modelValue,R=>{ee({name:R,setCurrent:!0,skipEmit:!0})}),fe(()=>t.outsideArrows,Y);function ee({name:R,setCurrent:Z,skipEmit:X}){g.value!==R&&(X!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",R),(Z===!0||t["onUpdate:modelValue"]===void 0)&&(ce(g.value,R),g.value=R))}function Y(){o(()=>{f.value&&ae({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function ae(R){if(z.value===void 0||h.value===null)return;const Z=R[z.value.container],X=Math.min(h.value[z.value.scroll],Array.prototype.reduce.call(h.value.children,(We,Pe)=>We+(Pe[z.value.content]||0),0)),De=Z>0&&X>Z;p.value=De,De===!0&&a(P),w.value=ZWe.name.value===R):null,De=Z!=null&&Z!==""?_.find(We=>We.name.value===Z):null;if(qe===!0)qe=!1;else if(X&&De){const We=X.tabIndicatorRef.value,Pe=De.tabIndicatorRef.value;V!==null&&(clearTimeout(V),V=null),We.style.transition="none",We.style.transform="none",Pe.style.transition="none",Pe.style.transform="none";const Ie=We.getBoundingClientRect(),at=Pe.getBoundingClientRect();Pe.style.transform=t.vertical===!0?`translate3d(0,${Ie.top-at.top}px,0) scale3d(1,${at.height?Ie.height/at.height:1},1)`:`translate3d(${Ie.left-at.left}px,0,0) scale3d(${at.width?Ie.width/at.width:1},1,1)`,r(()=>{V=setTimeout(()=>{V=null,Pe.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Pe.style.transform="none"},70)})}De&&p.value===!0&&O(De.rootRef.value)}function O(R){const{left:Z,width:X,top:De,height:We}=h.value.getBoundingClientRect(),Pe=R.getBoundingClientRect();let Ie=t.vertical===!0?Pe.top-De:Pe.left-Z;if(Ie<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Ie),P();return}Ie+=t.vertical===!0?Pe.height-We:Pe.width-X,Ie>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Ie),P())}function P(){const R=h.value;if(R===null)return;const Z=R.getBoundingClientRect(),X=t.vertical===!0?R.scrollTop:Math.abs(R.scrollLeft);j.value===!0?(v.value=Math.ceil(X+Z.width)0):(v.value=X>0,b.value=t.vertical===!0?Math.ceil(X+Z.height){G(R)===!0&&B()},5)}function ue(){J(U.value===!0?Number.MAX_SAFE_INTEGER:0)}function he(){J(U.value===!0?0:Number.MAX_SAFE_INTEGER)}function B(){E!==null&&(clearInterval(E),E=null)}function te(R,Z){const X=Array.prototype.filter.call(h.value.children,at=>at===Z||at.matches&&at.matches(".q-tab.q-focusable")===!0),De=X.length;if(De===0)return;if(R===36)return O(X[0]),X[0].focus(),!0;if(R===35)return O(X[De-1]),X[De-1].focus(),!0;const We=R===(t.vertical===!0?38:37),Pe=R===(t.vertical===!0?40:39),Ie=We===!0?-1:Pe===!0?1:void 0;if(Ie!==void 0){const at=j.value===!0?-1:1,it=X.indexOf(Z)+Ie*at;return it>=0&&itU.value===!0?{get:R=>Math.abs(R.scrollLeft),set:(R,Z)=>{R.scrollLeft=-Z}}:t.vertical===!0?{get:R=>R.scrollTop,set:(R,Z)=>{R.scrollTop=Z}}:{get:R=>R.scrollLeft,set:(R,Z)=>{R.scrollLeft=Z}});function G(R){const Z=h.value,{get:X,set:De}=_e.value;let We=!1,Pe=X(Z);const Ie=R=R)&&(We=!0,Pe=R),De(Z,Pe),P(),We}function Ae(R,Z){for(const X in R)if(R[X]!==Z[X])return!1;return!0}function Xe(){let R=null,Z={matchedLen:0,queryDiff:9999,hrefLen:0};const X=_.filter(Ie=>Ie.routeData?.hasRouterLink.value===!0),{hash:De,query:We}=i.$route,Pe=Object.keys(We).length;for(const Ie of X){const at=Ie.routeData.exact.value===!0;if(Ie.routeData[at===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:it,query:xt,matched:At,href:W}=Ie.routeData.resolvedLink.value,ge=Object.keys(xt).length;if(at===!0){if(it!==De||ge!==Pe||Ae(We,xt)===!1)continue;R=Ie.name.value;break}if(it!==""&&it!==De||ge!==0&&Ae(xt,We)===!1)continue;const Se={matchedLen:At.length,queryDiff:Pe-ge,hrefLen:W.length-it.length};if(Se.matchedLen>Z.matchedLen){R=Ie.name.value,Z=Se;continue}else if(Se.matchedLen!==Z.matchedLen)continue;if(Se.queryDiffZ.hrefLen&&(R=Ie.name.value,Z=Se)}if(R===null&&_.some(Ie=>Ie.routeData===void 0&&Ie.name.value===g.value)===!0){qe=!1;return}ee({name:R,setCurrent:!0})}function Bt(R){if(u(),x.value!==!0&&f.value!==null&&R.target&&typeof R.target.closest=="function"){const Z=R.target.closest(".q-tab");Z&&f.value.contains(Z)===!0&&(x.value=!0,p.value===!0&&O(Z))}}function dt(){l(()=>{x.value=!1},30)}function vt(){It.avoidRouteWatcher===!1?c(Xe):d()}function yt(){if(L===void 0){const R=fe(()=>i.$route.fullPath,vt);L=()=>{R(),L=void 0}}}function Ge(R){_.push(R),y.value++,Y(),R.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const Z=g.value,X=Z!=null&&Z!==""?_.find(De=>De.name.value===Z):null;X&&O(X.rootRef.value)}}):(yt(),R.routeData.hasRouterLink.value===!0&&vt())}function wt(R){_.splice(_.indexOf(R),1),y.value--,Y(),L!==void 0&&R.routeData!==void 0&&(_.every(Z=>Z.routeData===void 0)===!0&&L(),vt())}const It={currentModel:g,tabProps:D,hasFocus:x,hasActiveTab:I,registerTab:Ge,unregisterTab:wt,verifyRouteModel:vt,updateModel:ee,onKbdNavigate:te,avoidRouteWatcher:!1};em(Md,It);function Ut(){V!==null&&clearTimeout(V),B(),L?.()}let Et,qe;return zt(Ut),oa(()=>{Et=L!==void 0,Ut()}),aa(()=>{Et===!0&&(yt(),qe=!0,vt()),Y()}),()=>S("div",{ref:f,class:T.value,role:"tablist",onFocusin:Bt,onFocusout:dt},[S(Mm,{onResize:ae}),S("div",{ref:h,class:H.value,onScroll:P},nt(e.default)),S(xe,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(v.value===!0?"":" q-tabs__arrow--faded"),name:t.leftIcon||s.iconSet.tabs[t.vertical===!0?"up":"left"],onMousedownPassive:ue,onTouchstartPassive:ue,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B}),S(xe,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(b.value===!0?"":" q-tabs__arrow--faded"),name:t.rightIcon||s.iconSet.tabs[t.vertical===!0?"down":"right"],onMousedownPassive:he,onTouchstartPassive:he,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B})])}});function Xm(t){const e=[.06,6,50];return typeof t=="string"&&t.length&&t.split(":").forEach((n,i)=>{const s=parseFloat(n);s&&(e[i]=s)}),e}const Km=Td({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&Bn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Xm(n),direction:Wl(i),noop:Id,mouseStart(a){Hl(a,o)&&tm(a)&&(no(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(Hl(a,o)){const r=a.target;no(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){Bn.is.firefox===!0&&qa(t,!0);const l=Lo(a);o.event={x:l.left,y:l.top,time:Date.now(),mouse:r===!0,dir:!1}},move(a){if(o.event===void 0)return;if(o.event.dir!==!1){Ot(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Lo(a),u=l.left-o.event.x,c=Math.abs(u),d=l.top-o.event.y,f=Math.abs(d);if(o.event.mouse!==!0){if(co.sensitivity[0]&&(o.event.dir=d<0?"up":"down"),o.direction.horizontal===!0&&c>f&&f<100&&h>o.sensitivity[0]&&(o.event.dir=u<0?"left":"right"),o.direction.up===!0&&co.sensitivity[0]&&(o.event.dir="up"),o.direction.down===!0&&c0&&c<100&&g>o.sensitivity[0]&&(o.event.dir="down"),o.direction.left===!0&&c>f&&u<0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="left"),o.direction.right===!0&&c>f&&u>0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="right"),o.event.dir!==!1?(Ot(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Pm(),o.styleCleanup=p=>{o.styleCleanup=void 0,document.body.classList.remove("non-selectable");const v=()=>{document.body.classList.remove("no-pointer-events--children")};p===!0?setTimeout(v,50):v()}),o.handler({evt:a,touch:o.event.mouse!==!0,mouse:o.event.mouse,direction:o.event.dir,duration:r,distance:{x:c,y:f}})):o.end(a)},end(a){o.event!==void 0&&(Aa(o,"temp"),Bn.is.firefox===!0&&qa(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&Ot(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";no(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}Bn.has.touch===!0&&no(o,"main",[[t,"touchstart","touchStart",`passive${i.capture===!0?"Capture":""}`],[t,"touchmove","noop","notPassiveCapture"]])},updated(t,e){const n=t.__qtouchswipe;n!==void 0&&(e.oldValue!==e.value&&(typeof e.value!="function"&&n.end(),n.handler=e.value),n.direction=Wl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(Aa(e,"main"),Aa(e,"temp"),Bn.is.firefox===!0&&qa(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Qm(){let t=Object.create(null);return{getCache:(e,n)=>t[e]===void 0?t[e]=typeof n=="function"?n():n:t[e],setCache(e,n){t[e]=n},hasCache(e){return Object.hasOwnProperty.call(t,e)},clearCache(e){e!==void 0?delete t[e]:t=Object.create(null)}}}const Hd={name:{required:!0},disable:Boolean},Kl={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},nt(e.default))}},jd={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},Ud=["update:modelValue","beforeTransition","transition"];function Yd(){const{props:t,emit:e,proxy:n}=Ue(),{getCache:i}=Qm(),{registerTimeout:s}=Os();let o,a;const r=N(null),l={value:null};function u(z){const j=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(z.direction===j?1:-1))}const c=m(()=>[[Km,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=m(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=m(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=m(()=>`--q-transition-duration: ${t.transitionDuration}ms`),g=m(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=m(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=m(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);fe(()=>t.modelValue,(z,j)=>{const U=y(z)===!0?x(z):-1;a!==!0&&E(U===-1?0:U{e("transition",z,j)},t.transitionDuration))});function b(){L(1)}function w(){L(-1)}function _(z){e("update:modelValue",z)}function y(z){return z!=null&&z!==""}function x(z){return o.findIndex(j=>j.props.name===z&&j.props.disable!==""&&j.props.disable!==!0)}function V(){return o.filter(z=>z.props.disable!==""&&z.props.disable!==!0)}function E(z){const j=z!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(z===-1?d.value:f.value):null;r.value!==j&&(r.value=j)}function L(z,j=l.value){let U=j+z;for(;U!==-1&&U{a=!1});return}U+=z}t.infinite===!0&&o.length!==0&&j!==-1&&j!==o.length&&L(z,z===-1?o.length:-1)}function D(){const z=x(t.modelValue);return l.value!==z&&(l.value=z),!0}function I(){const z=y(t.modelValue)===!0&&D()&&o[l.value];return t.keepAlive===!0?[S(im,p.value,[S(v.value===!0?i(g.value,()=>({...Kl,name:g.value})):Kl,{key:g.value,style:h.value},()=>z)])]:[S("div",{class:"q-panel scroll",style:h.value,key:g.value,role:"tabpanel"},[z])]}function F(){if(o.length!==0)return t.animated===!0?[S(Is,{name:r.value},I)]:I()}function T(z){return o=nm(nt(z.default,[])).filter(j=>j.props!==null&&j.props.slot===void 0&&y(j.props.name)===!0),o.length}function H(){return o}return Object.assign(n,{next:b,previous:w,goTo:_}),{panelIndex:l,panelDirectives:c,updatePanelsList:T,updatePanelIndex:D,getPanelContent:F,getEnabledPanels:V,getPanels:H,isValidPanelName:y,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:_,nextPanel:b,previousPanel:w}}const Fa=ze({name:"QTabPanel",props:Hd,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},nt(e.default))}}),Gm=ze({name:"QTabPanels",props:{...jd,...hn},emits:Ud,setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Yd(),r=m(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ra("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),Jm=ze({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=qo(sm,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(qo(om,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=m(()=>{const r=(i.header.space===!0?i.header.size:0)+(i.footer.space===!0?i.footer.size:0);if(typeof t.styleFn=="function"){const l=i.isContainer.value===!0?i.containerHeight.value:n.screen.height;return t.styleFn(r,l)}return{minHeight:i.isContainer.value===!0?i.containerHeight.value-r+"px":n.screen.height===0?r!==0?`calc(100vh - ${r}px)`:"100vh":n.screen.height-r+"px"}}),a=m(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},nt(e.default))}}),Zd=ze({name:"QCarouselSlide",props:{...Hd,imgSrc:String},setup(t,{slots:e}){const n=m(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},nt(e.default))}}),ev=ze({name:"QCarouselControl",props:{position:{type:String,default:"bottom-right",validator:t=>["top-right","top-left","bottom-right","bottom-left","top","right","bottom","left"].includes(t)},offset:{type:Array,default:()=>[18,18],validator:t=>t.length===2}},setup(t,{slots:e}){const n=m(()=>`q-carousel__control absolute absolute-${t.position}`),i=m(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},nt(e.default))}});let ss=0;const Xd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Kd=["update:fullscreen","fullscreen"];function Qd(){const t=Ue(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=N(!1);am(t)===!0&&fe(()=>i.$route.fullPath,()=>{e.noRouteFullscreenExit!==!0&&c()}),fe(()=>e.fullscreen,d=>{r.value!==d&&l()}),fe(r,d=>{n("update:fullscreen",d),n("fullscreen",d)});function l(){r.value===!0?c():u()}function u(){r.value!==!0&&(r.value=!0,a=i.$el.parentNode,a.replaceChild(o,i.$el),document.body.appendChild(i.$el),ss++,ss===1&&document.body.classList.add("q-body--fullscreen-mixin"),s={handler:c},Fl.add(s))}function c(){r.value===!0&&(s!==void 0&&(Fl.remove(s),s=void 0),a.replaceChild(i.$el,o),r.value=!1,ss=Math.max(0,ss-1),ss===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Hr(()=>{o=document.createElement("span")}),fn(()=>{e.fullscreen===!0&&u()}),zt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const tv=["top","right","bottom","left"],nv=["regular","flat","outline","push","unelevated"],Gd=ze({name:"QCarousel",props:{...hn,...jd,...Xd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>nv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>tv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Kd,...Ud],setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=gn(t,n);let s=null,o;const{updatePanelsList:a,getPanelContent:r,panelDirectives:l,goToPanel:u,previousPanel:c,nextPanel:d,getEnabledPanels:f,panelIndex:h}=Yd(),{inFullscreen:g}=Qd(),p=m(()=>g.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=m(()=>t.vertical===!0?"vertical":"horizontal"),b=m(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),w=m(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(g.value===!0?" fullscreen":"")+(i.value===!0?" q-carousel--dark q-dark":"")+(t.arrows===!0?` q-carousel--arrows-${v.value}`:"")+(t.navigation===!0?` q-carousel--navigation-${b.value}`:"")),_=m(()=>{const I=[t.prevIcon||n.iconSet.carousel[t.vertical===!0?"up":"left"],t.nextIcon||n.iconSet.carousel[t.vertical===!0?"down":"right"]];return t.vertical===!1&&n.lang.rtl===!0?I.reverse():I}),y=m(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),x=m(()=>t.navigationActiveIcon||y.value),V=m(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));fe(()=>t.modelValue,()=>{t.autoplay&&E()}),fe(()=>t.autoplay,I=>{I?E():s!==null&&(clearTimeout(s),s=null)});function E(){const I=Ds(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,I>=0?d():c()},I)}fn(()=>{t.autoplay&&E()}),zt(()=>{s!==null&&clearTimeout(s)});function L(I,F){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${I} q-carousel__navigation--${b.value}`+(t.controlColor!==void 0?` text-${t.controlColor}`:"")},[S("div",{class:"q-carousel__navigation-inner flex flex-center no-wrap"},f().map(F))])}function D(){const I=[];if(t.navigation===!0){const F=e["navigation-icon"]!==void 0?e["navigation-icon"]:H=>S(Me,{key:"nav"+H.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${H.active===!0?"":"in"}active`,...H.btnProps,onClick:H.onClick}),T=o-1;I.push(L("buttons",(H,z)=>{const j=H.props.name,U=h.value===z;return F({index:z,maxIndex:T,name:j,active:U,btnProps:{icon:U===!0?x.value:y.value,size:"sm",...V.value},onClick:()=>{u(j)}})}))}else if(t.thumbnails===!0){const F=t.controlColor!==void 0?` text-${t.controlColor}`:"";I.push(L("thumbnails",T=>{const H=T.props;return S("img",{key:"tmb#"+H.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${H.name===t.modelValue?"":"in"}active`+F,src:H.imgSrc||H["img-src"],onClick:()=>{u(H.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&I.push(S("div",{key:"prev",class:`q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--${v.value} absolute flex flex-center`},[S(Me,{icon:_.value[0],...V.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:w.value,style:p.value},[ra("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(D())))}}),iv={class:"svg-container"},sv=["viewBox"],ov={id:"layer1",style:{display:"inline"}},av=["d"],rv={id:"layer2",style:{display:"inline"}},lv=["cx","cy","r"],uv=["transform","onClick"],cv=["id"],dv=["x","y","width","height"],fv=["id"],hv=["x","y","width","height","rx","ry"],gv=["x","y","width","height","rx","ry"],mv=["clip-path"],vv=["id","x","y"],pv=["id","values"],bv=["id","x","y"],yv=["transform"],xv=["r"],wv=["r"],_v=["r","clip-path"],Sv=["href","x","y","height","width"],kv=be({__name:"EnergyFlowChart",setup(t){Dd(R=>({"7061f1f7":s.value,"7c22ee07":r.value}));const e=Re(),n=N({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=m(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=m(()=>n.value.strokeWidth),o=m(()=>n.value.circleRadius),a=m(()=>n.value.circleRadius),r=m(()=>`${n.value.textSize}px`),l=R=>{let Z={...R};return Z.textValue&&(Z.textValue=Z.textValue.replace(/^-/,"")),Z.value&&(Z.value=Math.abs(Z.value)),Z.scaledValue&&(Z.scaledValue=Math.abs(Z.scaledValue)),Z},u=m(()=>e.getGridPower("object")),c=m(()=>Number(u.value.value)>0),d=m(()=>Number(u.value.value)<0),f=m(()=>e.batteryTotalPower("object")),h=m(()=>Number(e.batteryTotalPower("value"))<0),g=m(()=>Number(e.batteryTotalPower("value"))>0),p=m(()=>Number(e.batterySocTotal)/100),v=m(()=>e.getHomePower("object")),b=m(()=>Number(v.value.value)>0),w=m(()=>Number(v.value.value)<0),_=m(()=>e.getPvPower("object")),y=m(()=>{const R=Number(_.value.value);return Math.abs(R)>=50}),x=m(()=>e.chargePointIds),V=m(()=>e.chargePointName(x.value[0])||"---"),E=m(()=>e.chargePointName(x.value[1])||"---"),L=m(()=>e.chargePointName(x.value[2])||"---"),D=m(()=>x.value.length>0?e.chargePointPower(x.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),I=m(()=>x.value.length>0?e.chargePointPower(x.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),F=m(()=>x.value.length>0?e.chargePointPower(x.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=m(()=>Number(D.value.value)>0),H=m(()=>Number(D.value.value)<0),z=m(()=>Number(I.value.value)>0),j=m(()=>Number(I.value.value)<0),U=m(()=>Number(F.value.value)>0),ee=m(()=>Number(F.value.value)<0),Y=R=>{switch(R){case"instant_charging":return{label:"Sofort",class:"danger"};case"pv_charging":return{label:"PV",class:"success"};case"scheduled_charging":return{label:"Zielladen",class:"primary"};case"time_charging":return{label:"Zeitladen",class:"warning"};case"eco_charging":return{label:"Eco",class:"secondary"};case"stop":return{label:"Stop",class:"dark"};default:return{label:"Stop",class:"dark"}}},ae=m(()=>e.chargePointPlugState(x.value[0])),ce=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[0]);return Y(R.value||"")}),O=m(()=>e.chargePointConnectedVehicleInfo(x.value[0]).value?.name||"---"),P=m(()=>e.chargePointConnectedVehicleSoc(x.value[0])),J=m(()=>e.chargePointPlugState(x.value[1])),ue=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[1]);return Y(R.value||"")}),he=m(()=>e.chargePointConnectedVehicleInfo(x.value[1]).value?.name||"---"),B=m(()=>e.chargePointConnectedVehicleSoc(x.value[1])),te=m(()=>e.chargePointPlugState(x.value[2])),_e=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[2]);return Y(R.value||"")}),G=m(()=>e.chargePointConnectedVehicleInfo(x.value[2]).value?.name||"---"),Ae=m(()=>e.chargePointConnectedVehicleSoc(x.value[2])),Xe=m(()=>e.chargePointSumPower("object")),Bt=m(()=>Number(Xe.value.value)<0),dt=m(()=>Number(Xe.value.value)>0),vt=m(()=>{const R=[];return R.push({id:"grid",class:{base:"grid",valueLabel:d.value?"fill-success":c.value?"fill-danger":"",animated:c.value,animatedReverse:d.value},position:{row:0,column:0},label:["EVU",l(u.value).textValue],icon:"icons/owbGrid.svg"}),R.push({id:"home",class:{base:"home",valueLabel:"",animated:w.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&R.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:y.value,animatedReverse:!1},position:{row:1,column:0},label:["PV",l(_.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&R.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:g.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),x.value.length>0&&(x.value.length<=3?(R.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:H.value,animatedReverse:T.value},position:{row:2,column:x.value.length>1?0:1},label:[V.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),ae.value&&R.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+ce.value.class,animated:H.value,animatedReverse:T.value},position:{row:3,column:x.value.length>1?0:1},label:[O.value||"---",ce.value.label||"---"],soc:(P.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),x.value.length>1&&R.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:j.value,animatedReverse:z.value},position:{row:2,column:x.value.length>2?1:2},label:[E.value,l(I.value).textValue],icon:"icons/owbChargePoint.svg"}),J.value&&R.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+ue.value.class,animated:j.value,animatedReverse:z.value},position:{row:3,column:x.value.length>2?1:2},label:[he.value||"---",ue.value.label||"---"],soc:(B.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),x.value.length>2&&R.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:ee.value,animatedReverse:U.value},position:{row:2,column:2},label:[L.value,l(F.value).textValue],icon:"icons/owbChargePoint.svg"}),te.value&&R.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+_e.value.class,animated:ee.value,animatedReverse:U.value},position:{row:3,column:2},label:[G.value||"---",_e.value.label||"---"],soc:(Ae.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):R.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:Bt.value,animatedReverse:dt.value},position:{row:2,column:1},label:["Ladepunkte",l(Xe.value).textValue],icon:"icons/owbChargePoint.svg"})),R}),yt=m(()=>x.value?.length>0?x.value.length>3?3:4:3);fe(yt,R=>{n.value.numRows=R},{immediate:!0});const Ge=R=>{const Z=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,De=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-Z;return R*(De/(n.value.numRows-1))+Z},wt=R=>{const Z=n.value.xMin+n.value.strokeWidth+qe.value/2,De=n.value.xMax-n.value.strokeWidth-qe.value/2-Z;return R*(De/(n.value.numColumns-1))+Z},It=R=>{const Z=wt(R);return R<(n.value.numColumns-1)/2?Z+qe.value/2-n.value.circleRadius:R>(n.value.numColumns-1)/2?Z-qe.value/2+n.value.circleRadius:Z},Ut=R=>{const Z=document.getElementById(R);if(Z==null||!(Z instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const X=Z.getBBox();return{x:X.x,y:X.y,width:X.width,height:X.height}},Et=R=>{const Z=document.querySelector(`#${R}`);Z&&Z.beginElement()},qe=m(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return(R,Z)=>(M(),Q("div",iv,[(M(),Q("svg",{viewBox:i.value,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[q("g",ov,[(M(!0),Q(Oe,null,Qe(vt.value,X=>(M(),Q("path",{key:X.id,class:gt([X.class.base,{animated:X.class.animated},{animatedReverse:X.class.animatedReverse}]),d:X.class.base!=="vehicle"?`M ${It(X.position.column)}, ${Ge(X.position.row)} ${wt(1)}, ${Ge(1)}`:`M ${It(X.position.column)}, ${Ge(X.position.row)} ${It(X.position.column)}, ${Ge(X.position.row-1)}`},null,10,av))),128))]),q("g",rv,[q("circle",{id:"center",cx:wt(1),cy:Ge(1),r:n.value.circleRadius/3},null,8,lv),(M(!0),Q(Oe,null,Qe(vt.value,X=>(M(),Q("g",{key:X.id,class:gt(X.class.base),transform:`translate(${wt(X.position.column)}, ${Ge(X.position.row)})`,onClick:De=>Et(`animate-label-${X.id}`)},[q("defs",null,[X.soc?(M(),Q("clipPath",{key:0,id:`clip-soc-${X.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*X.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*X.soc},null,8,dv)],8,cv)):re("",!0),q("clipPath",{id:`clip-label-${X.id}`},[q("rect",{x:-qe.value/2,y:-n.value.circleRadius,width:qe.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,hv)],8,fv)]),q("rect",{x:-qe.value/2,y:-n.value.circleRadius,width:qe.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv),q("text",{"clip-path":`url(#clip-label-${X.id})`},[q("tspan",{id:`label-${X.id}`,"text-anchor":"start",x:-qe.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Ut(`label-${X.id}`).width>qe.value-2*n.value.circleRadius-2*n.value.strokeWidth?(M(),Q("animate",{key:0,id:`animate-label-${X.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Ut(`label-${X.id}`).width+qe.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,pv)):re("",!0),$e(" "+le(X.label[0]),1)],8,vv),q("tspan",{id:`value-${X.id}`,class:gt(X.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},le(X.label[1]),11,bv)],8,mv),q("g",{transform:`translate(${n.value.circleRadius-qe.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,xv),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:gt({soc:X.soc})},null,10,wv),X.soc?(M(),Q("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${X.id})`},null,8,_v)):re("",!0),q("image",{href:X.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Sv)],8,yv)],10,uv))),128))])],8,sv))]))}}),Cv=mt(kv,[["__scopeId","data-v-62f971c1"]]);/*! +var Gg=Object.defineProperty;var Jg=(t,e,n)=>e in t?Gg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ve=(t,e,n)=>Jg(t,typeof e!="symbol"?e+"":e,n);import{i as qo,e as Pn,K as Md,g as Ue,r as N,a as m,o as zt,m as fn,j as cn,R as Pd,h as S,J as xe,t as mi,L as sa,M as Wr,N as Ot,c as ze,w as fe,q as oa,s as aa,d as nt,x as em,O as Td,P as Aa,S as Bn,T as qa,n as Id,U as no,V as Lo,W as tm,X as Is,Y as nm,Z as im,v as ra,l as sm,y as om,_ as am,$ as Fl,a0 as Hr,a1 as Ds,Q as Me,C as be,a2 as Dd,a3 as Q,F as M,a4 as q,a5 as Oe,a6 as Qe,a7 as gt,a8 as re,I as $e,a9 as le,aa as Od,ab as rm,B as lm,ac as Tn,u as ht,ad as Vd,ae as um,af as Ed,z as cm,ag as Ad,ah as dm,ai as In,E as K,G as A,H as C,aj as Ce,ak as fm,al as an,am as Vi,an as qd,ao as hm,p as Ld,ap as si,aq as Nn,ar as gm,f as mm,k as $l,as as jr,at as Ur,au as vm,av as is,aw as pm,ax as zl,ay as To,az as bm,aA as ym,aB as xm,aC as wm,aD as Bl,aE as Nl,aF as _m,aG as Sm,aH as km,aI as Yr,aJ as Zr,aK as Cm}from"./index-BffAdZ7B.js";import{y as _s,j as Os,Q as Mm,z as Wl,A as Pm,B as Hl,u as hn,c as gn,_ as mt,o as wn,h as Rd,s as Fd,C as Tm,D as jl,E as Xr,i as $d,F as Im,G as zd,H as Dm,I as Om,k as Bd,J as Nd,K as Ul,L as Vm,M as Yl,g as Wd,N as Em,O as Am,P as la,w as xn,p as zs,q as Bs,r as di,v as Ns,l as qm,m as Lm,R as Rm,S as Fm,U as $m,V as Zl,t as Lt,T as zm,d as Ii,x as En}from"./_plugin-vue_export-helper-UW32PSUV.js";import{u as Re}from"./mqtt-store-2RAlxljy.js";let La,io=0;const Mt=new Array(256);for(let t=0;t<256;t++)Mt[t]=(t+256).toString(16).substring(1);const Bm=(()=>{const t=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(t!==void 0){if(t.randomBytes!==void 0)return t.randomBytes;if(t.getRandomValues!==void 0)return e=>{const n=new Uint8Array(e);return t.getRandomValues(n),n}}return e=>{const n=[];for(let i=e;i>0;i--)n.push(Math.floor(Math.random()*256));return n}})(),Xl=4096;function fr(){(La===void 0||io+16>Xl)&&(io=0,La=Bm(Xl));const t=Array.prototype.slice.call(La,io,io+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Mt[t[0]]+Mt[t[1]]+Mt[t[2]]+Mt[t[3]]+"-"+Mt[t[4]]+Mt[t[5]]+"-"+Mt[t[6]]+Mt[t[7]]+"-"+Mt[t[8]]+Mt[t[9]]+"-"+Mt[t[10]]+Mt[t[11]]+Mt[t[12]]+Mt[t[13]]+Mt[t[14]]+Mt[t[15]]}let Nm=0;const Wm=["click","keydown"],Hm={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Nm++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function jm(t,e,n,i){const s=qo(Md,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ue(),a=N(null),r=N(null),l=N(null),u=m(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=m(()=>s.currentModel.value===t.name),d=m(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(c.value===!0?" q-tab--active"+(s.tabProps.value.activeClass?" "+s.tabProps.value.activeClass:"")+(s.tabProps.value.activeColor?` text-${s.tabProps.value.activeColor}`:"")+(s.tabProps.value.activeBgColor?` bg-${s.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(t.icon&&t.label&&s.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(t.noCaps===!0||s.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(t.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")),f=m(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(s.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(t.contentClass!==void 0?` ${t.contentClass}`:"")),h=m(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function g(_,y){if(y!==!0&&_?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",_);return}}function p(_){sa(_,[13,32])?g(_,!0):Wr(_)!==!0&&_.keyCode>=35&&_.keyCode<=40&&_.altKey!==!0&&_.metaKey!==!0&&s.onKbdNavigate(_.keyCode,o.$el)===!0&&Ot(_),n("keydown",_)}function v(){const _=s.tabProps.value.narrowIndicator,y=[],x=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&y.push(S(xe,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&y.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&y.push(t.alertIcon!==void 0?S(xe,{class:"q-tab__alert-icon",color:t.alert!==!0?t.alert:void 0,name:t.alertIcon}):S("div",{class:"q-tab__alert"+(t.alert!==!0?` text-${t.alert}`:"")})),_===!0&&y.push(x);const V=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,y))];return _===!1&&V.push(x),V}const b={name:m(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};zt(()=>{s.unregisterTab(b)}),fn(()=>{s.registerTab(b)});function w(_,y){const x={ref:r,class:d.value,tabindex:h.value,role:"tab","aria-selected":c.value===!0?"true":"false","aria-disabled":t.disable===!0?"true":void 0,onClick:g,onKeydown:p,...y};return cn(S(_,x,v()),[[Pd,u.value]])}return{renderTab:w,$tabs:s}}const Ra=ze({name:"QTab",props:Hm,emits:Wm,setup(t,{slots:e,emit:n}){const{renderTab:i}=jm(t,e,n);return()=>i("div")}});let Vs=!1;{const t=document.createElement("div");t.setAttribute("dir","rtl"),Object.assign(t.style,{width:"1px",height:"1px",overflow:"auto"});const e=document.createElement("div");Object.assign(e.style,{width:"1000px",height:"1px"}),document.body.appendChild(t),t.appendChild(e),t.scrollLeft=-1e3,Vs=t.scrollLeft>=0,t.remove()}function Um(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Ym=["left","center","right","justify"],Zm=ze({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Ym.includes(t)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(t,{slots:e,emit:n}){const{proxy:i}=Ue(),{$q:s}=i,{registerTick:o}=_s(),{registerTick:a}=_s(),{registerTick:r}=_s(),{registerTimeout:l,removeTimeout:u}=Os(),{registerTimeout:c,removeTimeout:d}=Os(),f=N(null),h=N(null),g=N(t.modelValue),p=N(!1),v=N(!0),b=N(!1),w=N(!1),_=[],y=N(0),x=N(!1);let V=null,E=null,L;const D=m(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Um(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),I=m(()=>{const R=y.value,Z=g.value;for(let X=0;X`q-tabs__content--align-${p.value===!0?"left":w.value===!0?"justify":t.align}`),T=m(()=>`q-tabs row no-wrap items-center q-tabs--${p.value===!0?"":"not-"}scrollable q-tabs--${t.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${t.outsideArrows===!0?"outside":"inside"} q-tabs--mobile-with${t.mobileArrows===!0?"":"out"}-arrows`+(t.dense===!0?" q-tabs--dense":"")+(t.shrink===!0?" col-shrink":"")+(t.stretch===!0?" self-stretch":"")),H=m(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+F.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),z=m(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),j=m(()=>t.vertical!==!0&&s.lang.rtl===!0),U=m(()=>Vs===!1&&j.value===!0);fe(j,P),fe(()=>t.modelValue,R=>{ee({name:R,setCurrent:!0,skipEmit:!0})}),fe(()=>t.outsideArrows,Y);function ee({name:R,setCurrent:Z,skipEmit:X}){g.value!==R&&(X!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",R),(Z===!0||t["onUpdate:modelValue"]===void 0)&&(ce(g.value,R),g.value=R))}function Y(){o(()=>{f.value&&ae({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function ae(R){if(z.value===void 0||h.value===null)return;const Z=R[z.value.container],X=Math.min(h.value[z.value.scroll],Array.prototype.reduce.call(h.value.children,(We,Pe)=>We+(Pe[z.value.content]||0),0)),De=Z>0&&X>Z;p.value=De,De===!0&&a(P),w.value=ZWe.name.value===R):null,De=Z!=null&&Z!==""?_.find(We=>We.name.value===Z):null;if(qe===!0)qe=!1;else if(X&&De){const We=X.tabIndicatorRef.value,Pe=De.tabIndicatorRef.value;V!==null&&(clearTimeout(V),V=null),We.style.transition="none",We.style.transform="none",Pe.style.transition="none",Pe.style.transform="none";const Ie=We.getBoundingClientRect(),at=Pe.getBoundingClientRect();Pe.style.transform=t.vertical===!0?`translate3d(0,${Ie.top-at.top}px,0) scale3d(1,${at.height?Ie.height/at.height:1},1)`:`translate3d(${Ie.left-at.left}px,0,0) scale3d(${at.width?Ie.width/at.width:1},1,1)`,r(()=>{V=setTimeout(()=>{V=null,Pe.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Pe.style.transform="none"},70)})}De&&p.value===!0&&O(De.rootRef.value)}function O(R){const{left:Z,width:X,top:De,height:We}=h.value.getBoundingClientRect(),Pe=R.getBoundingClientRect();let Ie=t.vertical===!0?Pe.top-De:Pe.left-Z;if(Ie<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Ie),P();return}Ie+=t.vertical===!0?Pe.height-We:Pe.width-X,Ie>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Ie),P())}function P(){const R=h.value;if(R===null)return;const Z=R.getBoundingClientRect(),X=t.vertical===!0?R.scrollTop:Math.abs(R.scrollLeft);j.value===!0?(v.value=Math.ceil(X+Z.width)0):(v.value=X>0,b.value=t.vertical===!0?Math.ceil(X+Z.height){G(R)===!0&&B()},5)}function ue(){J(U.value===!0?Number.MAX_SAFE_INTEGER:0)}function he(){J(U.value===!0?0:Number.MAX_SAFE_INTEGER)}function B(){E!==null&&(clearInterval(E),E=null)}function te(R,Z){const X=Array.prototype.filter.call(h.value.children,at=>at===Z||at.matches&&at.matches(".q-tab.q-focusable")===!0),De=X.length;if(De===0)return;if(R===36)return O(X[0]),X[0].focus(),!0;if(R===35)return O(X[De-1]),X[De-1].focus(),!0;const We=R===(t.vertical===!0?38:37),Pe=R===(t.vertical===!0?40:39),Ie=We===!0?-1:Pe===!0?1:void 0;if(Ie!==void 0){const at=j.value===!0?-1:1,it=X.indexOf(Z)+Ie*at;return it>=0&&itU.value===!0?{get:R=>Math.abs(R.scrollLeft),set:(R,Z)=>{R.scrollLeft=-Z}}:t.vertical===!0?{get:R=>R.scrollTop,set:(R,Z)=>{R.scrollTop=Z}}:{get:R=>R.scrollLeft,set:(R,Z)=>{R.scrollLeft=Z}});function G(R){const Z=h.value,{get:X,set:De}=_e.value;let We=!1,Pe=X(Z);const Ie=R=R)&&(We=!0,Pe=R),De(Z,Pe),P(),We}function Ae(R,Z){for(const X in R)if(R[X]!==Z[X])return!1;return!0}function Xe(){let R=null,Z={matchedLen:0,queryDiff:9999,hrefLen:0};const X=_.filter(Ie=>Ie.routeData?.hasRouterLink.value===!0),{hash:De,query:We}=i.$route,Pe=Object.keys(We).length;for(const Ie of X){const at=Ie.routeData.exact.value===!0;if(Ie.routeData[at===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:it,query:xt,matched:At,href:W}=Ie.routeData.resolvedLink.value,ge=Object.keys(xt).length;if(at===!0){if(it!==De||ge!==Pe||Ae(We,xt)===!1)continue;R=Ie.name.value;break}if(it!==""&&it!==De||ge!==0&&Ae(xt,We)===!1)continue;const Se={matchedLen:At.length,queryDiff:Pe-ge,hrefLen:W.length-it.length};if(Se.matchedLen>Z.matchedLen){R=Ie.name.value,Z=Se;continue}else if(Se.matchedLen!==Z.matchedLen)continue;if(Se.queryDiffZ.hrefLen&&(R=Ie.name.value,Z=Se)}if(R===null&&_.some(Ie=>Ie.routeData===void 0&&Ie.name.value===g.value)===!0){qe=!1;return}ee({name:R,setCurrent:!0})}function Bt(R){if(u(),x.value!==!0&&f.value!==null&&R.target&&typeof R.target.closest=="function"){const Z=R.target.closest(".q-tab");Z&&f.value.contains(Z)===!0&&(x.value=!0,p.value===!0&&O(Z))}}function dt(){l(()=>{x.value=!1},30)}function vt(){It.avoidRouteWatcher===!1?c(Xe):d()}function yt(){if(L===void 0){const R=fe(()=>i.$route.fullPath,vt);L=()=>{R(),L=void 0}}}function Ge(R){_.push(R),y.value++,Y(),R.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const Z=g.value,X=Z!=null&&Z!==""?_.find(De=>De.name.value===Z):null;X&&O(X.rootRef.value)}}):(yt(),R.routeData.hasRouterLink.value===!0&&vt())}function wt(R){_.splice(_.indexOf(R),1),y.value--,Y(),L!==void 0&&R.routeData!==void 0&&(_.every(Z=>Z.routeData===void 0)===!0&&L(),vt())}const It={currentModel:g,tabProps:D,hasFocus:x,hasActiveTab:I,registerTab:Ge,unregisterTab:wt,verifyRouteModel:vt,updateModel:ee,onKbdNavigate:te,avoidRouteWatcher:!1};em(Md,It);function Ut(){V!==null&&clearTimeout(V),B(),L?.()}let Et,qe;return zt(Ut),oa(()=>{Et=L!==void 0,Ut()}),aa(()=>{Et===!0&&(yt(),qe=!0,vt()),Y()}),()=>S("div",{ref:f,class:T.value,role:"tablist",onFocusin:Bt,onFocusout:dt},[S(Mm,{onResize:ae}),S("div",{ref:h,class:H.value,onScroll:P},nt(e.default)),S(xe,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(v.value===!0?"":" q-tabs__arrow--faded"),name:t.leftIcon||s.iconSet.tabs[t.vertical===!0?"up":"left"],onMousedownPassive:ue,onTouchstartPassive:ue,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B}),S(xe,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(b.value===!0?"":" q-tabs__arrow--faded"),name:t.rightIcon||s.iconSet.tabs[t.vertical===!0?"down":"right"],onMousedownPassive:he,onTouchstartPassive:he,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B})])}});function Xm(t){const e=[.06,6,50];return typeof t=="string"&&t.length&&t.split(":").forEach((n,i)=>{const s=parseFloat(n);s&&(e[i]=s)}),e}const Km=Td({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&Bn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Xm(n),direction:Wl(i),noop:Id,mouseStart(a){Hl(a,o)&&tm(a)&&(no(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(Hl(a,o)){const r=a.target;no(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){Bn.is.firefox===!0&&qa(t,!0);const l=Lo(a);o.event={x:l.left,y:l.top,time:Date.now(),mouse:r===!0,dir:!1}},move(a){if(o.event===void 0)return;if(o.event.dir!==!1){Ot(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Lo(a),u=l.left-o.event.x,c=Math.abs(u),d=l.top-o.event.y,f=Math.abs(d);if(o.event.mouse!==!0){if(co.sensitivity[0]&&(o.event.dir=d<0?"up":"down"),o.direction.horizontal===!0&&c>f&&f<100&&h>o.sensitivity[0]&&(o.event.dir=u<0?"left":"right"),o.direction.up===!0&&co.sensitivity[0]&&(o.event.dir="up"),o.direction.down===!0&&c0&&c<100&&g>o.sensitivity[0]&&(o.event.dir="down"),o.direction.left===!0&&c>f&&u<0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="left"),o.direction.right===!0&&c>f&&u>0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="right"),o.event.dir!==!1?(Ot(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Pm(),o.styleCleanup=p=>{o.styleCleanup=void 0,document.body.classList.remove("non-selectable");const v=()=>{document.body.classList.remove("no-pointer-events--children")};p===!0?setTimeout(v,50):v()}),o.handler({evt:a,touch:o.event.mouse!==!0,mouse:o.event.mouse,direction:o.event.dir,duration:r,distance:{x:c,y:f}})):o.end(a)},end(a){o.event!==void 0&&(Aa(o,"temp"),Bn.is.firefox===!0&&qa(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&Ot(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";no(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}Bn.has.touch===!0&&no(o,"main",[[t,"touchstart","touchStart",`passive${i.capture===!0?"Capture":""}`],[t,"touchmove","noop","notPassiveCapture"]])},updated(t,e){const n=t.__qtouchswipe;n!==void 0&&(e.oldValue!==e.value&&(typeof e.value!="function"&&n.end(),n.handler=e.value),n.direction=Wl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(Aa(e,"main"),Aa(e,"temp"),Bn.is.firefox===!0&&qa(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Qm(){let t=Object.create(null);return{getCache:(e,n)=>t[e]===void 0?t[e]=typeof n=="function"?n():n:t[e],setCache(e,n){t[e]=n},hasCache(e){return Object.hasOwnProperty.call(t,e)},clearCache(e){e!==void 0?delete t[e]:t=Object.create(null)}}}const Hd={name:{required:!0},disable:Boolean},Kl={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},nt(e.default))}},jd={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},Ud=["update:modelValue","beforeTransition","transition"];function Yd(){const{props:t,emit:e,proxy:n}=Ue(),{getCache:i}=Qm(),{registerTimeout:s}=Os();let o,a;const r=N(null),l={value:null};function u(z){const j=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(z.direction===j?1:-1))}const c=m(()=>[[Km,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=m(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=m(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=m(()=>`--q-transition-duration: ${t.transitionDuration}ms`),g=m(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=m(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=m(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);fe(()=>t.modelValue,(z,j)=>{const U=y(z)===!0?x(z):-1;a!==!0&&E(U===-1?0:U{e("transition",z,j)},t.transitionDuration))});function b(){L(1)}function w(){L(-1)}function _(z){e("update:modelValue",z)}function y(z){return z!=null&&z!==""}function x(z){return o.findIndex(j=>j.props.name===z&&j.props.disable!==""&&j.props.disable!==!0)}function V(){return o.filter(z=>z.props.disable!==""&&z.props.disable!==!0)}function E(z){const j=z!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(z===-1?d.value:f.value):null;r.value!==j&&(r.value=j)}function L(z,j=l.value){let U=j+z;for(;U!==-1&&U{a=!1});return}U+=z}t.infinite===!0&&o.length!==0&&j!==-1&&j!==o.length&&L(z,z===-1?o.length:-1)}function D(){const z=x(t.modelValue);return l.value!==z&&(l.value=z),!0}function I(){const z=y(t.modelValue)===!0&&D()&&o[l.value];return t.keepAlive===!0?[S(im,p.value,[S(v.value===!0?i(g.value,()=>({...Kl,name:g.value})):Kl,{key:g.value,style:h.value},()=>z)])]:[S("div",{class:"q-panel scroll",style:h.value,key:g.value,role:"tabpanel"},[z])]}function F(){if(o.length!==0)return t.animated===!0?[S(Is,{name:r.value},I)]:I()}function T(z){return o=nm(nt(z.default,[])).filter(j=>j.props!==null&&j.props.slot===void 0&&y(j.props.name)===!0),o.length}function H(){return o}return Object.assign(n,{next:b,previous:w,goTo:_}),{panelIndex:l,panelDirectives:c,updatePanelsList:T,updatePanelIndex:D,getPanelContent:F,getEnabledPanels:V,getPanels:H,isValidPanelName:y,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:_,nextPanel:b,previousPanel:w}}const Fa=ze({name:"QTabPanel",props:Hd,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},nt(e.default))}}),Gm=ze({name:"QTabPanels",props:{...jd,...hn},emits:Ud,setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Yd(),r=m(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ra("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),Jm=ze({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=qo(sm,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(qo(om,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=m(()=>{const r=(i.header.space===!0?i.header.size:0)+(i.footer.space===!0?i.footer.size:0);if(typeof t.styleFn=="function"){const l=i.isContainer.value===!0?i.containerHeight.value:n.screen.height;return t.styleFn(r,l)}return{minHeight:i.isContainer.value===!0?i.containerHeight.value-r+"px":n.screen.height===0?r!==0?`calc(100vh - ${r}px)`:"100vh":n.screen.height-r+"px"}}),a=m(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},nt(e.default))}}),Zd=ze({name:"QCarouselSlide",props:{...Hd,imgSrc:String},setup(t,{slots:e}){const n=m(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},nt(e.default))}}),ev=ze({name:"QCarouselControl",props:{position:{type:String,default:"bottom-right",validator:t=>["top-right","top-left","bottom-right","bottom-left","top","right","bottom","left"].includes(t)},offset:{type:Array,default:()=>[18,18],validator:t=>t.length===2}},setup(t,{slots:e}){const n=m(()=>`q-carousel__control absolute absolute-${t.position}`),i=m(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},nt(e.default))}});let ss=0;const Xd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Kd=["update:fullscreen","fullscreen"];function Qd(){const t=Ue(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=N(!1);am(t)===!0&&fe(()=>i.$route.fullPath,()=>{e.noRouteFullscreenExit!==!0&&c()}),fe(()=>e.fullscreen,d=>{r.value!==d&&l()}),fe(r,d=>{n("update:fullscreen",d),n("fullscreen",d)});function l(){r.value===!0?c():u()}function u(){r.value!==!0&&(r.value=!0,a=i.$el.parentNode,a.replaceChild(o,i.$el),document.body.appendChild(i.$el),ss++,ss===1&&document.body.classList.add("q-body--fullscreen-mixin"),s={handler:c},Fl.add(s))}function c(){r.value===!0&&(s!==void 0&&(Fl.remove(s),s=void 0),a.replaceChild(i.$el,o),r.value=!1,ss=Math.max(0,ss-1),ss===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Hr(()=>{o=document.createElement("span")}),fn(()=>{e.fullscreen===!0&&u()}),zt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const tv=["top","right","bottom","left"],nv=["regular","flat","outline","push","unelevated"],Gd=ze({name:"QCarousel",props:{...hn,...jd,...Xd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>nv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>tv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Kd,...Ud],setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=gn(t,n);let s=null,o;const{updatePanelsList:a,getPanelContent:r,panelDirectives:l,goToPanel:u,previousPanel:c,nextPanel:d,getEnabledPanels:f,panelIndex:h}=Yd(),{inFullscreen:g}=Qd(),p=m(()=>g.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=m(()=>t.vertical===!0?"vertical":"horizontal"),b=m(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),w=m(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(g.value===!0?" fullscreen":"")+(i.value===!0?" q-carousel--dark q-dark":"")+(t.arrows===!0?` q-carousel--arrows-${v.value}`:"")+(t.navigation===!0?` q-carousel--navigation-${b.value}`:"")),_=m(()=>{const I=[t.prevIcon||n.iconSet.carousel[t.vertical===!0?"up":"left"],t.nextIcon||n.iconSet.carousel[t.vertical===!0?"down":"right"]];return t.vertical===!1&&n.lang.rtl===!0?I.reverse():I}),y=m(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),x=m(()=>t.navigationActiveIcon||y.value),V=m(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));fe(()=>t.modelValue,()=>{t.autoplay&&E()}),fe(()=>t.autoplay,I=>{I?E():s!==null&&(clearTimeout(s),s=null)});function E(){const I=Ds(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,I>=0?d():c()},I)}fn(()=>{t.autoplay&&E()}),zt(()=>{s!==null&&clearTimeout(s)});function L(I,F){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${I} q-carousel__navigation--${b.value}`+(t.controlColor!==void 0?` text-${t.controlColor}`:"")},[S("div",{class:"q-carousel__navigation-inner flex flex-center no-wrap"},f().map(F))])}function D(){const I=[];if(t.navigation===!0){const F=e["navigation-icon"]!==void 0?e["navigation-icon"]:H=>S(Me,{key:"nav"+H.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${H.active===!0?"":"in"}active`,...H.btnProps,onClick:H.onClick}),T=o-1;I.push(L("buttons",(H,z)=>{const j=H.props.name,U=h.value===z;return F({index:z,maxIndex:T,name:j,active:U,btnProps:{icon:U===!0?x.value:y.value,size:"sm",...V.value},onClick:()=>{u(j)}})}))}else if(t.thumbnails===!0){const F=t.controlColor!==void 0?` text-${t.controlColor}`:"";I.push(L("thumbnails",T=>{const H=T.props;return S("img",{key:"tmb#"+H.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${H.name===t.modelValue?"":"in"}active`+F,src:H.imgSrc||H["img-src"],onClick:()=>{u(H.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&I.push(S("div",{key:"prev",class:`q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--${v.value} absolute flex flex-center`},[S(Me,{icon:_.value[0],...V.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:w.value,style:p.value},[ra("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(D())))}}),iv={class:"svg-container"},sv=["viewBox"],ov={id:"layer1",style:{display:"inline"}},av=["d"],rv={id:"layer2",style:{display:"inline"}},lv=["cx","cy","r"],uv=["transform","onClick"],cv=["id"],dv=["x","y","width","height"],fv=["id"],hv=["x","y","width","height","rx","ry"],gv=["x","y","width","height","rx","ry"],mv=["clip-path"],vv=["id","x","y"],pv=["id","values"],bv=["id","x","y"],yv=["transform"],xv=["r"],wv=["r"],_v=["r","clip-path"],Sv=["href","x","y","height","width"],kv=be({__name:"EnergyFlowChart",setup(t){Dd(R=>({"7061f1f7":s.value,"7c22ee07":r.value}));const e=Re(),n=N({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=m(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=m(()=>n.value.strokeWidth),o=m(()=>n.value.circleRadius),a=m(()=>n.value.circleRadius),r=m(()=>`${n.value.textSize}px`),l=R=>{let Z={...R};return Z.textValue&&(Z.textValue=Z.textValue.replace(/^-/,"")),Z.value&&(Z.value=Math.abs(Z.value)),Z.scaledValue&&(Z.scaledValue=Math.abs(Z.scaledValue)),Z},u=m(()=>e.getGridPower("object")),c=m(()=>Number(u.value.value)>0),d=m(()=>Number(u.value.value)<0),f=m(()=>e.batteryTotalPower("object")),h=m(()=>Number(e.batteryTotalPower("value"))<0),g=m(()=>Number(e.batteryTotalPower("value"))>0),p=m(()=>Number(e.batterySocTotal)/100),v=m(()=>e.getHomePower("object")),b=m(()=>Number(v.value.value)>0),w=m(()=>Number(v.value.value)<0),_=m(()=>e.getPvPower("object")),y=m(()=>{const R=Number(_.value.value);return Math.abs(R)>=50}),x=m(()=>e.chargePointIds),V=m(()=>e.chargePointName(x.value[0])||"---"),E=m(()=>e.chargePointName(x.value[1])||"---"),L=m(()=>e.chargePointName(x.value[2])||"---"),D=m(()=>x.value.length>0?e.chargePointPower(x.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),I=m(()=>x.value.length>0?e.chargePointPower(x.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),F=m(()=>x.value.length>0?e.chargePointPower(x.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=m(()=>Number(D.value.value)>0),H=m(()=>Number(D.value.value)<0),z=m(()=>Number(I.value.value)>0),j=m(()=>Number(I.value.value)<0),U=m(()=>Number(F.value.value)>0),ee=m(()=>Number(F.value.value)<0),Y=R=>{switch(R){case"instant_charging":return{label:"Sofort",class:"danger"};case"pv_charging":return{label:"PV",class:"success"};case"scheduled_charging":return{label:"Zielladen",class:"primary"};case"time_charging":return{label:"Zeitladen",class:"warning"};case"eco_charging":return{label:"Eco",class:"secondary"};case"stop":return{label:"Stop",class:"dark"};default:return{label:"Stop",class:"dark"}}},ae=m(()=>e.chargePointPlugState(x.value[0])),ce=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[0]);return Y(R.value||"")}),O=m(()=>e.chargePointConnectedVehicleInfo(x.value[0]).value?.name||"---"),P=m(()=>e.chargePointConnectedVehicleSoc(x.value[0])),J=m(()=>e.chargePointPlugState(x.value[1])),ue=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[1]);return Y(R.value||"")}),he=m(()=>e.chargePointConnectedVehicleInfo(x.value[1]).value?.name||"---"),B=m(()=>e.chargePointConnectedVehicleSoc(x.value[1])),te=m(()=>e.chargePointPlugState(x.value[2])),_e=m(()=>{const R=e.chargePointConnectedVehicleChargeMode(x.value[2]);return Y(R.value||"")}),G=m(()=>e.chargePointConnectedVehicleInfo(x.value[2]).value?.name||"---"),Ae=m(()=>e.chargePointConnectedVehicleSoc(x.value[2])),Xe=m(()=>e.chargePointSumPower("object")),Bt=m(()=>Number(Xe.value.value)<0),dt=m(()=>Number(Xe.value.value)>0),vt=m(()=>{const R=[];return R.push({id:"grid",class:{base:"grid",valueLabel:d.value?"fill-success":c.value?"fill-danger":"",animated:c.value,animatedReverse:d.value},position:{row:0,column:0},label:["EVU",l(u.value).textValue],icon:"icons/owbGrid.svg"}),R.push({id:"home",class:{base:"home",valueLabel:"",animated:w.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&R.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:y.value,animatedReverse:!1},position:{row:1,column:0},label:["PV",l(_.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&R.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:g.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),x.value.length>0&&(x.value.length<=3?(R.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:H.value,animatedReverse:T.value},position:{row:2,column:x.value.length>1?0:1},label:[V.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),ae.value&&R.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+ce.value.class,animated:H.value,animatedReverse:T.value},position:{row:3,column:x.value.length>1?0:1},label:[O.value||"---",ce.value.label||"---"],soc:(P.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),x.value.length>1&&R.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:j.value,animatedReverse:z.value},position:{row:2,column:x.value.length>2?1:2},label:[E.value,l(I.value).textValue],icon:"icons/owbChargePoint.svg"}),J.value&&R.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+ue.value.class,animated:j.value,animatedReverse:z.value},position:{row:3,column:x.value.length>2?1:2},label:[he.value||"---",ue.value.label||"---"],soc:(B.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),x.value.length>2&&R.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:ee.value,animatedReverse:U.value},position:{row:2,column:2},label:[L.value,l(F.value).textValue],icon:"icons/owbChargePoint.svg"}),te.value&&R.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+_e.value.class,animated:ee.value,animatedReverse:U.value},position:{row:3,column:2},label:[G.value||"---",_e.value.label||"---"],soc:(Ae.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):R.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:Bt.value,animatedReverse:dt.value},position:{row:2,column:1},label:["Ladepunkte",l(Xe.value).textValue],icon:"icons/owbChargePoint.svg"})),R}),yt=m(()=>x.value?.length>0?x.value.length>3?3:4:3);fe(yt,R=>{n.value.numRows=R},{immediate:!0});const Ge=R=>{const Z=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,De=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-Z;return R*(De/(n.value.numRows-1))+Z},wt=R=>{const Z=n.value.xMin+n.value.strokeWidth+qe.value/2,De=n.value.xMax-n.value.strokeWidth-qe.value/2-Z;return R*(De/(n.value.numColumns-1))+Z},It=R=>{const Z=wt(R);return R<(n.value.numColumns-1)/2?Z+qe.value/2-n.value.circleRadius:R>(n.value.numColumns-1)/2?Z-qe.value/2+n.value.circleRadius:Z},Ut=R=>{const Z=document.getElementById(R);if(Z==null||!(Z instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const X=Z.getBBox();return{x:X.x,y:X.y,width:X.width,height:X.height}},Et=R=>{const Z=document.querySelector(`#${R}`);Z&&Z.beginElement()},qe=m(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return(R,Z)=>(M(),Q("div",iv,[(M(),Q("svg",{viewBox:i.value,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[q("g",ov,[(M(!0),Q(Oe,null,Qe(vt.value,X=>(M(),Q("path",{key:X.id,class:gt([X.class.base,{animated:X.class.animated},{animatedReverse:X.class.animatedReverse}]),d:X.class.base!=="vehicle"?`M ${It(X.position.column)}, ${Ge(X.position.row)} ${wt(1)}, ${Ge(1)}`:`M ${It(X.position.column)}, ${Ge(X.position.row)} ${It(X.position.column)}, ${Ge(X.position.row-1)}`},null,10,av))),128))]),q("g",rv,[q("circle",{id:"center",cx:wt(1),cy:Ge(1),r:n.value.circleRadius/3},null,8,lv),(M(!0),Q(Oe,null,Qe(vt.value,X=>(M(),Q("g",{key:X.id,class:gt(X.class.base),transform:`translate(${wt(X.position.column)}, ${Ge(X.position.row)})`,onClick:De=>Et(`animate-label-${X.id}`)},[q("defs",null,[X.soc?(M(),Q("clipPath",{key:0,id:`clip-soc-${X.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*X.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*X.soc},null,8,dv)],8,cv)):re("",!0),q("clipPath",{id:`clip-label-${X.id}`},[q("rect",{x:-qe.value/2,y:-n.value.circleRadius,width:qe.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,hv)],8,fv)]),q("rect",{x:-qe.value/2,y:-n.value.circleRadius,width:qe.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv),q("text",{"clip-path":`url(#clip-label-${X.id})`},[q("tspan",{id:`label-${X.id}`,"text-anchor":"start",x:-qe.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Ut(`label-${X.id}`).width>qe.value-2*n.value.circleRadius-2*n.value.strokeWidth?(M(),Q("animate",{key:0,id:`animate-label-${X.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Ut(`label-${X.id}`).width+qe.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,pv)):re("",!0),$e(" "+le(X.label[0]),1)],8,vv),q("tspan",{id:`value-${X.id}`,class:gt(X.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},le(X.label[1]),11,bv)],8,mv),q("g",{transform:`translate(${n.value.circleRadius-qe.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,xv),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:gt({soc:X.soc})},null,10,wv),X.soc?(M(),Q("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${X.id})`},null,8,_v)):re("",!0),q("image",{href:X.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Sv)],8,yv)],10,uv))),128))])],8,sv))]))}}),Cv=mt(kv,[["__scopeId","data-v-62f971c1"]]);/*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela @@ -20,7 +20,7 @@ var Gg=Object.defineProperty;var Jg=(t,e,n)=>e in t?Gg(t,e,{enumerable:!0,config * https://www.chartjs.org * (c) 2023 chartjs-adapter-luxon Contributors * Released under the MIT license - */const s_={datetime:de.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:de.TIME_WITH_SECONDS,minute:de.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};Mf._date.override({_id:"luxon",_create:function(t){return de.fromMillis(t,this.options)},init(t){this.options.locale||(this.options.locale=t.locale)},formats:function(){return s_},parse:function(t,e){const n=this.options,i=typeof t;return t===null||i==="undefined"?null:(i==="number"?t=this._create(t):i==="string"?typeof e=="string"?t=de.fromFormat(t,e,n):t=de.fromISO(t,n):t instanceof Date?t=de.fromJSDate(t,n):i==="object"&&!(t instanceof de)&&(t=de.fromObject(t,n)),t.isValid?t.valueOf():null)},format:function(t,e){const n=this._create(t);return typeof e=="string"?n.toFormat(e):n.toLocaleString(e)},add:function(t,e,n){const i={};return i[n]=e,this._create(t).plus(i).valueOf()},diff:function(t,e,n){return this._create(t).diff(this._create(e)).as(n).valueOf()},startOf:function(t,e,n){if(e==="isoWeek"){n=Math.trunc(Math.min(Math.max(0,n),6));const i=this._create(t);return i.minus({days:(i.weekday-n+7)%7}).startOf("day").valueOf()}return e?this._create(t).startOf(e).valueOf():t},endOf:function(t,e){return this._create(t).endOf(e).valueOf()}});const o_={class:"chart-container"},a_={class:"chart-wrapper"},r_=be({__name:"HistoryChart",props:{showLegend:{type:Boolean}},setup(t){Yn.register(Nf,Li,On,Ps,Uo,Hi,M0,zf);const e=m(()=>o.showLegend),n=Re(),i=dl(),s=wn(),o=t,a=N(null),r=m(()=>a.value?.chart??null),l=y=>{y.data.datasets.forEach((x,V)=>{typeof x.label=="string"&&i.isDatasetHidden(x.label)&&y.hide(V)}),y.update()};fe(()=>a.value?.chart,y=>{y&&l(y)},{immediate:!0});const u=m(()=>{const y=n.chartData,x=Math.floor(Date.now()/1e3);return y.filter(V=>V.timestamp>x-p.value)}),c=m(()=>n.chargePointIds),d=m(()=>n.chargePointName),f=m(()=>{const y=n.getGridId;return y!==void 0?n.getComponentName(y):"Zähler"}),h=m(()=>f.value),g=m(()=>n.vehicleList),p=m(()=>n.themeConfiguration?.history_chart_range||3600),v=m(()=>c.value.map(y=>({label:`${d.value(y)}`,category:"chargepoint",unit:"kW",borderColor:"#4766b5",backgroundColor:"rgba(71, 102, 181, 0.2)",data:u.value.map(x=>({x:x.timestamp*1e3,y:x[`cp${y}-power`]||0})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"}))),b=m(()=>g.value.map(y=>{const x=`ev${y.id}-soc`;if(u.value.some(V=>x in V))return{label:`${y.name} SoC`,category:"vehicle",unit:"%",borderColor:"#9F8AFF",borderWidth:2,borderDash:[10,5],pointRadius:0,pointHoverRadius:4,pointHitRadius:5,data:u.value.map(V=>({x:V.timestamp*1e3,y:Number(V[x]??0)})),fill:!1,yAxisID:"y2"}}).filter(y=>y!==void 0)),w=m(()=>({datasets:[{label:f.value,category:"component",unit:"kW",borderColor:"#a33c42",backgroundColor:"rgba(239,182,188, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y.grid})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Hausverbrauch",category:"component",unit:"kW",borderColor:"#949aa1",backgroundColor:"rgba(148, 154, 161, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["house-power"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"PV ges.",category:"component",unit:"kW",borderColor:"green",backgroundColor:"rgba(144, 238, 144, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["pv-all"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Speicher ges.",category:"component",unit:"kW",borderColor:"#b5a647",backgroundColor:"rgba(181, 166, 71, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["bat-all-power"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Speicher SoC",category:"component",unit:"%",borderColor:"#FFB96E",borderWidth:2,borderDash:[10,5],pointRadius:0,pointHoverRadius:4,pointHitRadius:5,data:u.value.map(y=>({x:y.timestamp*1e3,y:y["bat-all-soc"]})),fill:!1,yAxisID:"y2"},...v.value,...b.value]})),_=m(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,callbacks:{label:y=>`${y.dataset.label}: ${y.formattedValue} ${y.dataset.unit}`}}},scales:{x:{type:"time",time:{unit:"minute",displayFormats:{minute:"HH:mm"}},ticks:{maxTicksLimit:12,source:"auto"},grid:{tickLength:5,color:s.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y:{position:"left",type:"linear",display:!0,title:{display:!0,text:"Leistung [kW]"},ticks:{stepSize:.2,maxTicksLimit:11},grid:{color:s.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y2:{position:"right",type:"linear",display:!0,title:{display:!0,text:"SoC [%]"},min:0,max:100,ticks:{stepSize:10},grid:{display:!1}}}}));return(y,x)=>(M(),Q("div",o_,[q("div",a_,[(M(),K(Ce(Yf),{key:h.value,data:w.value,options:_.value,ref_key:"chartRef",ref:a},null,8,["data","options"]))]),e.value?(M(),K(ox,{key:0,chart:r.value,class:"legend-wrapper q-mt-sm"},null,8,["chart"])):re("",!0)]))}}),l_=mt(r_,[["__scopeId","data-v-2f0b7f99"]]),u_=be({name:"ChartCarousel",__name:"ChartCarousel",setup(t){const e=wn(),n=dl(),i=N(0),s=()=>{n.toggleLegendVisibility()},o=m(()=>n.legendVisible),a=N(!1),r=[{name:"EnergyFlowChart",component:Cv},{name:"HistoryChart",component:l_}],l=N(r[0].name);return fe(()=>a.value,(u,c)=>{!u&&c&&l.value==="HistoryChart"&&i.value++}),(u,c)=>(M(),K(Gd,{modelValue:l.value,"onUpdate:modelValue":c[1]||(c[1]=d=>l.value=d),fullscreen:a.value,"onUpdate:fullscreen":c[2]||(c[2]=d=>a.value=d),swipeable:"","control-color":"primary",padding:"",animated:"",infinite:"",navigation:r.length>1,arrows:r.length>1&&Ce(e).screen.gt.xs,class:"full-width full-height bg-transparent carousel-height"},{control:A(()=>[C(ev,{position:"bottom-right"},{default:A(()=>[l.value==="HistoryChart"?(M(),K(Me,{key:0,size:"sm",class:"q-mr-sm legend-button-text",label:"Legend ein/aus",onClick:s})):re("",!0),C(Me,{push:"",round:"",dense:"","text-color":"primary",icon:a.value?"fullscreen_exit":"fullscreen",onClick:c[0]||(c[0]=d=>a.value=!a.value)},null,8,["icon"])]),_:1})]),default:A(()=>[(M(),Q(Oe,null,Qe(r,d=>C(Zd,{key:`${d.name}-${d.name==="HistoryChart"?i.value:0}`,name:d.name},{default:A(()=>[(M(),K(fm(d.component),{"show-legend":o.value},null,8,["show-legend"]))]),_:2},1032,["name"])),64))]),_:1},8,["modelValue","fullscreen","navigation","arrows"]))}}),c_=mt(u_,[["__scopeId","data-v-85eaf875"]]),yn=ze({name:"QTd",props:{props:Object,autoWidth:Boolean,noHover:Boolean},setup(t,{slots:e}){const n=Ue(),i=m(()=>"q-td"+(t.autoWidth===!0?" q-table--col-auto-width":"")+(t.noHover===!0?" q-td--no-hover":"")+" ");return()=>{if(t.props===void 0)return S("td",{class:i.value},nt(e.default));const s=n.vnode.key,o=(t.props.colsMap!==void 0?t.props.colsMap[s]:null)||t.props.col;if(o===void 0)return;const{row:a}=t.props;return S("td",{class:i.value+o.__tdClass(a),style:o.__tdStyle(a)},nt(e.default))}}});let ko=0;const d_={standard:"fixed-full flex-center",top:"fixed-top justify-center",bottom:"fixed-bottom justify-center",right:"fixed-right items-center",left:"fixed-left items-center"},Nc={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},Gi=ze({name:"QDialog",inheritAttrs:!1,props:{...$d,...Xr,transitionShow:String,transitionHide:String,persistent:Boolean,autoClose:Boolean,allowFocusOutside:Boolean,noEscDismiss:Boolean,noBackdropDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,noShake:Boolean,seamless:Boolean,maximized:Boolean,fullWidth:Boolean,fullHeight:Boolean,square:Boolean,backdropFilter:String,position:{type:String,default:"standard",validator:t=>["standard","top","bottom","left","right"].includes(t)}},emits:[...Rd,"shake","click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){const s=Ue(),o=N(null),a=N(!1),r=N(!1);let l=null,u=null,c,d;const f=m(()=>t.persistent!==!0&&t.noRouteDismiss!==!0&&t.seamless!==!0),{preventBodyScroll:h}=Lm(),{registerTimeout:g}=Os(),{registerTick:p,removeTick:v}=_s(),{transitionProps:b,transitionStyle:w}=zd(t,()=>Nc[t.position][0],()=>Nc[t.position][1]),_=m(()=>w.value+(t.backdropFilter!==void 0?`;backdrop-filter:${t.backdropFilter};-webkit-backdrop-filter:${t.backdropFilter}`:"")),{showPortal:y,hidePortal:x,portalIsAccessible:V,renderPortal:E}=Nd(s,o,he,"dialog"),{hide:L}=Bd({showing:a,hideOnRouteChange:f,handleShow:j,handleHide:U,processOnMount:!0}),{addToHistory:D,removeFromHistory:I}=qm(a,L,f),F=m(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${t.maximized===!0?"maximized":"minimized"} q-dialog__inner--${t.position} ${d_[t.position]}`+(r.value===!0?" q-dialog__inner--animating":"")+(t.fullWidth===!0?" q-dialog__inner--fullwidth":"")+(t.fullHeight===!0?" q-dialog__inner--fullheight":"")+(t.square===!0?" q-dialog__inner--square":"")),T=m(()=>a.value===!0&&t.seamless!==!0),H=m(()=>t.autoClose===!0?{onClick:P}:{}),z=m(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${T.value===!0?"modal":"seamless"}`,i.class]);fe(()=>t.maximized,B=>{a.value===!0&&O(B)}),fe(T,B=>{h(B),B===!0?(Qf(ue),Xf(ae)):(_r(ue),Yo(ae))});function j(B){D(),u=t.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,O(t.maximized),y(),r.value=!0,t.noFocus!==!0?(document.activeElement?.blur(),p(ee)):v(),g(()=>{if(s.proxy.$q.platform.is.ios===!0){if(t.seamless!==!0&&document.activeElement){const{top:te,bottom:_e}=document.activeElement.getBoundingClientRect(),{innerHeight:G}=window,Ae=window.visualViewport!==void 0?window.visualViewport.height:G;te>0&&_e>Ae/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-Ae,_e>=G?1/0:Math.ceil(document.scrollingElement.scrollTop+_e-Ae/2))),document.activeElement.scrollIntoView()}d=!0,o.value.click(),d=!1}y(!0),r.value=!1,n("show",B)},t.transitionDuration)}function U(B){v(),I(),ce(!0),r.value=!0,x(),u!==null&&(((B?.type.indexOf("key")===0?u.closest('[tabindex]:not([tabindex^="-"])'):void 0)||u).focus(),u=null),g(()=>{x(!0),r.value=!1,n("hide",B)},t.transitionDuration)}function ee(B){la(()=>{let te=o.value;if(te!==null){if(B!==void 0){const _e=te.querySelector(B);if(_e!==null){_e.focus({preventScroll:!0});return}}te.contains(document.activeElement)!==!0&&(te=te.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||te.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||te.querySelector("[autofocus], [data-autofocus]")||te,te.focus({preventScroll:!0}))}})}function Y(B){B&&typeof B.focus=="function"?B.focus({preventScroll:!0}):ee(),n("shake");const te=o.value;te!==null&&(te.classList.remove("q-animate--scale"),te.classList.add("q-animate--scale"),l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,o.value!==null&&(te.classList.remove("q-animate--scale"),ee())},170))}function ae(){t.seamless!==!0&&(t.persistent===!0||t.noEscDismiss===!0?t.maximized!==!0&&t.noShake!==!0&&Y():(n("escapeKey"),L()))}function ce(B){l!==null&&(clearTimeout(l),l=null),(B===!0||a.value===!0)&&(O(!1),t.seamless!==!0&&(h(!1),_r(ue),Yo(ae))),B!==!0&&(u=null)}function O(B){B===!0?c!==!0&&(ko<1&&document.body.classList.add("q-body--dialog"),ko++,c=!0):c===!0&&(ko<2&&document.body.classList.remove("q-body--dialog"),ko--,c=!1)}function P(B){d!==!0&&(L(B),n("click",B))}function J(B){t.persistent!==!0&&t.noBackdropDismiss!==!0?L(B):t.noShake!==!0&&Y()}function ue(B){t.allowFocusOutside!==!0&&V.value===!0&&Ed(o.value,B.target)!==!0&&ee('[tabindex]:not([tabindex="-1"])')}Object.assign(s.proxy,{focus:ee,shake:Y,__updateRefocusTarget(B){u=B||null}}),zt(ce);function he(){return S("div",{role:"dialog","aria-modal":T.value===!0?"true":"false",...i,class:z.value},[S(Is,{name:"q-transition--fade",appear:!0},()=>T.value===!0?S("div",{class:"q-dialog__backdrop fixed-full",style:_.value,"aria-hidden":"true",tabindex:-1,onClick:J}):null),S(Is,b.value,()=>a.value===!0?S("div",{ref:o,class:F.value,style:w.value,tabindex:-1,...H.value},nt(e.default)):null)])}return E}});function Wc(t){if(t===!1)return 0;if(t===!0||t===void 0)return 1;const e=parseInt(t,10);return isNaN(e)?0:e}const Vn=Td({name:"close-popup",beforeMount(t,{value:e}){const n={depth:Wc(e),handler(i){n.depth!==0&&setTimeout(()=>{const s=Rm(t);s!==void 0&&Fm(s,i,n.depth)})},handlerKey(i){sa(i,13)===!0&&n.handler(i)}};t.__qclosepopup=n,t.addEventListener("click",n.handler),t.addEventListener("keyup",n.handlerKey)},updated(t,{value:e,oldValue:n}){e!==n&&(t.__qclosepopup.depth=Wc(e))},beforeUnmount(t){const e=t.__qclosepopup;t.removeEventListener("click",e.handler),t.removeEventListener("keyup",e.handlerKey),delete t.__qclosepopup}}),wl=()=>({chargeModes:[{value:"instant_charging",label:"Sofort",color:"negative"},{value:"pv_charging",label:"PV",color:"positive"},{value:"scheduled_charging",label:"Ziel",color:"primary"},{value:"eco_charging",label:"Eco",color:"accent"},{value:"stop",label:"Stop",color:"light"}]}),f_=be({__name:"BaseCarousel",props:{items:{}},setup(t){const e=t,n=wn(),i=N(0),s=N(!0),o=N(null),a=N([]),r=N(2),l=()=>{if(!a.value[0]){r.value=1,setTimeout(l,50);return}const d=o.value?.$el.querySelector(".q-carousel__slide")?.clientWidth??0,f=a.value[0]?.clientWidth??300;let h=0;const g=o.value?.$el.querySelector(".q-carousel__slide");if(g){const p=window.getComputedStyle(g);h=parseFloat(p.paddingLeft||"0")+parseFloat(p.paddingRight||"0")}r.value=Math.max(1,Math.floor((d-h)/f))},u=m(()=>e.items.reduce((d,f,h)=>{const g=Math.floor(h/r.value);return d[g]||(d[g]=[]),d[g].push(f),d},[]));fn(async()=>{await ht(()=>{l(),window.addEventListener("resize",l)})}),fe(()=>e.items,()=>l());const c=()=>{const d=window.scrollY;ht(()=>{window.scrollTo(0,d)})};return(d,f)=>(M(),K(Gd,{ref_key:"carouselRef",ref:o,modelValue:i.value,"onUpdate:modelValue":[f[0]||(f[0]=h=>i.value=h),c],swipeable:"",animated:s.value,"control-color":"primary",infinite:"",padding:"",navigation:u.value.length>1,arrows:u.value.length>1&&Ce(n).screen.gt.xs,class:"carousel-height","transition-next":"slide-left","transition-prev":"slide-right",onMousedown:f[1]||(f[1]=an(()=>{},["prevent"]))},{default:A(()=>[(M(!0),Q(Oe,null,Qe(u.value,(h,g)=>(M(),K(Zd,{key:g,name:g,class:"row no-wrap justify-center carousel-slide"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(h,(p,v)=>(M(),Q("div",{key:p,class:"item-container",ref_for:!0,ref:v===0&&g===0?"itemRef":void 0},[Vi(d.$slots,"item",{item:p},void 0,!0)]))),128))]),_:2},1032,["name"]))),128))]),_:3},8,["modelValue","animated","navigation","arrows"]))}}),_l=mt(f_,[["__scopeId","data-v-4432d848"]]),Hc=/^on[A-Z]/;function h_(){const{attrs:t,vnode:e}=Ue(),n={listeners:N({}),attributes:N({})};function i(){const s={},o={};for(const a in t)a!=="class"&&a!=="style"&&Hc.test(a)===!1&&(s[a]=t[a]);for(const a in e.props)Hc.test(a)===!0&&(o[a]=e.props[a]);n.attributes.value=s,n.listeners.value=o}return qd(i),i(),n}function g_({validate:t,resetValidation:e,requiresQForm:n}){const i=qo(hm,!1);if(i!==!1){const{props:s,proxy:o}=Ue();Object.assign(o,{validate:t,resetValidation:e}),fe(()=>s.disable,a=>{a===!0?(typeof e=="function"&&e(),i.unbindComponent(o)):i.bindComponent(o)}),fn(()=>{s.disable!==!0&&i.bindComponent(o)}),zt(()=>{s.disable!==!0&&i.unbindComponent(o)})}else n===!0&&console.error("Parent QForm not found on useFormChild()!")}const jc=/^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,Uc=/^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,Yc=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Co=/^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,Mo=/^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/,ar={date:t=>/^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(t),time:t=>/^([0-1]?\d|2[0-3]):[0-5]\d$/.test(t),fulltime:t=>/^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t),timeOrFulltime:t=>/^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(t),email:t=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(t),hexColor:t=>jc.test(t),hexaColor:t=>Uc.test(t),hexOrHexaColor:t=>Yc.test(t),rgbColor:t=>Co.test(t),rgbaColor:t=>Mo.test(t),rgbOrRgbaColor:t=>Co.test(t)||Mo.test(t),hexOrRgbColor:t=>jc.test(t)||Co.test(t),hexaOrRgbaColor:t=>Uc.test(t)||Mo.test(t),anyColor:t=>Yc.test(t)||Co.test(t)||Mo.test(t)},m_=[!0,!1,"ondemand"],v_={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],default:!1,validator:t=>m_.includes(t)}};function p_(t,e){const{props:n,proxy:i}=Ue(),s=N(!1),o=N(null),a=N(!1);g_({validate:p,resetValidation:g});let r=0,l;const u=m(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length!==0),c=m(()=>n.disable!==!0&&u.value===!0&&e.value===!1),d=m(()=>n.error===!0||s.value===!0),f=m(()=>typeof n.errorMessage=="string"&&n.errorMessage.length!==0?n.errorMessage:o.value);fe(()=>n.modelValue,()=>{a.value=!0,c.value===!0&&n.lazyRules===!1&&v()});function h(){n.lazyRules!=="ondemand"&&c.value===!0&&a.value===!0&&v()}fe(()=>n.reactiveRules,b=>{b===!0?l===void 0&&(l=fe(()=>n.rules,h,{immediate:!0,deep:!0})):l!==void 0&&(l(),l=void 0)},{immediate:!0}),fe(()=>n.lazyRules,h),fe(t,b=>{b===!0?a.value=!0:c.value===!0&&n.lazyRules!=="ondemand"&&v()});function g(){r++,e.value=!1,a.value=!1,s.value=!1,o.value=null,v.cancel()}function p(b=n.modelValue){if(n.disable===!0||u.value===!1)return!0;const w=++r,_=e.value!==!0?()=>{a.value=!0}:()=>{},y=(V,E)=>{V===!0&&_(),s.value=V,o.value=E||null,e.value=!1},x=[];for(let V=0;V{if(V===void 0||Array.isArray(V)===!1||V.length===0)return w===r&&y(!1),!0;const E=V.find(L=>L===!1||typeof L=="string");return w===r&&y(E!==void 0,E),E===void 0},V=>(w===r&&(console.error(V),y(!0)),!1)))}const v=Ld(p,0);return zt(()=>{l?.(),v.cancel()}),Object.assign(i,{resetValidation:g,validate:p}),si(i,"hasError",()=>d.value),{isDirtyModel:a,hasRules:u,hasError:d,errorMessage:f,validate:p,resetValidation:g}}function $s(t){return t!=null&&(""+t).length!==0}const b_={...hn,...v_,label:String,stackLabel:Boolean,hint:String,hideHint:Boolean,prefix:String,suffix:String,labelColor:String,color:String,bgColor:String,filled:Boolean,outlined:Boolean,borderless:Boolean,standout:[Boolean,String],square:Boolean,loading:Boolean,labelSlot:Boolean,bottomSlots:Boolean,hideBottomSpace:Boolean,rounded:Boolean,dense:Boolean,itemAligned:Boolean,counter:Boolean,clearable:Boolean,clearIcon:String,disable:Boolean,readonly:Boolean,autofocus:Boolean,for:String},ba={...b_,maxlength:[Number,String]},Sl=["update:modelValue","clear","focus","blur"];function kl({requiredForAttr:t=!0,tagProp:e,changeEvent:n=!1}={}){const{props:i,proxy:s}=Ue(),o=gn(i,s.$q),a=Jf({required:t,getValue:()=>i.for});return{requiredForAttr:t,changeEvent:n,tag:e===!0?m(()=>i.tag):{value:"label"},isDark:o,editable:m(()=>i.disable!==!0&&i.readonly!==!0),innerLoading:N(!1),focused:N(!1),hasPopupOpen:!1,splitAttrs:h_(),targetUid:a,rootRef:N(null),targetRef:N(null),controlRef:N(null)}}function Cl(t){const{props:e,emit:n,slots:i,attrs:s,proxy:o}=Ue(),{$q:a}=o;let r=null;t.hasValue===void 0&&(t.hasValue=m(()=>$s(e.modelValue))),t.emitValue===void 0&&(t.emitValue=Y=>{n("update:modelValue",Y)}),t.controlEvents===void 0&&(t.controlEvents={onFocusin:D,onFocusout:I}),Object.assign(t,{clearValue:F,onControlFocusin:D,onControlFocusout:I,focus:E}),t.computedCounter===void 0&&(t.computedCounter=m(()=>{if(e.counter!==!1){const Y=typeof e.modelValue=="string"||typeof e.modelValue=="number"?(""+e.modelValue).length:Array.isArray(e.modelValue)===!0?e.modelValue.length:0,ae=e.maxlength!==void 0?e.maxlength:e.maxValues;return Y+(ae!==void 0?" / "+ae:"")}}));const{isDirtyModel:l,hasRules:u,hasError:c,errorMessage:d,resetValidation:f}=p_(t.focused,t.innerLoading),h=t.floatingLabel!==void 0?m(()=>e.stackLabel===!0||t.focused.value===!0||t.floatingLabel.value===!0):m(()=>e.stackLabel===!0||t.focused.value===!0||t.hasValue.value===!0),g=m(()=>e.bottomSlots===!0||e.hint!==void 0||u.value===!0||e.counter===!0||e.error!==null),p=m(()=>e.filled===!0?"filled":e.outlined===!0?"outlined":e.borderless===!0?"borderless":e.standout?"standout":"standard"),v=m(()=>`q-field row no-wrap items-start q-field--${p.value}`+(t.fieldClass!==void 0?` ${t.fieldClass.value}`:"")+(e.rounded===!0?" q-field--rounded":"")+(e.square===!0?" q-field--square":"")+(h.value===!0?" q-field--float":"")+(w.value===!0?" q-field--labeled":"")+(e.dense===!0?" q-field--dense":"")+(e.itemAligned===!0?" q-field--item-aligned q-item-type":"")+(t.isDark.value===!0?" q-field--dark":"")+(t.getControl===void 0?" q-field--auto-height":"")+(t.focused.value===!0?" q-field--focused":"")+(c.value===!0?" q-field--error":"")+(c.value===!0||t.focused.value===!0?" q-field--highlighted":"")+(e.hideBottomSpace!==!0&&g.value===!0?" q-field--with-bottom":"")+(e.disable===!0?" q-field--disabled":e.readonly===!0?" q-field--readonly":"")),b=m(()=>"q-field__control relative-position row no-wrap"+(e.bgColor!==void 0?` bg-${e.bgColor}`:"")+(c.value===!0?" text-negative":typeof e.standout=="string"&&e.standout.length!==0&&t.focused.value===!0?` ${e.standout}`:e.color!==void 0?` text-${e.color}`:"")),w=m(()=>e.labelSlot===!0||e.label!==void 0),_=m(()=>"q-field__label no-pointer-events absolute ellipsis"+(e.labelColor!==void 0&&c.value!==!0?` text-${e.labelColor}`:"")),y=m(()=>({id:t.targetUid.value,editable:t.editable.value,focused:t.focused.value,floatingLabel:h.value,modelValue:e.modelValue,emitValue:t.emitValue})),x=m(()=>{const Y={};return t.targetUid.value&&(Y.for=t.targetUid.value),e.disable===!0&&(Y["aria-disabled"]="true"),Y});function V(){const Y=document.activeElement;let ae=t.targetRef?.value;ae&&(Y===null||Y.id!==t.targetUid.value)&&(ae.hasAttribute("tabindex")===!0||(ae=ae.querySelector("[tabindex]")),ae!==Y&&ae?.focus({preventScroll:!0}))}function E(){la(V)}function L(){$m(V);const Y=document.activeElement;Y!==null&&t.rootRef.value.contains(Y)&&Y.blur()}function D(Y){r!==null&&(clearTimeout(r),r=null),t.editable.value===!0&&t.focused.value===!1&&(t.focused.value=!0,n("focus",Y))}function I(Y,ae){r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null,!(document.hasFocus()===!0&&(t.hasPopupOpen===!0||t.controlRef===void 0||t.controlRef.value===null||t.controlRef.value.contains(document.activeElement)!==!1))&&(t.focused.value===!0&&(t.focused.value=!1,n("blur",Y)),ae?.())})}function F(Y){Ot(Y),a.platform.is.mobile!==!0?(t.targetRef?.value||t.rootRef.value).focus():t.rootRef.value.contains(document.activeElement)===!0&&document.activeElement.blur(),e.type==="file"&&(t.inputRef.value.value=null),n("update:modelValue",null),t.changeEvent===!0&&n("change",null),n("clear",e.modelValue),ht(()=>{const ae=l.value;f(),l.value=ae})}function T(Y){[13,32].includes(Y.keyCode)&&F(Y)}function H(){const Y=[];return i.prepend!==void 0&&Y.push(S("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:Nn},i.prepend())),Y.push(S("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},z())),c.value===!0&&e.noErrorIcon===!1&&Y.push(U("error",[S(xe,{name:a.iconSet.field.error,color:"negative"})])),e.loading===!0||t.innerLoading.value===!0?Y.push(U("inner-loading-append",i.loading!==void 0?i.loading():[S(gm,{color:e.color})])):e.clearable===!0&&t.hasValue.value===!0&&t.editable.value===!0&&Y.push(U("inner-clearable-append",[S(xe,{class:"q-field__focusable-action",name:e.clearIcon||a.iconSet.field.clear,tabindex:0,role:"button","aria-hidden":"false","aria-label":a.lang.label.clear,onKeyup:T,onClick:F})])),i.append!==void 0&&Y.push(S("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:Nn},i.append())),t.getInnerAppend!==void 0&&Y.push(U("inner-append",t.getInnerAppend())),t.getControlChild!==void 0&&Y.push(t.getControlChild()),Y}function z(){const Y=[];return e.prefix!==void 0&&e.prefix!==null&&Y.push(S("div",{class:"q-field__prefix no-pointer-events row items-center"},e.prefix)),t.getShadowControl!==void 0&&t.hasShadow.value===!0&&Y.push(t.getShadowControl()),t.getControl!==void 0?Y.push(t.getControl()):i.rawControl!==void 0?Y.push(i.rawControl()):i.control!==void 0&&Y.push(S("div",{ref:t.targetRef,class:"q-field__native row",tabindex:-1,...t.splitAttrs.attributes.value,"data-autofocus":e.autofocus===!0||void 0},i.control(y.value))),w.value===!0&&Y.push(S("div",{class:_.value},nt(i.label,e.label))),e.suffix!==void 0&&e.suffix!==null&&Y.push(S("div",{class:"q-field__suffix no-pointer-events row items-center"},e.suffix)),Y.concat(nt(i.default))}function j(){let Y,ae;c.value===!0?d.value!==null?(Y=[S("div",{role:"alert"},d.value)],ae=`q--slot-error-${d.value}`):(Y=nt(i.error),ae="q--slot-error"):(e.hideHint!==!0||t.focused.value===!0)&&(e.hint!==void 0?(Y=[S("div",e.hint)],ae=`q--slot-hint-${e.hint}`):(Y=nt(i.hint),ae="q--slot-hint"));const ce=e.counter===!0||i.counter!==void 0;if(e.hideBottomSpace===!0&&ce===!1&&Y===void 0)return;const O=S("div",{key:ae,class:"q-field__messages col"},Y);return S("div",{class:"q-field__bottom row items-start q-field__bottom--"+(e.hideBottomSpace!==!0?"animated":"stale"),onClick:Nn},[e.hideBottomSpace===!0?O:S(Is,{name:"q-transition--field-message"},()=>O),ce===!0?S("div",{class:"q-field__counter"},i.counter!==void 0?i.counter():t.computedCounter.value):null])}function U(Y,ae){return ae===null?null:S("div",{key:Y,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},ae)}let ee=!1;return oa(()=>{ee=!0}),aa(()=>{ee===!0&&e.autofocus===!0&&o.focus()}),e.autofocus===!0&&fn(()=>{o.focus()}),zt(()=>{r!==null&&clearTimeout(r)}),Object.assign(o,{focus:E,blur:L}),function(){const ae=t.getControl===void 0&&i.control===void 0?{...t.splitAttrs.attributes.value,"data-autofocus":e.autofocus===!0||void 0,...x.value}:x.value;return S(t.tag.value,{ref:t.rootRef,class:[v.value,s.class],style:s.style,...ae},[i.before!==void 0?S("div",{class:"q-field__before q-field__marginal row no-wrap items-center",onClick:Nn},i.before()):null,S("div",{class:"q-field__inner relative-position col self-stretch"},[S("div",{ref:t.controlRef,class:b.value,tabindex:-1,...t.controlEvents},H()),g.value===!0?j():null]),i.after!==void 0?S("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:Nn},i.after()):null])}}const Zc={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},Go={"#":{pattern:"[\\d]",negate:"[^\\d]"},S:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]"},N:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]"},A:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:t=>t.toLocaleUpperCase()},a:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:t=>t.toLocaleLowerCase()},X:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:t=>t.toLocaleUpperCase()},x:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:t=>t.toLocaleLowerCase()}},tg=Object.keys(Go);tg.forEach(t=>{Go[t].regex=new RegExp(Go[t].pattern)});const y_=new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+tg.join("")+"])|(.)","g"),Xc=/[.*+?^${}()|[\]\\]/g,pt="",x_={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean};function w_(t,e,n,i){let s,o,a,r,l,u;const c=N(null),d=N(h());function f(){return t.autogrow===!0||["textarea","text","search","url","tel","password"].includes(t.type)}fe(()=>t.type+t.autogrow,p),fe(()=>t.mask,D=>{if(D!==void 0)v(d.value,!0);else{const I=E(d.value);p(),t.modelValue!==I&&e("update:modelValue",I)}}),fe(()=>t.fillMask+t.reverseFillMask,()=>{c.value===!0&&v(d.value,!0)}),fe(()=>t.unmaskedValue,()=>{c.value===!0&&v(d.value)});function h(){if(p(),c.value===!0){const D=x(E(t.modelValue));return t.fillMask!==!1?L(D):D}return t.modelValue}function g(D){if(D0;H--)I+=pt;F=F.slice(0,T)+I+F.slice(T)}return F}function p(){if(c.value=t.mask!==void 0&&t.mask.length!==0&&f(),c.value===!1){r=void 0,s="",o="";return}const D=Zc[t.mask]===void 0?t.mask:Zc[t.mask],I=typeof t.fillMask=="string"&&t.fillMask.length!==0?t.fillMask.slice(0,1):"_",F=I.replace(Xc,"\\$&"),T=[],H=[],z=[];let j=t.reverseFillMask===!0,U="",ee="";D.replace(y_,(O,P,J,ue,he)=>{if(ue!==void 0){const B=Go[ue];z.push(B),ee=B.negate,j===!0&&(H.push("(?:"+ee+"+)?("+B.pattern+"+)?(?:"+ee+"+)?("+B.pattern+"+)?"),j=!1),H.push("(?:"+ee+"+)?("+B.pattern+")?")}else if(J!==void 0)U="\\"+(J==="\\"?"":J),z.push(J),T.push("([^"+U+"]+)?"+U+"?");else{const B=P!==void 0?P:he;U=B==="\\"?"\\\\\\\\":B.replace(Xc,"\\\\$&"),z.push(B),T.push("([^"+U+"]+)?"+U+"?")}});const Y=new RegExp("^"+T.join("")+"("+(U===""?".":"[^"+U+"]")+"+)?"+(U===""?"":"["+U+"]*")+"$"),ae=H.length-1,ce=H.map((O,P)=>P===0&&t.reverseFillMask===!0?new RegExp("^"+F+"*"+O):P===ae?new RegExp("^"+O+"("+(ee===""?".":ee)+"+)?"+(t.reverseFillMask===!0?"$":F+"*")):new RegExp("^"+O));a=z,r=O=>{const P=Y.exec(t.reverseFillMask===!0?O:O.slice(0,z.length+1));P!==null&&(O=P.slice(1).join(""));const J=[],ue=ce.length;for(let he=0,B=O;hetypeof O=="string"?O:pt).join(""),o=s.split(pt).join(I)}function v(D,I,F){const T=i.value,H=T.selectionEnd,z=T.value.length-H,j=E(D);I===!0&&p();const U=x(j),ee=t.fillMask!==!1?L(U):U,Y=d.value!==ee;T.value!==ee&&(T.value=ee),Y===!0&&(d.value=ee),document.activeElement===T&&ht(()=>{if(ee===o){const ce=t.reverseFillMask===!0?o.length:0;T.setSelectionRange(ce,ce,"forward");return}if(F==="insertFromPaste"&&t.reverseFillMask!==!0){const ce=T.selectionEnd;let O=H-1;for(let P=l;P<=O&&PU.length?1:0:Math.max(0,ee.length-(ee===o?0:Math.min(U.length,z)+1))+1:H;T.setSelectionRange(ce,ce,"forward");return}if(t.reverseFillMask===!0)if(Y===!0){const ce=Math.max(0,ee.length-(ee===o?0:Math.min(U.length,z+1)));ce===1&&H===1?T.setSelectionRange(ce,ce,"forward"):w.rightReverse(T,ce)}else{const ce=ee.length-z;T.setSelectionRange(ce,ce,"backward")}else if(Y===!0){const ce=Math.max(0,s.indexOf(pt),Math.min(U.length,H)-1);w.right(T,ce)}else{const ce=H-1;w.right(T,ce)}});const ae=t.unmaskedValue===!0?E(ee):ee;String(t.modelValue)!==ae&&(t.modelValue!==null||ae!=="")&&n(ae,!0)}function b(D,I,F){const T=x(E(D.value));I=Math.max(0,s.indexOf(pt),Math.min(T.length,I)),l=I,D.setSelectionRange(I,F,"forward")}const w={left(D,I){const F=s.slice(I-1).indexOf(pt)===-1;let T=Math.max(0,I-1);for(;T>=0;T--)if(s[T]===pt){I=T,F===!0&&I++;break}if(T<0&&s[I]!==void 0&&s[I]!==pt)return w.right(D,0);I>=0&&D.setSelectionRange(I,I,"backward")},right(D,I){const F=D.value.length;let T=Math.min(F,I+1);for(;T<=F;T++)if(s[T]===pt){I=T;break}else s[T-1]===pt&&(I=T);if(T>F&&s[I-1]!==void 0&&s[I-1]!==pt)return w.left(D,F);D.setSelectionRange(I,I,"forward")},leftReverse(D,I){const F=g(D.value.length);let T=Math.max(0,I-1);for(;T>=0;T--)if(F[T-1]===pt){I=T;break}else if(F[T]===pt&&(I=T,T===0))break;if(T<0&&F[I]!==void 0&&F[I]!==pt)return w.rightReverse(D,0);I>=0&&D.setSelectionRange(I,I,"backward")},rightReverse(D,I){const F=D.value.length,T=g(F),H=T.slice(0,I+1).indexOf(pt)===-1;let z=Math.min(F,I+1);for(;z<=F;z++)if(T[z-1]===pt){I=z,I>0&&H===!0&&I--;break}if(z>F&&T[I-1]!==void 0&&T[I-1]!==pt)return w.leftReverse(D,F);D.setSelectionRange(I,I,"forward")}};function _(D){e("click",D),u=void 0}function y(D){if(e("keydown",D),Wr(D)===!0||D.altKey===!0)return;const I=i.value,F=I.selectionStart,T=I.selectionEnd;if(D.shiftKey||(u=void 0),D.keyCode===37||D.keyCode===39){D.shiftKey&&u===void 0&&(u=I.selectionDirection==="forward"?F:T);const H=w[(D.keyCode===39?"right":"left")+(t.reverseFillMask===!0?"Reverse":"")];if(D.preventDefault(),H(I,u===F?T:F),D.shiftKey){const z=I.selectionStart;I.setSelectionRange(Math.min(u,z),Math.max(u,z),"forward")}}else D.keyCode===8&&t.reverseFillMask!==!0&&F===T?(w.left(I,F),I.setSelectionRange(I.selectionStart,T,"backward")):D.keyCode===46&&t.reverseFillMask===!0&&F===T&&(w.rightReverse(I,T),I.setSelectionRange(F,I.selectionEnd,"forward"))}function x(D){if(D==null||D==="")return"";if(t.reverseFillMask===!0)return V(D);const I=a;let F=0,T="";for(let H=0;H=0&&T!==-1;z--){const j=I[z];let U=D[T];if(typeof j=="string")H=j+H;else if(U!==void 0&&j.regex.test(U))do H=(j.transform!==void 0?j.transform(U):U)+H,T--,U=D[T];while(F===z&&U!==void 0&&j.regex.test(U));else return H}return H}function E(D){return typeof D!="string"||r===void 0?typeof D=="number"?r(""+D):D:r(D)}function L(D){return o.length-D.length<=0?D:t.reverseFillMask===!0&&D.length!==0?o.slice(0,-D.length)+D:D+o.slice(D.length)}return{innerValue:d,hasMask:c,moveCursorForPaste:b,updateMaskValue:v,onMaskedKeydown:y,onMaskedClick:_}}const ya={name:String};function __(t){return m(()=>({type:"hidden",name:t.name,value:t.modelValue}))}function ng(t={}){return(e,n,i)=>{e[n](S("input",{class:"hidden"+(i||""),...t.value}))}}function ig(t){return m(()=>t.name||t.for)}function S_(t,e){function n(){const i=t.modelValue;try{const s="DataTransfer"in window?new DataTransfer:"ClipboardEvent"in window?new ClipboardEvent("").clipboardData:void 0;return Object(i)===i&&("length"in i?Array.from(i):[i]).forEach(o=>{s.items.add(o)}),{files:s.files}}catch{return{files:void 0}}}return m(()=>{if(t.type==="file")return n()})}const k_=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,C_=/[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u,M_=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,P_=/[a-z0-9_ -]$/i;function sg(t){return function(n){if(n.type==="compositionend"||n.type==="change"){if(n.target.qComposing!==!0)return;n.target.qComposing=!1,t(n)}else n.type==="compositionupdate"&&n.target.qComposing!==!0&&typeof n.data=="string"&&(Bn.is.firefox===!0?P_.test(n.data)===!1:k_.test(n.data)===!0||C_.test(n.data)===!0||M_.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}const og=ze({name:"QInput",inheritAttrs:!1,props:{...ba,...x_,...ya,modelValue:[String,Number,FileList],shadowText:String,type:{type:String,default:"text"},debounce:[String,Number],autogrow:Boolean,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...Sl,"paste","change","keydown","click","animationend"],setup(t,{emit:e,attrs:n}){const{proxy:i}=Ue(),{$q:s}=i,o={};let a=NaN,r,l,u=null,c;const d=N(null),f=ig(t),{innerValue:h,hasMask:g,moveCursorForPaste:p,updateMaskValue:v,onMaskedKeydown:b,onMaskedClick:w}=w_(t,e,U,d),_=S_(t),y=m(()=>$s(h.value)),x=sg(z),V=kl({changeEvent:!0}),E=m(()=>t.type==="textarea"||t.autogrow===!0),L=m(()=>E.value===!0||["text","search","url","tel","password"].includes(t.type)),D=m(()=>{const P={...V.splitAttrs.listeners.value,onInput:z,onPaste:H,onChange:Y,onBlur:ae,onFocus:In};return P.onCompositionstart=P.onCompositionupdate=P.onCompositionend=x,g.value===!0&&(P.onKeydown=b,P.onClick=w),t.autogrow===!0&&(P.onAnimationend=j),P}),I=m(()=>{const P={tabindex:0,"data-autofocus":t.autofocus===!0||void 0,rows:t.type==="textarea"?6:void 0,"aria-label":t.label,name:f.value,...V.splitAttrs.attributes.value,id:V.targetUid.value,maxlength:t.maxlength,disabled:t.disable===!0,readonly:t.readonly===!0};return E.value===!1&&(P.type=t.type),t.autogrow===!0&&(P.rows=1),P});fe(()=>t.type,()=>{d.value&&(d.value.value=t.modelValue)}),fe(()=>t.modelValue,P=>{if(g.value===!0){if(l===!0&&(l=!1,String(P)===a))return;v(P)}else h.value!==P&&(h.value=P,t.type==="number"&&o.hasOwnProperty("value")===!0&&(r===!0?r=!1:delete o.value));t.autogrow===!0&&ht(ee)}),fe(()=>t.autogrow,P=>{P===!0?ht(ee):d.value!==null&&n.rows>0&&(d.value.style.height="auto")}),fe(()=>t.dense,()=>{t.autogrow===!0&&ht(ee)});function F(){la(()=>{const P=document.activeElement;d.value!==null&&d.value!==P&&(P===null||P.id!==V.targetUid.value)&&d.value.focus({preventScroll:!0})})}function T(){d.value?.select()}function H(P){if(g.value===!0&&t.reverseFillMask!==!0){const J=P.target;p(J,J.selectionStart,J.selectionEnd)}e("paste",P)}function z(P){if(!P||!P.target)return;if(t.type==="file"){e("update:modelValue",P.target.files);return}const J=P.target.value;if(P.target.qComposing===!0){o.value=J;return}if(g.value===!0)v(J,!1,P.inputType);else if(U(J),L.value===!0&&P.target===document.activeElement){const{selectionStart:ue,selectionEnd:he}=P.target;ue!==void 0&&he!==void 0&&ht(()=>{P.target===document.activeElement&&J.indexOf(P.target.value)===0&&P.target.setSelectionRange(ue,he)})}t.autogrow===!0&&ee()}function j(P){e("animationend",P),ee()}function U(P,J){c=()=>{u=null,t.type!=="number"&&o.hasOwnProperty("value")===!0&&delete o.value,t.modelValue!==P&&a!==P&&(a=P,J===!0&&(l=!0),e("update:modelValue",P),ht(()=>{a===P&&(a=NaN)})),c=void 0},t.type==="number"&&(r=!0,o.value=P),t.debounce!==void 0?(u!==null&&clearTimeout(u),o.value=P,u=setTimeout(c,t.debounce)):c()}function ee(){requestAnimationFrame(()=>{const P=d.value;if(P!==null){const J=P.parentNode.style,{scrollTop:ue}=P,{overflowY:he,maxHeight:B}=s.platform.is.firefox===!0?{}:window.getComputedStyle(P),te=he!==void 0&&he!=="scroll";te===!0&&(P.style.overflowY="hidden"),J.marginBottom=P.scrollHeight-1+"px",P.style.height="1px",P.style.height=P.scrollHeight+"px",te===!0&&(P.style.overflowY=parseInt(B,10){d.value!==null&&(d.value.value=h.value!==void 0?h.value:"")})}function ce(){return o.hasOwnProperty("value")===!0?o.value:h.value!==void 0?h.value:""}zt(()=>{ae()}),fn(()=>{t.autogrow===!0&&ee()}),Object.assign(V,{innerValue:h,fieldClass:m(()=>`q-${E.value===!0?"textarea":"input"}`+(t.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:m(()=>t.type!=="file"&&typeof t.shadowText=="string"&&t.shadowText.length!==0),inputRef:d,emitValue:U,hasValue:y,floatingLabel:m(()=>y.value===!0&&(t.type!=="number"||isNaN(h.value)===!1)||$s(t.displayValue)),getControl:()=>S(E.value===!0?"textarea":"input",{ref:d,class:["q-field__native q-placeholder",t.inputClass],style:t.inputStyle,...I.value,...D.value,...t.type!=="file"?{value:ce()}:_.value}),getShadowControl:()=>S("div",{class:"q-field__native q-field__shadow absolute-bottom no-pointer-events"+(E.value===!0?"":" text-no-wrap")},[S("span",{class:"invisible"},ce()),S("span",t.shadowText)])});const O=Cl(V);return Object.assign(i,{focus:F,select:T,getNativeElement:()=>d.value}),si(i,"nativeEl",()=>d.value),O}}),Ar=ze({name:"QTh",props:{props:Object,autoWidth:Boolean},emits:["click"],setup(t,{slots:e,emit:n}){const i=Ue(),{proxy:{$q:s}}=i,o=a=>{n("click",a)};return()=>{if(t.props===void 0)return S("th",{class:t.autoWidth===!0?"q-table--col-auto-width":"",onClick:o},nt(e.default));let a,r;const l=i.vnode.key;if(l){if(a=t.props.colsMap[l],a===void 0)return}else a=t.props.col;if(a.sortable===!0){const c=a.align==="right"?"unshift":"push";r=mm(e.default,[]),r[c](S(xe,{class:a.__iconClass,name:s.iconSet.table.arrowUp}))}else r=nt(e.default);const u={class:a.__thClass+(t.autoWidth===!0?" q-table--col-auto-width":""),style:a.headerStyle,onClick:c=>{a.sortable===!0&&t.props.sort(a),o(c)}};return S("th",u,r)}}}),rr=ze({name:"QTr",props:{props:Object,noHover:Boolean},setup(t,{slots:e}){const n=m(()=>"q-tr"+(t.props===void 0||t.props.header===!0?"":" "+t.props.__trClass)+(t.noHover===!0?" q-tr--no-hover":""));return()=>S("tr",{style:t.props?.__trStyle,class:n.value},nt(e.default))}}),T_=["horizontal","vertical","cell","none"],I_=ze({name:"QMarkupTable",props:{...hn,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,wrapCells:Boolean,separator:{type:String,default:"horizontal",validator:t=>T_.includes(t)}},setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),s=m(()=>`q-markup-table q-table__container q-table__card q-table--${t.separator}-separator`+(i.value===!0?" q-table--dark q-table__card--dark q-dark":"")+(t.dense===!0?" q-table--dense":"")+(t.flat===!0?" q-table--flat":"")+(t.bordered===!0?" q-table--bordered":"")+(t.square===!0?" q-table--square":"")+(t.wrapCells===!1?" q-table--no-wrap":""));return()=>S("div",{class:s.value},[S("table",{class:"q-table"},nt(e.default))])}});function ag(t,e){return S("div",t,[S("table",{class:"q-table"},e)])}const rn=1e3,D_=["start","center","end","start-force","center-force","end-force"],rg=Array.prototype.filter,O_=window.getComputedStyle(document.body).overflowAnchor===void 0?Id:function(t,e){t!==null&&(t._qOverflowAnimationFrame!==void 0&&cancelAnimationFrame(t._qOverflowAnimationFrame),t._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(t===null)return;t._qOverflowAnimationFrame=void 0;const n=t.children||[];rg.call(n,s=>s.dataset&&s.dataset.qVsAnchor!==void 0).forEach(s=>{delete s.dataset.qVsAnchor});const i=n[e];i?.dataset&&(i.dataset.qVsAnchor="")}))};function $i(t,e){return t+e}function lr(t,e,n,i,s,o,a,r){const l=t===window?document.scrollingElement||document.documentElement:t,u=s===!0?"offsetWidth":"offsetHeight",c={scrollStart:0,scrollViewSize:-a-r,scrollMaxSize:0,offsetStart:-a,offsetEnd:-r};if(s===!0?(t===window?(c.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,c.scrollViewSize+=document.documentElement.clientWidth):(c.scrollStart=l.scrollLeft,c.scrollViewSize+=l.clientWidth),c.scrollMaxSize=l.scrollWidth,o===!0&&(c.scrollStart=(Vs===!0?c.scrollMaxSize-c.scrollViewSize:0)-c.scrollStart)):(t===window?(c.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,c.scrollViewSize+=document.documentElement.clientHeight):(c.scrollStart=l.scrollTop,c.scrollViewSize+=l.clientHeight),c.scrollMaxSize=l.scrollHeight),n!==null)for(let d=n.previousElementSibling;d!==null;d=d.previousElementSibling)d.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetStart+=d[u]);if(i!==null)for(let d=i.nextElementSibling;d!==null;d=d.nextElementSibling)d.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetEnd+=d[u]);if(e!==t){const d=l.getBoundingClientRect(),f=e.getBoundingClientRect();s===!0?(c.offsetStart+=f.left-d.left,c.offsetEnd-=f.width):(c.offsetStart+=f.top-d.top,c.offsetEnd-=f.height),t!==window&&(c.offsetStart+=c.scrollStart),c.offsetEnd+=c.scrollMaxSize-c.offsetStart}return c}function Kc(t,e,n,i){e==="end"&&(e=(t===window?document.body:t)[n===!0?"scrollWidth":"scrollHeight"]),t===window?n===!0?(i===!0&&(e=(Vs===!0?document.body.scrollWidth-document.documentElement.clientWidth:0)-e),window.scrollTo(e,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,e):n===!0?(i===!0&&(e=(Vs===!0?t.scrollWidth-t.offsetWidth:0)-e),t.scrollLeft=e):t.scrollTop=e}function ds(t,e,n,i){if(n>=i)return 0;const s=e.length,o=Math.floor(n/rn),a=Math.floor((i-1)/rn)+1;let r=t.slice(o,a).reduce($i,0);return n%rn!==0&&(r-=e.slice(o*rn,n).reduce($i,0)),i%rn!==0&&i!==s&&(r-=e.slice(i,a*rn).reduce($i,0)),r}const lg={virtualScrollSliceSize:{type:[Number,String],default:10},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]},ug=Object.keys(lg),qr={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...lg};function cg({virtualScrollLength:t,getVirtualScrollTarget:e,getVirtualScrollEl:n,virtualScrollItemSizeComputed:i}){const s=Ue(),{props:o,emit:a,proxy:r}=s,{$q:l}=r;let u,c,d,f=[],h;const g=N(0),p=N(0),v=N({}),b=N(null),w=N(null),_=N(null),y=N({from:0,to:0}),x=m(()=>o.tableColspan!==void 0?o.tableColspan:100);i===void 0&&(i=m(()=>o.virtualScrollItemSize));const V=m(()=>i.value+";"+o.virtualScrollHorizontal),E=m(()=>V.value+";"+o.virtualScrollSliceRatioBefore+";"+o.virtualScrollSliceRatioAfter);fe(E,()=>{U()}),fe(V,L);function L(){j(c,!0)}function D(O){j(O===void 0?c:O)}function I(O,P){const J=e();if(J==null||J.nodeType===8)return;const ue=lr(J,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd);d!==ue.scrollViewSize&&U(ue.scrollViewSize),T(J,ue,Math.min(t.value-1,Math.max(0,parseInt(O,10)||0)),0,D_.indexOf(P)!==-1?P:c!==-1&&O>c?"end":"start")}function F(){const O=e();if(O==null||O.nodeType===8)return;const P=lr(O,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd),J=t.value-1,ue=P.scrollMaxSize-P.offsetStart-P.offsetEnd-p.value;if(u===P.scrollStart)return;if(P.scrollMaxSize<=0){T(O,P,0,0);return}d!==P.scrollViewSize&&U(P.scrollViewSize),H(y.value.from);const he=Math.floor(P.scrollMaxSize-Math.max(P.scrollViewSize,P.offsetEnd)-Math.min(h[J],P.scrollViewSize/2));if(he>0&&Math.ceil(P.scrollStart)>=he){T(O,P,J,P.scrollMaxSize-P.offsetEnd-f.reduce($i,0));return}let B=0,te=P.scrollStart-P.offsetStart,_e=te;if(te<=ue&&te+P.scrollViewSize>=g.value)te-=g.value,B=y.value.from,_e=te;else for(let G=0;te>=f[G]&&B0&&B-P.scrollViewSize?(B++,_e=te):_e=h[B]+te;T(O,P,B,_e)}function T(O,P,J,ue,he){const B=typeof he=="string"&&he.indexOf("-force")!==-1,te=B===!0?he.replace("-force",""):he,_e=te!==void 0?te:"start";let G=Math.max(0,J-v.value[_e]),Ae=G+v.value.total;Ae>t.value&&(Ae=t.value,G=Math.max(0,Ae-v.value.total)),u=P.scrollStart;const Xe=G!==y.value.from||Ae!==y.value.to;if(Xe===!1&&te===void 0){Y(J);return}const{activeElement:Bt}=document,dt=_.value;Xe===!0&&dt!==null&&dt!==Bt&&dt.contains(Bt)===!0&&(dt.addEventListener("focusout",z),setTimeout(()=>{dt?.removeEventListener("focusout",z)})),O_(dt,J-G);const vt=te!==void 0?h.slice(G,J).reduce($i,0):0;if(Xe===!0){const yt=Ae>=y.value.from&&G<=y.value.to?y.value.to:Ae;y.value={from:G,to:yt},g.value=ds(f,h,0,G),p.value=ds(f,h,Ae,t.value),requestAnimationFrame(()=>{y.value.to!==Ae&&u===P.scrollStart&&(y.value={from:y.value.from,to:Ae},p.value=ds(f,h,Ae,t.value))})}requestAnimationFrame(()=>{if(u!==P.scrollStart)return;Xe===!0&&H(G);const yt=h.slice(G,J).reduce($i,0),Ge=yt+P.offsetStart+g.value,wt=Ge+h[J];let It=Ge+ue;if(te!==void 0){const Ut=yt-vt,Et=P.scrollStart+Ut;It=B!==!0&&EtG.classList&&G.classList.contains("q-virtual-scroll--skip")===!1),ue=J.length,he=o.virtualScrollHorizontal===!0?G=>G.getBoundingClientRect().width:G=>G.offsetHeight;let B=O,te,_e;for(let G=0;G=ue;B--)h[B]=J;const he=Math.floor((t.value-1)/rn);f=[];for(let B=0;B<=he;B++){let te=0;const _e=Math.min((B+1)*rn,t.value);for(let G=B*rn;G<_e;G++)te+=h[G];f.push(te)}c=-1,u=void 0,g.value=ds(f,h,0,y.value.from),p.value=ds(f,h,y.value.to,t.value),O>=0?(H(y.value.from),ht(()=>{I(O)})):ae()}function U(O){if(O===void 0&&typeof window<"u"){const te=e();te!=null&&te.nodeType!==8&&(O=lr(te,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd).scrollViewSize)}d=O;const P=parseFloat(o.virtualScrollSliceRatioBefore)||0,J=parseFloat(o.virtualScrollSliceRatioAfter)||0,ue=1+P+J,he=O===void 0||O<=0?1:Math.ceil(O/i.value),B=Math.max(1,he,Math.ceil((o.virtualScrollSliceSize>0?o.virtualScrollSliceSize:10)/ue));v.value={total:Math.ceil(B*ue),start:Math.ceil(B*P),center:Math.ceil(B*(.5+P)),end:Math.ceil(B*(1+P)),view:he}}function ee(O,P){const J=o.virtualScrollHorizontal===!0?"width":"height",ue={["--q-virtual-scroll-item-"+J]:i.value+"px"};return[O==="tbody"?S(O,{class:"q-virtual-scroll__padding",key:"before",ref:b},[S("tr",[S("td",{style:{[J]:`${g.value}px`,...ue},colspan:x.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"before",ref:b,style:{[J]:`${g.value}px`,...ue}}),S(O,{class:"q-virtual-scroll__content",key:"content",ref:_,tabindex:-1},P.flat()),O==="tbody"?S(O,{class:"q-virtual-scroll__padding",key:"after",ref:w},[S("tr",[S("td",{style:{[J]:`${p.value}px`,...ue},colspan:x.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"after",ref:w,style:{[J]:`${p.value}px`,...ue}})]}function Y(O){c!==O&&(o.onVirtualScroll!==void 0&&a("virtualScroll",{index:O,from:y.value.from,to:y.value.to-1,direction:O{U()});let ce=!1;return oa(()=>{ce=!0}),aa(()=>{if(ce!==!0)return;const O=e();u!==void 0&&O!==void 0&&O!==null&&O.nodeType!==8?Kc(O,u,o.virtualScrollHorizontal,l.lang.rtl):I(c)}),zt(()=>{ae.cancel()}),Object.assign(r,{scrollTo:I,reset:L,refresh:D}),{virtualScrollSliceRange:y,virtualScrollSliceSizeComputed:v,setVirtualScrollSize:U,onVirtualScrollEvt:ae,localResetVirtualScroll:j,padVirtualScroll:ee,scrollTo:I,reset:L,refresh:D}}const V_={list:zs,table:I_},E_=["list","table","__qtable"],A_=ze({name:"QVirtualScroll",props:{...qr,type:{type:String,default:"list",validator:t=>E_.includes(t)},items:{type:Array,default:()=>[]},itemsFn:Function,itemsSize:Number,scrollTarget:Fd},setup(t,{slots:e,attrs:n}){let i;const s=N(null),o=m(()=>t.itemsSize>=0&&t.itemsFn!==void 0?parseInt(t.itemsSize,10):Array.isArray(t.items)?t.items.length:0),{virtualScrollSliceRange:a,localResetVirtualScroll:r,padVirtualScroll:l,onVirtualScrollEvt:u}=cg({virtualScrollLength:o,getVirtualScrollTarget:g,getVirtualScrollEl:h}),c=m(()=>{if(o.value===0)return[];const w=(_,y)=>({index:a.value.from+y,item:_});return t.itemsFn===void 0?t.items.slice(a.value.from,a.value.to).map(w):t.itemsFn(a.value.from,a.value.to-a.value.from).map(w)}),d=m(()=>"q-virtual-scroll q-virtual-scroll"+(t.virtualScrollHorizontal===!0?"--horizontal":"--vertical")+(t.scrollTarget!==void 0?"":" scroll")),f=m(()=>t.scrollTarget!==void 0?{}:{tabindex:0});fe(o,()=>{r()}),fe(()=>t.scrollTarget,()=>{v(),p()});function h(){return s.value.$el||s.value}function g(){return i}function p(){i=Wd(h(),t.scrollTarget),i.addEventListener("scroll",u,$l.passive)}function v(){i!==void 0&&(i.removeEventListener("scroll",u,$l.passive),i=void 0)}function b(){let w=l(t.type==="list"?"div":"tbody",c.value.map(e.default));return e.before!==void 0&&(w=e.before().concat(w)),mi(e.after,w)}return Hr(()=>{r()}),fn(()=>{p()}),aa(()=>{p()}),oa(()=>{v()}),zt(()=>{v()}),()=>{if(e.default===void 0){console.error("QVirtualScroll: default scoped slot is required for rendering");return}return t.type==="__qtable"?ag({ref:s,class:"q-table__middle "+d.value},b()):S(V_[t.type],{...n,ref:s,class:[n.class,d.value],...f.value},b)}}}),dg=ze({name:"QField",inheritAttrs:!1,props:{...ba,tag:{type:String,default:"label"}},emits:Sl,setup(){return Cl(kl({tagProp:!0}))}}),q_={xs:8,sm:10,md:14,lg:20,xl:24},Jo=ze({name:"QChip",props:{...hn,...jr,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:["update:modelValue","update:selected","remove","click"],setup(t,{slots:e,emit:n}){const{proxy:{$q:i}}=Ue(),s=gn(t,i),o=Ur(t,q_),a=m(()=>t.selected===!0||t.icon!==void 0),r=m(()=>t.selected===!0?t.iconSelected||i.iconSet.chip.selected:t.icon),l=m(()=>t.iconRemove||i.iconSet.chip.remove),u=m(()=>t.disable===!1&&(t.clickable===!0||t.selected!==null)),c=m(()=>{const v=t.outline===!0&&t.color||t.textColor;return"q-chip row inline no-wrap items-center"+(t.outline===!1&&t.color!==void 0?` bg-${t.color}`:"")+(v?` text-${v} q-chip--colored`:"")+(t.disable===!0?" disabled":"")+(t.dense===!0?" q-chip--dense":"")+(t.outline===!0?" q-chip--outline":"")+(t.selected===!0?" q-chip--selected":"")+(u.value===!0?" q-chip--clickable cursor-pointer non-selectable q-hoverable":"")+(t.square===!0?" q-chip--square":"")+(s.value===!0?" q-chip--dark q-dark":"")}),d=m(()=>{const v=t.disable===!0?{tabindex:-1,"aria-disabled":"true"}:{tabindex:t.tabindex||0},b={...v,role:"button","aria-hidden":"false","aria-label":t.removeAriaLabel||i.lang.label.remove};return{chip:v,remove:b}});function f(v){v.keyCode===13&&h(v)}function h(v){t.disable||(n("update:selected",!t.selected),n("click",v))}function g(v){(v.keyCode===void 0||v.keyCode===13)&&(Ot(v),t.disable===!1&&(n("update:modelValue",!1),n("remove")))}function p(){const v=[];u.value===!0&&v.push(S("div",{class:"q-focus-helper"})),a.value===!0&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--left",name:r.value}));const b=t.label!==void 0?[S("div",{class:"ellipsis"},[t.label])]:void 0;return v.push(S("div",{class:"q-chip__content col row no-wrap items-center q-anchor--skip"},vm(e.default,b))),t.iconRight&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--right",name:t.iconRight})),t.removable===!0&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:l.value,...d.value.remove,onClick:g,onKeyup:g})),v}return()=>{if(t.modelValue===!1)return;const v={class:c.value,style:o.value};return u.value===!0&&Object.assign(v,d.value.chip,{onClick:h,onKeyup:f}),ra("div",v,p(),"ripple",t.ripple!==!1&&t.disable!==!0,()=>[[Pd,t.ripple]])}}}),Qc=t=>["add","add-unique","toggle"].includes(t),L_=".*+?^${}()|[]\\",R_=Object.keys(ba);function ur(t,e){if(typeof t=="function")return t;const n=t!==void 0?t:e;return i=>i!==null&&typeof i=="object"&&n in i?i[n]:i}const F_=ze({name:"QSelect",inheritAttrs:!1,props:{...qr,...ya,...ba,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],popupNoRouteDismiss:Boolean,useInput:Boolean,useChips:Boolean,newValueMode:{type:String,validator:Qc},mapOptions:Boolean,emitValue:Boolean,disableTabSelection:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:{},transitionHide:{},transitionDuration:{},behavior:{type:String,validator:t=>["default","menu","dialog"].includes(t),default:"default"},virtualScrollItemSize:qr.virtualScrollItemSize.type,onNewValue:Function,onFilter:Function},emits:[...Sl,"add","remove","inputValue","keyup","keypress","keydown","popupShow","popupHide","filterAbort"],setup(t,{slots:e,emit:n}){const{proxy:i}=Ue(),{$q:s}=i,o=N(!1),a=N(!1),r=N(-1),l=N(""),u=N(!1),c=N(!1);let d=null,f=null,h,g,p,v=null,b,w,_,y;const x=N(null),V=N(null),E=N(null),L=N(null),D=N(null),I=ig(t),F=sg($),T=m(()=>Array.isArray(t.options)?t.options.length:0),H=m(()=>t.virtualScrollItemSize===void 0?t.optionsDense===!0?24:48:t.virtualScrollItemSize),{virtualScrollSliceRange:z,virtualScrollSliceSizeComputed:j,localResetVirtualScroll:U,padVirtualScroll:ee,onVirtualScrollEvt:Y,scrollTo:ae,setVirtualScrollSize:ce}=cg({virtualScrollLength:T,getVirtualScrollTarget:Ta,getVirtualScrollEl:Ln,virtualScrollItemSizeComputed:H}),O=kl(),P=m(()=>{const k=t.mapOptions===!0&&t.multiple!==!0,se=t.modelValue!==void 0&&(t.modelValue!==null||k===!0)?t.multiple===!0&&Array.isArray(t.modelValue)?t.modelValue:[t.modelValue]:[];if(t.mapOptions===!0&&Array.isArray(t.options)===!0){const oe=t.mapOptions===!0&&h!==void 0?h:[],Te=se.map(Ze=>W(Ze,oe));return t.modelValue===null&&k===!0?Te.filter(Ze=>Ze!==null):Te}return se}),J=m(()=>{const k={};return R_.forEach(se=>{const oe=t[se];oe!==void 0&&(k[se]=oe)}),k}),ue=m(()=>t.optionsDark===null?O.isDark.value:t.optionsDark),he=m(()=>$s(P.value)),B=m(()=>{let k="q-field__input q-placeholder col";return t.hideSelected===!0||P.value.length===0?[k,t.inputClass]:(k+=" q-field__input--padding",t.inputClass===void 0?k:[k,t.inputClass])}),te=m(()=>(t.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(t.popupContentClass?" "+t.popupContentClass:"")),_e=m(()=>T.value===0),G=m(()=>P.value.map(k=>R.value(k)).join(", ")),Ae=m(()=>t.displayValue!==void 0?t.displayValue:G.value),Xe=m(()=>t.optionsHtml===!0?()=>!0:k=>k?.html===!0),Bt=m(()=>t.displayValueHtml===!0||t.displayValue===void 0&&(t.optionsHtml===!0||P.value.some(Xe.value))),dt=m(()=>O.focused.value===!0?t.tabindex:-1),vt=m(()=>{const k={tabindex:t.tabindex,role:"combobox","aria-label":t.label,"aria-readonly":t.readonly===!0?"true":"false","aria-autocomplete":t.useInput===!0?"list":"none","aria-expanded":o.value===!0?"true":"false","aria-controls":`${O.targetUid.value}_lb`};return r.value>=0&&(k["aria-activedescendant"]=`${O.targetUid.value}_${r.value}`),k}),yt=m(()=>({id:`${O.targetUid.value}_lb`,role:"listbox","aria-multiselectable":t.multiple===!0?"true":"false"})),Ge=m(()=>P.value.map((k,se)=>({index:se,opt:k,html:Xe.value(k),selected:!0,removeAtIndex:Ie,toggleOption:it,tabindex:dt.value}))),wt=m(()=>{if(T.value===0)return[];const{from:k,to:se}=z.value;return t.options.slice(k,se).map((oe,Te)=>{const Ze=Z.value(oe)===!0,Ye=ge(oe)===!0,Ct=k+Te,ft={clickable:!0,active:Ye,activeClass:Et.value,manualFocus:!0,focused:!1,disable:Ze,tabindex:-1,dense:t.optionsDense,dark:ue.value,role:"option","aria-selected":Ye===!0?"true":"false",id:`${O.targetUid.value}_${Ct}`,onClick:()=>{it(oe)}};return Ze!==!0&&(r.value===Ct&&(ft.focused=!0),s.platform.is.desktop===!0&&(ft.onMousemove=()=>{o.value===!0&&xt(Ct)})),{index:Ct,opt:oe,html:Xe.value(oe),label:R.value(oe),selected:ft.active,focused:ft.focused,toggleOption:it,setOptionIndex:xt,itemProps:ft}})}),It=m(()=>t.dropdownIcon!==void 0?t.dropdownIcon:s.iconSet.arrow.dropdown),Ut=m(()=>t.optionsCover===!1&&t.outlined!==!0&&t.standout!==!0&&t.borderless!==!0&&t.rounded!==!0),Et=m(()=>t.optionsSelectedClass!==void 0?t.optionsSelectedClass:t.color!==void 0?`text-${t.color}`:""),qe=m(()=>ur(t.optionValue,"value")),R=m(()=>ur(t.optionLabel,"label")),Z=m(()=>ur(t.optionDisable,"disable")),X=m(()=>P.value.map(qe.value)),De=m(()=>{const k={onInput:$,onChange:F,onKeydown:nn,onKeyup:st,onKeypress:Nt,onFocus:Se,onClick(se){g===!0&&In(se)}};return k.onCompositionstart=k.onCompositionupdate=k.onCompositionend=F,k});fe(P,k=>{h=k,t.useInput===!0&&t.fillInput===!0&&t.multiple!==!0&&O.innerLoading.value!==!0&&(a.value!==!0&&o.value!==!0||he.value!==!0)&&(p!==!0&&Si(),(a.value===!0||o.value===!0)&&me(""))},{immediate:!0}),fe(()=>t.fillInput,Si),fe(o,Va),fe(T,Qg);function We(k){return t.emitValue===!0?qe.value(k):k}function Pe(k){if(k!==-1&&k=t.maxValues)return;const Te=t.modelValue.slice();n("add",{index:Te.length,value:oe}),Te.push(oe),n("update:modelValue",Te)}function it(k,se){if(O.editable.value!==!0||k===void 0||Z.value(k)===!0)return;const oe=qe.value(k);if(t.multiple!==!0){se!==!0&&(ve(t.fillInput===!0?R.value(k):"",!0,!0),Qn()),V.value?.focus(),(P.value.length===0||is(qe.value(P.value[0]),oe)!==!0)&&n("update:modelValue",t.emitValue===!0?oe:k);return}if((g!==!0||u.value===!0)&&O.focus(),Se(),P.value.length===0){const Ye=t.emitValue===!0?oe:k;n("add",{index:0,value:Ye}),n("update:modelValue",t.multiple===!0?[Ye]:Ye);return}const Te=t.modelValue.slice(),Ze=X.value.findIndex(Ye=>is(Ye,oe));if(Ze!==-1)n("remove",{index:Ze,value:Te.splice(Ze,1)[0]});else{if(t.maxValues!==void 0&&Te.length>=t.maxValues)return;const Ye=t.emitValue===!0?oe:k;n("add",{index:Te.length,value:Ye}),Te.push(Ye)}n("update:modelValue",Te)}function xt(k){if(s.platform.is.desktop!==!0)return;const se=k!==-1&&k=0?R.value(t.options[oe]):b,!0))}}function W(k,se){const oe=Te=>is(qe.value(Te),k);return t.options.find(oe)||se.find(oe)||k}function ge(k){const se=qe.value(k);return X.value.find(oe=>is(oe,se))!==void 0}function Se(k){t.useInput===!0&&V.value!==null&&(k===void 0||V.value===k.target&&k.target.value===G.value)&&V.value.select()}function He(k){sa(k,27)===!0&&o.value===!0&&(In(k),Qn(),Si()),n("keyup",k)}function st(k){const{value:se}=k.target;if(k.keyCode!==void 0){He(k);return}if(k.target.value="",d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),Si(),typeof se=="string"&&se.length!==0){const oe=se.toLocaleLowerCase(),Te=Ye=>{const Ct=t.options.find(ft=>String(Ye.value(ft)).toLocaleLowerCase()===oe);return Ct===void 0?!1:(P.value.indexOf(Ct)===-1?it(Ct):Qn(),!0)},Ze=Ye=>{Te(qe)!==!0&&Ye!==!0&&Te(R)!==!0&&me(se,!0,()=>Ze(!0))};Ze()}else O.clearValue(k)}function Nt(k){n("keypress",k)}function nn(k){if(n("keydown",k),Wr(k)===!0)return;const se=l.value.length!==0&&(t.newValueMode!==void 0||t.onNewValue!==void 0),oe=k.shiftKey!==!0&&t.disableTabSelection!==!0&&t.multiple!==!0&&(r.value!==-1||se===!0);if(k.keyCode===27){Nn(k);return}if(k.keyCode===9&&oe===!1){wi();return}if(k.target===void 0||k.target.id!==O.targetUid.value||O.editable.value!==!0)return;if(k.keyCode===40&&O.innerLoading.value!==!0&&o.value===!1){Ot(k),_i();return}if(k.keyCode===8&&(t.useChips===!0||t.clearable===!0)&&t.hideSelected!==!0&&l.value.length===0){t.multiple===!0&&Array.isArray(t.modelValue)===!0?Pe(t.modelValue.length-1):t.multiple!==!0&&t.modelValue!==null&&n("update:modelValue",null);return}(k.keyCode===35||k.keyCode===36)&&(typeof l.value!="string"||l.value.length===0)&&(Ot(k),r.value=-1,At(k.keyCode===36?1:-1,t.multiple)),(k.keyCode===33||k.keyCode===34)&&j.value!==void 0&&(Ot(k),r.value=Math.max(-1,Math.min(T.value,r.value+(k.keyCode===33?-1:1)*j.value.view)),At(k.keyCode===33?1:-1,t.multiple)),(k.keyCode===38||k.keyCode===40)&&(Ot(k),At(k.keyCode===38?-1:1,t.multiple));const Te=T.value;if((_===void 0||y0&&t.useInput!==!0&&k.key!==void 0&&k.key.length===1&&k.altKey===!1&&k.ctrlKey===!1&&k.metaKey===!1&&(k.keyCode!==32||_.length!==0)){o.value!==!0&&_i(k);const Ze=k.key.toLocaleLowerCase(),Ye=_.length===1&&_[0]===Ze;y=Date.now()+1500,Ye===!1&&(Ot(k),_+=Ze);const Ct=new RegExp("^"+_.split("").map(Ea=>L_.indexOf(Ea)!==-1?"\\"+Ea:Ea).join(".*"),"i");let ft=r.value;if(Ye===!0||ft<0||Ct.test(R.value(t.options[ft]))!==!0)do ft=Zl(ft+1,-1,Te-1);while(ft!==r.value&&(Z.value(t.options[ft])===!0||Ct.test(R.value(t.options[ft]))!==!0));r.value!==ft&&ht(()=>{xt(ft),ae(ft),ft>=0&&t.useInput===!0&&t.fillInput===!0&&ie(R.value(t.options[ft]),!0)});return}if(!(k.keyCode!==13&&(k.keyCode!==32||t.useInput===!0||_!=="")&&(k.keyCode!==9||oe===!1))){if(k.keyCode!==9&&Ot(k),r.value!==-1&&r.value{if(Ct){if(Qc(Ct)!==!0)return}else Ct=t.newValueMode;if(ve("",t.multiple!==!0,!0),Ye==null)return;(Ct==="toggle"?it:at)(Ye,Ct==="add-unique"),t.multiple!==!0&&(V.value?.focus(),Qn())};if(t.onNewValue!==void 0?n("newValue",l.value,Ze):Ze(l.value),t.multiple!==!0)return}o.value===!0?wi():O.innerLoading.value!==!0&&_i()}}function Ln(){return g===!0?D.value:E.value!==null&&E.value.contentEl!==null?E.value.contentEl:void 0}function Ta(){return Ln()}function Ia(){return t.hideSelected===!0?[]:e["selected-item"]!==void 0?Ge.value.map(k=>e["selected-item"](k)).slice():e.selected!==void 0?[].concat(e.selected()):t.useChips===!0?Ge.value.map((k,se)=>S(Jo,{key:"option-"+se,removable:O.editable.value===!0&&Z.value(k.opt)!==!0,dense:!0,textColor:t.color,tabindex:dt.value,onRemove(){k.removeAtIndex(se)}},()=>S("span",{class:"ellipsis",[k.html===!0?"innerHTML":"textContent"]:R.value(k.opt)}))):[S("span",{class:"ellipsis",[Bt.value===!0?"innerHTML":"textContent"]:Ae.value})]}function to(){if(_e.value===!0)return e["no-option"]!==void 0?e["no-option"]({inputValue:l.value}):void 0;const k=e.option!==void 0?e.option:oe=>S(Bs,{key:oe.index,...oe.itemProps},()=>S(di,()=>S(Ns,()=>S("span",{[oe.html===!0?"innerHTML":"textContent"]:oe.label}))));let se=ee("div",wt.value.map(k));return e["before-options"]!==void 0&&(se=e["before-options"]().concat(se)),mi(e["after-options"],se)}function Da(k,se){const oe=se===!0?{...vt.value,...O.splitAttrs.attributes.value}:void 0,Te={ref:se===!0?V:void 0,key:"i_t",class:B.value,style:t.inputStyle,value:l.value!==void 0?l.value:"",type:"search",...oe,id:se===!0?O.targetUid.value:void 0,maxlength:t.maxlength,autocomplete:t.autocomplete,"data-autofocus":k===!0||t.autofocus===!0||void 0,disabled:t.disable===!0,readonly:t.readonly===!0,...De.value};return k!==!0&&g===!0&&(Array.isArray(Te.class)===!0?Te.class=[...Te.class,"no-pointer-events"]:Te.class+=" no-pointer-events"),S("input",Te)}function $(k){d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),!(k&&k.target&&k.target.qComposing===!0)&&(ie(k.target.value||""),p=!0,b=l.value,O.focused.value!==!0&&(g!==!0||u.value===!0)&&O.focus(),t.onFilter!==void 0&&(d=setTimeout(()=>{d=null,me(l.value)},t.inputDebounce)))}function ie(k,se){l.value!==k&&(l.value=k,se===!0||t.inputDebounce===0||t.inputDebounce==="0"?n("inputValue",k):f=setTimeout(()=>{f=null,n("inputValue",k)},t.inputDebounce))}function ve(k,se,oe){p=oe!==!0,t.useInput===!0&&(ie(k,!0),(se===!0||oe!==!0)&&(b=k),se!==!0&&me(k))}function me(k,se,oe){if(t.onFilter===void 0||se!==!0&&O.focused.value!==!0)return;O.innerLoading.value===!0?n("filterAbort"):(O.innerLoading.value=!0,c.value=!0),k!==""&&t.multiple!==!0&&P.value.length!==0&&p!==!0&&k===R.value(P.value[0])&&(k="");const Te=setTimeout(()=>{o.value===!0&&(o.value=!1)},10);v!==null&&clearTimeout(v),v=Te,n("filter",k,(Ze,Ye)=>{(se===!0||O.focused.value===!0)&&v===Te&&(clearTimeout(v),typeof Ze=="function"&&Ze(),c.value=!1,ht(()=>{O.innerLoading.value=!1,O.editable.value===!0&&(se===!0?o.value===!0&&Qn():o.value===!0?Va(!0):o.value=!0),typeof Ye=="function"&&ht(()=>{Ye(i)}),typeof oe=="function"&&ht(()=>{oe(i)})}))},()=>{O.focused.value===!0&&v===Te&&(clearTimeout(v),O.innerLoading.value=!1,c.value=!1),o.value===!0&&(o.value=!1)})}function ye(){return S(Gf,{ref:E,class:te.value,style:t.popupContentStyle,modelValue:o.value,fit:t.menuShrink!==!0,cover:t.optionsCover===!0&&_e.value!==!0&&t.useInput!==!0,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,dark:ue.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:t.popupNoRouteDismiss,square:Ut.value,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,separateClosePopup:!0,...yt.value,onScrollPassive:Y,onBeforeShow:ql,onBeforeHide:ot,onShow:Je},to)}function ot(k){Ll(k),wi()}function Je(){ce()}function Yt(k){In(k),V.value?.focus(),u.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function et(k){In(k),ht(()=>{u.value=!1})}function _n(){const k=[S(dg,{class:`col-auto ${O.fieldClass.value}`,...J.value,for:O.targetUid.value,dark:ue.value,square:!0,loading:c.value,itemAligned:!1,filled:!0,stackLabel:l.value.length!==0,...O.splitAttrs.listeners.value,onFocus:Yt,onBlur:et},{...e,rawControl:()=>O.getControl(!0),before:void 0,after:void 0})];return o.value===!0&&k.push(S("div",{ref:D,class:te.value+" scroll",style:t.popupContentStyle,...yt.value,onClick:Nn,onScrollPassive:Y},to())),S(Gi,{ref:L,modelValue:a.value,position:t.useInput===!0?"top":void 0,transitionShow:w,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,noRouteDismiss:t.popupNoRouteDismiss,onBeforeShow:ql,onBeforeHide:xi,onHide:Oa,onShow:Kg},()=>S("div",{class:"q-select__dialog"+(ue.value===!0?" q-select__dialog--dark q-dark":"")+(u.value===!0?" q-select__dialog--focused":"")},k))}function xi(k){Ll(k),L.value!==null&&L.value.__updateRefocusTarget(O.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),O.focused.value=!1}function Oa(k){Qn(),O.focused.value===!1&&n("blur",k),Si()}function Kg(){const k=document.activeElement;(k===null||k.id!==O.targetUid.value)&&V.value!==null&&V.value!==k&&V.value.focus(),ce()}function wi(){a.value!==!0&&(r.value=-1,o.value===!0&&(o.value=!1),O.focused.value===!1&&(v!==null&&(clearTimeout(v),v=null),O.innerLoading.value===!0&&(n("filterAbort"),O.innerLoading.value=!1,c.value=!1)))}function _i(k){O.editable.value===!0&&(g===!0?(O.onControlFocusin(k),a.value=!0,ht(()=>{O.focus()})):O.focus(),t.onFilter!==void 0?me(l.value):(_e.value!==!0||e["no-option"]!==void 0)&&(o.value=!0))}function Qn(){a.value=!1,wi()}function Si(){t.useInput===!0&&ve(t.multiple!==!0&&t.fillInput===!0&&P.value.length!==0&&R.value(P.value[0])||"",!0,!0)}function Va(k){let se=-1;if(k===!0){if(P.value.length!==0){const oe=qe.value(P.value[0]);se=t.options.findIndex(Te=>is(qe.value(Te),oe))}U(se)}xt(se)}function Qg(k,se){o.value===!0&&O.innerLoading.value===!1&&(U(-1,!0),ht(()=>{o.value===!0&&O.innerLoading.value===!1&&(k>se?U():Va(!0))}))}function Al(){a.value===!1&&E.value!==null&&E.value.updatePosition()}function ql(k){k!==void 0&&In(k),n("popupShow",k),O.hasPopupOpen=!0,O.onControlFocusin(k)}function Ll(k){k!==void 0&&In(k),n("popupHide",k),O.hasPopupOpen=!1,O.onControlFocusout(k)}function Rl(){g=s.platform.is.mobile!==!0&&t.behavior!=="dialog"?!1:t.behavior!=="menu"&&(t.useInput===!0?e["no-option"]!==void 0||t.onFilter!==void 0||_e.value===!1:!0),w=s.platform.is.ios===!0&&g===!0&&t.useInput===!0?"fade":t.transitionShow}return qd(Rl),pm(Al),Rl(),zt(()=>{d!==null&&clearTimeout(d),f!==null&&clearTimeout(f)}),Object.assign(i,{showPopup:_i,hidePopup:Qn,removeAtIndex:Pe,add:at,toggleOption:it,getOptionIndex:()=>r.value,setOptionIndex:xt,moveOptionSelection:At,filter:me,updateMenuPosition:Al,updateInputValue:ve,isOptionSelected:ge,getEmittingOptionValue:We,isOptionDisabled:(...k)=>Z.value.apply(null,k)===!0,getOptionValue:(...k)=>qe.value.apply(null,k),getOptionLabel:(...k)=>R.value.apply(null,k)}),Object.assign(O,{innerValue:P,fieldClass:m(()=>`q-select q-field--auto-height q-select--with${t.useInput!==!0?"out":""}-input q-select--with${t.useChips!==!0?"out":""}-chips q-select--${t.multiple===!0?"multiple":"single"}`),inputRef:x,targetRef:V,hasValue:he,showPopup:_i,floatingLabel:m(()=>t.hideSelected!==!0&&he.value===!0||typeof l.value=="number"||l.value.length!==0||$s(t.displayValue)),getControlChild:()=>{if(O.editable.value!==!1&&(a.value===!0||_e.value!==!0||e["no-option"]!==void 0))return g===!0?_n():ye();O.hasPopupOpen===!0&&(O.hasPopupOpen=!1)},controlEvents:{onFocusin(k){O.onControlFocusin(k)},onFocusout(k){O.onControlFocusout(k,()=>{Si(),wi()})},onClick(k){if(Nn(k),g!==!0&&o.value===!0){wi(),V.value?.focus();return}_i(k)}},getControl:k=>{const se=Ia(),oe=k===!0||a.value!==!0||g!==!0;if(t.useInput===!0)se.push(Da(k,oe));else if(O.editable.value===!0){const Ze=oe===!0?vt.value:void 0;se.push(S("input",{ref:oe===!0?V:void 0,key:"d_t",class:"q-select__focus-target",id:oe===!0?O.targetUid.value:void 0,value:Ae.value,readonly:!0,"data-autofocus":k===!0||t.autofocus===!0||void 0,...Ze,onKeydown:nn,onKeyup:He,onKeypress:Nt})),oe===!0&&typeof t.autocomplete=="string"&&t.autocomplete.length!==0&&se.push(S("input",{class:"q-select__autocomplete-input",autocomplete:t.autocomplete,tabindex:-1,onKeyup:st}))}if(I.value!==void 0&&t.disable!==!0&&X.value.length!==0){const Ze=X.value.map(Ye=>S("option",{value:Ye,selected:!0}));se.push(S("select",{class:"hidden",name:I.value,multiple:t.multiple},Ze))}const Te=t.useInput===!0||oe!==!0?void 0:O.splitAttrs.attributes.value;return S("div",{class:"q-field__native row items-center",...Te,...O.splitAttrs.listeners.value},se)},getInnerAppend:()=>t.loading!==!0&&c.value!==!0&&t.hideDropdownIcon!==!0?[S(xe,{class:"q-select__dropdown-icon"+(o.value===!0?" rotate-180":""),name:It.value})]:null}),Cl(O)}}),$_={xs:2,sm:4,md:6,lg:10,xl:14};function Gc(t,e,n){return{transform:e===!0?`translateX(${n.lang.rtl===!0?"-":""}100%) scale3d(${-t},1,1)`:`scale3d(${t},1,1)`}}const z_=ze({name:"QLinearProgress",props:{...hn,...jr,value:{type:Number,default:0},buffer:Number,color:String,trackColor:String,reverse:Boolean,stripe:Boolean,indeterminate:Boolean,query:Boolean,rounded:Boolean,animationSpeed:{type:[String,Number],default:2100},instantFeedback:Boolean},setup(t,{slots:e}){const{proxy:n}=Ue(),i=gn(t,n.$q),s=Ur(t,$_),o=m(()=>t.indeterminate===!0||t.query===!0),a=m(()=>t.reverse!==t.query),r=m(()=>({...s.value!==null?s.value:{},"--q-linear-progress-speed":`${t.animationSpeed}ms`})),l=m(()=>"q-linear-progress"+(t.color!==void 0?` text-${t.color}`:"")+(t.reverse===!0||t.query===!0?" q-linear-progress--reverse":"")+(t.rounded===!0?" rounded-borders":"")),u=m(()=>Gc(t.buffer!==void 0?t.buffer:1,a.value,n.$q)),c=m(()=>`with${t.instantFeedback===!0?"out":""}-transition`),d=m(()=>`q-linear-progress__track absolute-full q-linear-progress__track--${c.value} q-linear-progress__track--${i.value===!0?"dark":"light"}`+(t.trackColor!==void 0?` bg-${t.trackColor}`:"")),f=m(()=>Gc(o.value===!0?1:t.value,a.value,n.$q)),h=m(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${c.value} q-linear-progress__model--${o.value===!0?"in":""}determinate`),g=m(()=>({width:`${t.value*100}%`})),p=m(()=>`q-linear-progress__stripe absolute-${t.reverse===!0?"right":"left"} q-linear-progress__stripe--${c.value}`);return()=>{const v=[S("div",{class:d.value,style:u.value}),S("div",{class:h.value,style:f.value})];return t.stripe===!0&&o.value===!1&&v.push(S("div",{class:p.value,style:g.value})),S("div",{class:l.value,style:r.value,role:"progressbar","aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":t.indeterminate===!0?void 0:t.value},mi(e.default,v))}}});function B_(t,e){const n=N(null),i=m(()=>t.disable===!0?null:S("span",{ref:n,class:"no-outline",tabindex:-1}));function s(o){const a=e.value;o?.qAvoidFocus!==!0&&(o?.type.indexOf("key")===0?document.activeElement!==a&&a?.contains(document.activeElement)===!0&&a.focus():n.value!==null&&(o===void 0||a?.contains(o.target)===!0)&&n.value.focus())}return{refocusTargetEl:i,refocusTarget:s}}const N_={xs:30,sm:35,md:40,lg:50,xl:60},fg={...hn,...jr,...ya,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:t=>t==="tf"||t==="ft"},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},hg=["update:modelValue"];function gg(t,e){const{props:n,slots:i,emit:s,proxy:o}=Ue(),{$q:a}=o,r=gn(n,a),l=N(null),{refocusTargetEl:u,refocusTarget:c}=B_(n,l),d=Ur(n,N_),f=m(()=>n.val!==void 0&&Array.isArray(n.modelValue)),h=m(()=>{const T=Tn(n.val);return f.value===!0?n.modelValue.findIndex(H=>Tn(H)===T):-1}),g=m(()=>f.value===!0?h.value!==-1:Tn(n.modelValue)===Tn(n.trueValue)),p=m(()=>f.value===!0?h.value===-1:Tn(n.modelValue)===Tn(n.falseValue)),v=m(()=>g.value===!1&&p.value===!1),b=m(()=>n.disable===!0?-1:n.tabindex||0),w=m(()=>`q-${t} cursor-pointer no-outline row inline no-wrap items-center`+(n.disable===!0?" disabled":"")+(r.value===!0?` q-${t}--dark`:"")+(n.dense===!0?` q-${t}--dense`:"")+(n.leftLabel===!0?" reverse":"")),_=m(()=>{const T=g.value===!0?"truthy":p.value===!0?"falsy":"indet",H=n.color!==void 0&&(n.keepColor===!0||(t==="toggle"?g.value===!0:p.value!==!0))?` text-${n.color}`:"";return`q-${t}__inner relative-position non-selectable q-${t}__inner--${T}${H}`}),y=m(()=>{const T={type:"checkbox"};return n.name!==void 0&&Object.assign(T,{".checked":g.value,"^checked":g.value===!0?"checked":void 0,name:n.name,value:f.value===!0?n.val:n.trueValue}),T}),x=ng(y),V=m(()=>{const T={tabindex:b.value,role:t==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":v.value===!0?"mixed":g.value===!0?"true":"false"};return n.disable===!0&&(T["aria-disabled"]="true"),T});function E(T){T!==void 0&&(Ot(T),c(T)),n.disable!==!0&&s("update:modelValue",L(),T)}function L(){if(f.value===!0){if(g.value===!0){const T=n.modelValue.slice();return T.splice(h.value,1),T}return n.modelValue.concat([n.val])}if(g.value===!0){if(n.toggleOrder!=="ft"||n.toggleIndeterminate===!1)return n.falseValue}else if(p.value===!0){if(n.toggleOrder==="ft"||n.toggleIndeterminate===!1)return n.trueValue}else return n.toggleOrder!=="ft"?n.trueValue:n.falseValue;return n.indeterminateValue}function D(T){(T.keyCode===13||T.keyCode===32)&&Ot(T)}function I(T){(T.keyCode===13||T.keyCode===32)&&E(T)}const F=e(g,v);return Object.assign(o,{toggle:E}),()=>{const T=F();n.disable!==!0&&x(T,"unshift",` q-${t}__native absolute q-ma-none q-pa-none`);const H=[S("div",{class:_.value,style:d.value,"aria-hidden":"true"},T)];u.value!==null&&H.push(u.value);const z=n.label!==void 0?mi(i.default,[n.label]):nt(i.default);return z!==void 0&&H.push(S("div",{class:`q-${t}__label q-anchor--skip`},z)),S("div",{ref:l,class:w.value,...V.value,onClick:E,onKeydown:D,onKeyup:I},H)}}const W_=()=>S("div",{key:"svg",class:"q-checkbox__bg absolute"},[S("svg",{class:"q-checkbox__svg fit absolute-full",viewBox:"0 0 24 24"},[S("path",{class:"q-checkbox__truthy",fill:"none",d:"M1.73,12.91 8.1,19.28 22.79,4.59"}),S("path",{class:"q-checkbox__indet",d:"M4,14H20V10H4"})])]),cr=ze({name:"QCheckbox",props:fg,emits:hg,setup(t){const e=W_();function n(i,s){const o=m(()=>(i.value===!0?t.checkedIcon:s.value===!0?t.indeterminateIcon:t.uncheckedIcon)||null);return()=>o.value!==null?[S("div",{key:"icon",class:"q-checkbox__icon-container absolute-full flex flex-center no-wrap"},[S(xe,{class:"q-checkbox__icon",name:o.value})])]:[e]}return gg("checkbox",n)}});function H_(t,e){return new Date(t)-new Date(e)}const j_={sortMethod:Function,binaryStateSort:Boolean,columnSortOrder:{type:String,validator:t=>t==="ad"||t==="da",default:"ad"}};function U_(t,e,n,i){const s=m(()=>{const{sortBy:r}=e.value;return r&&n.value.find(l=>l.name===r)||null}),o=m(()=>t.sortMethod!==void 0?t.sortMethod:(r,l,u)=>{const c=n.value.find(h=>h.name===l);if(c===void 0||c.field===void 0)return r;const d=u===!0?-1:1,f=typeof c.field=="function"?h=>c.field(h):h=>h[c.field];return r.sort((h,g)=>{let p=f(h),v=f(g);return c.rawSort!==void 0?c.rawSort(p,v,h,g)*d:p==null?-1*d:v==null?1*d:c.sort!==void 0?c.sort(p,v,h,g)*d:Ds(p)===!0&&Ds(v)===!0?(p-v)*d:zl(p)===!0&&zl(v)===!0?H_(p,v)*d:typeof p=="boolean"&&typeof v=="boolean"?(p-v)*d:([p,v]=[p,v].map(b=>(b+"").toLocaleString().toLowerCase()),pf.name===r);d?.sortOrder&&(l=d.sortOrder)}let{sortBy:u,descending:c}=e.value;u!==r?(u=r,c=l==="da"):t.binaryStateSort===!0?c=!c:c===!0?l==="ad"?u=null:c=!1:l==="ad"?c=!0:u=null,i({sortBy:u,descending:c,page:1})}return{columnToSort:s,computedSortMethod:o,sort:a}}const Y_={filter:[String,Object],filterMethod:Function};function Z_(t,e){const n=m(()=>t.filterMethod!==void 0?t.filterMethod:(i,s,o,a)=>{const r=s?s.toLowerCase():"";return i.filter(l=>o.some(u=>{const c=a(u,l)+"";return(c==="undefined"||c==="null"?"":c.toLowerCase()).indexOf(r)!==-1}))});return fe(()=>t.filter,()=>{ht(()=>{e({page:1},!0)})},{deep:!0}),{computedFilterMethod:n}}function X_(t,e){for(const n in e)if(e[n]!==t[n])return!1;return!0}function Jc(t){return t.page<1&&(t.page=1),t.rowsPerPage!==void 0&&t.rowsPerPage<1&&(t.rowsPerPage=0),t}const K_={pagination:Object,rowsPerPageOptions:{type:Array,default:()=>[5,7,10,15,20,25,50,0]},"onUpdate:pagination":[Function,Array]};function Q_(t,e){const{props:n,emit:i}=t,s=N(Object.assign({sortBy:null,descending:!1,page:1,rowsPerPage:n.rowsPerPageOptions.length!==0?n.rowsPerPageOptions[0]:5},n.pagination)),o=m(()=>{const c=n["onUpdate:pagination"]!==void 0?{...s.value,...n.pagination}:s.value;return Jc(c)}),a=m(()=>o.value.rowsNumber!==void 0);function r(c){l({pagination:c,filter:n.filter})}function l(c={}){ht(()=>{i("request",{pagination:c.pagination||o.value,filter:c.filter||n.filter,getCellValue:e})})}function u(c,d){const f=Jc({...o.value,...c});if(X_(o.value,f)===!0){a.value===!0&&d===!0&&r(f);return}if(a.value===!0){r(f);return}n.pagination!==void 0&&n["onUpdate:pagination"]!==void 0?i("update:pagination",f):s.value=f}return{innerPagination:s,computedPagination:o,isServerSide:a,requestServerInteraction:l,setPagination:u}}function G_(t,e,n,i,s,o){const{props:a,emit:r,proxy:{$q:l}}=t,u=m(()=>i.value===!0?n.value.rowsNumber||0:o.value),c=m(()=>{const{page:y,rowsPerPage:x}=n.value;return(y-1)*x}),d=m(()=>{const{page:y,rowsPerPage:x}=n.value;return y*x}),f=m(()=>n.value.page===1),h=m(()=>n.value.rowsPerPage===0?1:Math.max(1,Math.ceil(u.value/n.value.rowsPerPage))),g=m(()=>d.value===0?!0:n.value.page>=h.value),p=m(()=>(a.rowsPerPageOptions.includes(e.value.rowsPerPage)?a.rowsPerPageOptions:[e.value.rowsPerPage].concat(a.rowsPerPageOptions)).map(x=>({label:x===0?l.lang.table.allRows:""+x,value:x})));fe(h,(y,x)=>{if(y===x)return;const V=n.value.page;y&&!V?s({page:1}):y1&&s({page:y-1})}function w(){const{page:y,rowsPerPage:x}=n.value;d.value>0&&y*x["single","multiple","none"].includes(t)},selected:{type:Array,default:()=>[]}},eS=["update:selected","selection"];function tS(t,e,n,i){const s=m(()=>{const g={};return t.selected.map(i.value).forEach(p=>{g[p]=!0}),g}),o=m(()=>t.selection!=="none"),a=m(()=>t.selection==="single"),r=m(()=>t.selection==="multiple"),l=m(()=>n.value.length!==0&&n.value.every(g=>s.value[i.value(g)]===!0)),u=m(()=>l.value!==!0&&n.value.some(g=>s.value[i.value(g)]===!0)),c=m(()=>t.selected.length);function d(g){return s.value[g]===!0}function f(){e("update:selected",[])}function h(g,p,v,b){e("selection",{rows:p,added:v,keys:g,evt:b});const w=a.value===!0?v===!0?p:[]:v===!0?t.selected.concat(p):t.selected.filter(_=>g.includes(i.value(_))===!1);e("update:selected",w)}return{hasSelectionMode:o,singleSelection:a,multipleSelection:r,allRowsSelected:l,someRowsSelected:u,rowsSelectedNumber:c,isRowSelected:d,clearSelection:f,updateSelection:h}}function ed(t){return Array.isArray(t)?t.slice():[]}const nS={expanded:Array},iS=["update:expanded"];function sS(t,e){const n=N(ed(t.expanded));fe(()=>t.expanded,a=>{n.value=ed(a)});function i(a){return n.value.includes(a)}function s(a){t.expanded!==void 0?e("update:expanded",a):n.value=a}function o(a,r){const l=n.value.slice(),u=l.indexOf(a);r===!0?u===-1&&(l.push(a),s(l)):u!==-1&&(l.splice(u,1),s(l))}return{isRowExpanded:i,setExpanded:s,updateExpanded:o}}const oS={visibleColumns:Array};function aS(t,e,n){const i=m(()=>{if(t.columns!==void 0)return t.columns;const r=t.rows[0];return r!==void 0?Object.keys(r).map(l=>({name:l,label:l.toUpperCase(),field:l,align:Ds(r[l])?"right":"left",sortable:!0})):[]}),s=m(()=>{const{sortBy:r,descending:l}=e.value;return(t.visibleColumns!==void 0?i.value.filter(c=>c.required===!0||t.visibleColumns.includes(c.name)===!0):i.value).map(c=>{const d=c.align||"right",f=`text-${d}`;return{...c,align:d,__iconClass:`q-table__sort-icon q-table__sort-icon--${d}`,__thClass:f+(c.headerClasses!==void 0?" "+c.headerClasses:"")+(c.sortable===!0?" sortable":"")+(c.name===r?` sorted ${l===!0?"sort-desc":""}`:""),__tdStyle:c.style!==void 0?typeof c.style!="function"?()=>c.style:c.style:()=>null,__tdClass:c.classes!==void 0?typeof c.classes!="function"?()=>f+" "+c.classes:h=>f+" "+c.classes(h):()=>f}})}),o=m(()=>{const r={};return s.value.forEach(l=>{r[l.name]=l}),r}),a=m(()=>t.tableColspan!==void 0?t.tableColspan:s.value.length+(n.value===!0?1:0));return{colList:i,computedCols:s,computedColsMap:o,computedColspan:a}}const Po="q-table__bottom row items-center",mg={};ug.forEach(t=>{mg[t]={}});const rS=ze({name:"QTable",props:{rows:{type:Array,required:!0},rowKey:{type:[String,Function],default:"id"},columns:Array,loading:Boolean,iconFirstPage:String,iconPrevPage:String,iconNextPage:String,iconLastPage:String,title:String,hideHeader:Boolean,grid:Boolean,gridHeader:Boolean,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,separator:{type:String,default:"horizontal",validator:t=>["horizontal","vertical","cell","none"].includes(t)},wrapCells:Boolean,virtualScroll:Boolean,virtualScrollTarget:{},...mg,noDataLabel:String,noResultsLabel:String,loadingLabel:String,selectedRowsLabel:Function,rowsPerPageLabel:String,paginationLabel:Function,color:{type:String,default:"grey-8"},titleClass:[String,Array,Object],tableStyle:[String,Array,Object],tableClass:[String,Array,Object],tableHeaderStyle:[String,Array,Object],tableHeaderClass:[String,Array,Object],tableRowStyleFn:Function,tableRowClassFn:Function,cardContainerClass:[String,Array,Object],cardContainerStyle:[String,Array,Object],cardStyle:[String,Array,Object],cardClass:[String,Array,Object],cardStyleFn:Function,cardClassFn:Function,hideBottom:Boolean,hideSelectedBanner:Boolean,hideNoData:Boolean,hidePagination:Boolean,onRowClick:Function,onRowDblclick:Function,onRowContextmenu:Function,...hn,...Xd,...oS,...Y_,...K_,...nS,...J_,...j_},emits:["request","virtualScroll",...Kd,...iS,...eS],setup(t,{slots:e,emit:n}){const i=Ue(),{proxy:{$q:s}}=i,o=gn(t,s),{inFullscreen:a,toggleFullscreen:r}=Qd(),l=m(()=>typeof t.rowKey=="function"?t.rowKey:$=>$[t.rowKey]),u=N(null),c=N(null),d=m(()=>t.grid!==!0&&t.virtualScroll===!0),f=m(()=>" q-table__card"+(o.value===!0?" q-table__card--dark q-dark":"")+(t.square===!0?" q-table--square":"")+(t.flat===!0?" q-table--flat":"")+(t.bordered===!0?" q-table--bordered":"")),h=m(()=>`q-table__container q-table--${t.separator}-separator column no-wrap`+(t.grid===!0?" q-table--grid":f.value)+(o.value===!0?" q-table--dark":"")+(t.dense===!0?" q-table--dense":"")+(t.wrapCells===!1?" q-table--no-wrap":"")+(a.value===!0?" fullscreen scroll":"")),g=m(()=>h.value+(t.loading===!0?" q-table--loading":""));fe(()=>t.tableStyle+t.tableClass+t.tableHeaderStyle+t.tableHeaderClass+h.value,()=>{d.value===!0&&c.value?.reset()});const{innerPagination:p,computedPagination:v,isServerSide:b,requestServerInteraction:w,setPagination:_}=Q_(i,xt),{computedFilterMethod:y}=Z_(t,_),{isRowExpanded:x,setExpanded:V,updateExpanded:E}=sS(t,n),L=m(()=>{let $=t.rows;if(b.value===!0||$.length===0)return $;const{sortBy:ie,descending:ve}=v.value;return t.filter&&($=y.value($,t.filter,O.value,xt)),ue.value!==null&&($=he.value(t.rows===$?$.slice():$,ie,ve)),$}),D=m(()=>L.value.length),I=m(()=>{let $=L.value;if(b.value===!0)return $;const{rowsPerPage:ie}=v.value;return ie!==0&&(te.value===0&&t.rows!==$?$.length>_e.value&&($=$.slice(0,_e.value)):$=$.slice(te.value,_e.value)),$}),{hasSelectionMode:F,singleSelection:T,multipleSelection:H,allRowsSelected:z,someRowsSelected:j,rowsSelectedNumber:U,isRowSelected:ee,clearSelection:Y,updateSelection:ae}=tS(t,n,I,l),{colList:ce,computedCols:O,computedColsMap:P,computedColspan:J}=aS(t,v,F),{columnToSort:ue,computedSortMethod:he,sort:B}=U_(t,v,ce,_),{firstRowIndex:te,lastRowIndex:_e,isFirstPage:G,isLastPage:Ae,pagesNumber:Xe,computedRowsPerPageOptions:Bt,computedRowsNumber:dt,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt}=G_(i,p,v,b,_,D),It=m(()=>I.value.length===0),Ut=m(()=>{const $={};return ug.forEach(ie=>{$[ie]=t[ie]}),$.virtualScrollItemSize===void 0&&($.virtualScrollItemSize=t.dense===!0?28:48),$});function Et(){d.value===!0&&c.value.reset()}function qe(){if(t.grid===!0)return Da();const $=t.hideHeader!==!0?Se:null;if(d.value===!0){const ve=e["top-row"],me=e["bottom-row"],ye={default:ot=>De(ot.item,e.body,ot.index)};if(ve!==void 0){const ot=S("tbody",ve({cols:O.value}));ye.before=$===null?()=>ot:()=>[$()].concat(ot)}else $!==null&&(ye.before=$);return me!==void 0&&(ye.after=()=>S("tbody",me({cols:O.value}))),S(A_,{ref:c,class:t.tableClass,style:t.tableStyle,...Ut.value,scrollTarget:t.virtualScrollTarget,items:I.value,type:"__qtable",tableColspan:J.value,onVirtualScroll:Z},ye)}const ie=[We()];return $!==null&&ie.unshift($()),ag({class:["q-table__middle scroll",t.tableClass],style:t.tableStyle},ie)}function R($,ie){if(c.value!==null){c.value.scrollTo($,ie);return}$=parseInt($,10);const ve=u.value.querySelector(`tbody tr:nth-of-type(${$+1})`);if(ve!==null){const me=u.value.querySelector(".q-table__middle.scroll"),ye=ve.offsetTop-t.virtualScrollStickySizeStart,ot=ye{const _n=e[`body-cell-${et.name}`],xi=_n!==void 0?_n:ot;return xi!==void 0?xi(Ie({key:me,row:$,pageIndex:ve,col:et})):S("td",{class:et.__tdClass($),style:et.__tdStyle($)},xt(et,$))});if(F.value===!0){const et=e["body-selection"],_n=et!==void 0?et(at({key:me,row:$,pageIndex:ve})):[S(cr,{modelValue:ye,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(xi,Oa)=>{ae([me],[$],xi,Oa)}})];Je.unshift(S("td",{class:"q-table--col-auto-width"},_n))}const Yt={key:me,class:{selected:ye}};if(t.onRowClick!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onClick=et=>{n("rowClick",et,$,ve)}),t.onRowDblclick!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onDblclick=et=>{n("rowDblclick",et,$,ve)}),t.onRowContextmenu!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onContextmenu=et=>{n("rowContextmenu",et,$,ve)}),t.tableRowStyleFn!==void 0&&(Yt.style=t.tableRowStyleFn($)),t.tableRowClassFn!==void 0){const et=t.tableRowClassFn($);et&&(Yt.class[et]=!0)}return S("tr",Yt,Je)}function We(){const $=e.body,ie=e["top-row"],ve=e["bottom-row"];let me=I.value.map((ye,ot)=>De(ye,$,ot));return ie!==void 0&&(me=ie({cols:O.value}).concat(me)),ve!==void 0&&(me=me.concat(ve({cols:O.value}))),S("tbody",me)}function Pe($){return it($),$.cols=$.cols.map(ie=>si({...ie},"value",()=>xt(ie,$.row))),$}function Ie($){return it($),si($,"value",()=>xt($.col,$.row)),$}function at($){return it($),$}function it($){Object.assign($,{cols:O.value,colsMap:P.value,sort:B,rowIndex:te.value+$.pageIndex,color:t.color,dark:o.value,dense:t.dense}),F.value===!0&&si($,"selected",()=>ee($.key),(ie,ve)=>{ae([$.key],[$.row],ie,ve)}),si($,"expand",()=>x($.key),ie=>{E($.key,ie)})}function xt($,ie){const ve=typeof $.field=="function"?$.field(ie):ie[$.field];return $.format!==void 0?$.format(ve,ie):ve}const At=m(()=>({pagination:v.value,pagesNumber:Xe.value,isFirstPage:G.value,isLastPage:Ae.value,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt,inFullscreen:a.value,toggleFullscreen:r}));function W(){const $=e.top,ie=e["top-left"],ve=e["top-right"],me=e["top-selection"],ye=F.value===!0&&me!==void 0&&U.value>0,ot="q-table__top relative-position row items-center";if($!==void 0)return S("div",{class:ot},[$(At.value)]);let Je;if(ye===!0?Je=me(At.value).slice():(Je=[],ie!==void 0?Je.push(S("div",{class:"q-table__control"},[ie(At.value)])):t.title&&Je.push(S("div",{class:"q-table__control"},[S("div",{class:["q-table__title",t.titleClass]},t.title)]))),ve!==void 0&&(Je.push(S("div",{class:"q-table__separator col"})),Je.push(S("div",{class:"q-table__control"},[ve(At.value)]))),Je.length!==0)return S("div",{class:ot},Je)}const ge=m(()=>j.value===!0?null:z.value);function Se(){const $=He();return t.loading===!0&&e.loading===void 0&&$.push(S("tr",{class:"q-table__progress"},[S("th",{class:"relative-position",colspan:J.value},X())])),S("thead",$)}function He(){const $=e.header,ie=e["header-cell"];if($!==void 0)return $(st({header:!0})).slice();const ve=O.value.map(me=>{const ye=e[`header-cell-${me.name}`],ot=ye!==void 0?ye:ie,Je=st({col:me});return ot!==void 0?ot(Je):S(Ar,{key:me.name,props:Je},()=>me.label)});if(T.value===!0&&t.grid!==!0)ve.unshift(S("th",{class:"q-table--col-auto-width"}," "));else if(H.value===!0){const me=e["header-selection"],ye=me!==void 0?me(st({})):[S(cr,{color:t.color,modelValue:ge.value,dark:o.value,dense:t.dense,"onUpdate:modelValue":Nt})];ve.unshift(S("th",{class:"q-table--col-auto-width"},ye))}return[S("tr",{class:t.tableHeaderClass,style:t.tableHeaderStyle},ve)]}function st($){return Object.assign($,{cols:O.value,sort:B,colsMap:P.value,color:t.color,dark:o.value,dense:t.dense}),H.value===!0&&si($,"selected",()=>ge.value,Nt),$}function Nt($){j.value===!0&&($=!1),ae(I.value.map(l.value),I.value,$)}const nn=m(()=>{const $=[t.iconFirstPage||s.iconSet.table.firstPage,t.iconPrevPage||s.iconSet.table.prevPage,t.iconNextPage||s.iconSet.table.nextPage,t.iconLastPage||s.iconSet.table.lastPage];return s.lang.rtl===!0?$.reverse():$});function Ln(){if(t.hideBottom===!0)return;if(It.value===!0){if(t.hideNoData===!0)return;const ve=t.loading===!0?t.loadingLabel||s.lang.table.loading:t.filter?t.noResultsLabel||s.lang.table.noResults:t.noDataLabel||s.lang.table.noData,me=e["no-data"],ye=me!==void 0?[me({message:ve,icon:s.iconSet.table.warning,filter:t.filter})]:[S(xe,{class:"q-table__bottom-nodata-icon",name:s.iconSet.table.warning}),ve];return S("div",{class:Po+" q-table__bottom--nodata"},ye)}const $=e.bottom;if($!==void 0)return S("div",{class:Po},[$(At.value)]);const ie=t.hideSelectedBanner!==!0&&F.value===!0&&U.value>0?[S("div",{class:"q-table__control"},[S("div",[(t.selectedRowsLabel||s.lang.table.selectedRecords)(U.value)])])]:[];if(t.hidePagination!==!0)return S("div",{class:Po+" justify-end"},Ia(ie));if(ie.length!==0)return S("div",{class:Po},ie)}function Ta($){_({page:1,rowsPerPage:$.value})}function Ia($){let ie;const{rowsPerPage:ve}=v.value,me=t.paginationLabel||s.lang.table.pagination,ye=e.pagination,ot=t.rowsPerPageOptions.length>1;if($.push(S("div",{class:"q-table__separator col"})),ot===!0&&$.push(S("div",{class:"q-table__control"},[S("span",{class:"q-table__bottom-item"},[t.rowsPerPageLabel||s.lang.table.recordsPerPage]),S(F_,{class:"q-table__select inline q-table__bottom-item",color:t.color,modelValue:ve,options:Bt.value,displayValue:ve===0?s.lang.table.allRows:ve,dark:o.value,borderless:!0,dense:!0,optionsDense:!0,optionsCover:!0,"onUpdate:modelValue":Ta})])),ye!==void 0)ie=ye(At.value);else if(ie=[S("span",ve!==0?{class:"q-table__bottom-item"}:{},[ve?me(te.value+1,Math.min(_e.value,dt.value),dt.value):me(1,D.value,dt.value)])],ve!==0&&Xe.value>1){const Je={color:t.color,round:!0,dense:!0,flat:!0};t.dense===!0&&(Je.size="sm"),Xe.value>2&&ie.push(S(Me,{key:"pgFirst",...Je,icon:nn.value[0],disable:G.value,"aria-label":s.lang.pagination.first,onClick:vt})),ie.push(S(Me,{key:"pgPrev",...Je,icon:nn.value[1],disable:G.value,"aria-label":s.lang.pagination.prev,onClick:yt}),S(Me,{key:"pgNext",...Je,icon:nn.value[2],disable:Ae.value,"aria-label":s.lang.pagination.next,onClick:Ge})),Xe.value>2&&ie.push(S(Me,{key:"pgLast",...Je,icon:nn.value[3],disable:Ae.value,"aria-label":s.lang.pagination.last,onClick:wt}))}return $.push(S("div",{class:"q-table__control"},ie)),$}function to(){const $=t.gridHeader===!0?[S("table",{class:"q-table"},[Se()])]:t.loading===!0&&e.loading===void 0?X():void 0;return S("div",{class:"q-table__middle"},$)}function Da(){const $=e.item!==void 0?e.item:ie=>{const ve=ie.cols.map(ye=>S("div",{class:"q-table__grid-item-row"},[S("div",{class:"q-table__grid-item-title"},[ye.label]),S("div",{class:"q-table__grid-item-value"},[ye.value])]));if(F.value===!0){const ye=e["body-selection"],ot=ye!==void 0?ye(ie):[S(cr,{modelValue:ie.selected,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(Je,Yt)=>{ae([ie.key],[ie.row],Je,Yt)}})];ve.unshift(S("div",{class:"q-table__grid-item-row"},ot),S(Lt,{dark:o.value}))}const me={class:["q-table__grid-item-card"+f.value,t.cardClass],style:t.cardStyle};if(t.cardStyleFn!==void 0&&(me.style=[me.style,t.cardStyleFn(ie.row)]),t.cardClassFn!==void 0){const ye=t.cardClassFn(ie.row);ye&&(me.class[0]+=` ${ye}`)}return(t.onRowClick!==void 0||t.onRowDblclick!==void 0||t.onRowContextmenu!==void 0)&&(me.class[0]+=" cursor-pointer",t.onRowClick!==void 0&&(me.onClick=ye=>{n("RowClick",ye,ie.row,ie.pageIndex)}),t.onRowDblclick!==void 0&&(me.onDblclick=ye=>{n("RowDblclick",ye,ie.row,ie.pageIndex)}),t.onRowContextmenu!==void 0&&(me.onContextmenu=ye=>{n("rowContextmenu",ye,ie.row,ie.pageIndex)})),S("div",{class:"q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3"+(ie.selected===!0?" q-table__grid-item--selected":"")},[S("div",me,ve)])};return S("div",{class:["q-table__grid-content row",t.cardContainerClass],style:t.cardContainerStyle},I.value.map((ie,ve)=>$(Pe({key:l.value(ie),row:ie,pageIndex:ve}))))}return Object.assign(i.proxy,{requestServerInteraction:w,setPagination:_,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt,isRowSelected:ee,clearSelection:Y,isRowExpanded:x,setExpanded:V,sort:B,resetVirtualScroll:Et,scrollTo:R,getCellValue:xt}),bm(i.proxy,{filteredSortedRows:()=>L.value,computedRows:()=>I.value,computedRowsNumber:()=>dt.value}),()=>{const $=[W()],ie={ref:u,class:g.value};return t.grid===!0?$.push(to()):Object.assign(ie,{class:[ie.class,t.cardClass],style:t.cardStyle}),$.push(qe(),Ln()),t.loading===!0&&e.loading!==void 0&&$.push(e.loading()),S("div",ie,$)}}}),lS={class:"q-pa-md"},uS={class:"row full-width items-center q-mb-sm"},cS={class:"col"},dS=be({__name:"BaseTable",props:{items:{},rowData:{type:[Function,Object]},columnConfig:{},rowKey:{},searchInputVisible:{type:Boolean},tableHeight:{},filter:{},columnsToSearch:{},rowExpandable:{type:Boolean}},emits:["row-click","update:filter"],setup(t,{emit:e}){Dd(f=>({"618895b2":f.tableHeight}));const n=t,i=N([]),s=ym(),o=m(()=>n.rowExpandable?Object.keys(s).filter(f=>!f.startsWith("body")):Object.keys(s)),a=e,r=m({get:()=>n.filter||"",set:f=>a("update:filter",f)}),l=m(()=>n.items.map(typeof n.rowData=="function"?n.rowData:n.rowData.value)),u=m(()=>n.columnConfig.filter(f=>!f.expandField).map(f=>({name:f.field,field:f.field,label:f.label,align:f.align??"left",sortable:!0,headerStyle:"font-weight: bold"}))),c=(f,h,g)=>{if(!h||h.trim()==="")return f;const p=h.toLowerCase(),v=n.columnsToSearch||g.map(b=>typeof b.field=="string"?b.field:"");return f.filter(b=>v.some(w=>{const _=b[w];return _&&String(_).toLowerCase().includes(p)}))},d=(f,h)=>a("row-click",h);return(f,h)=>(M(),Q("div",lS,[C(rS,{class:gt(["sticky-header-table",{"custom-table-height":f.tableHeight}]),rows:l.value,columns:u.value,"row-key":"id",expanded:i.value,"onUpdate:expanded":h[1]||(h[1]=g=>i.value=g),filter:r.value,"filter-method":c,"virtual-scroll":"","virtual-scroll-item-size":48,"virtual-scroll-sticky-size-start":30,onRowClick:d,"binary-state-sort":"",pagination:{rowsPerPage:0},"hide-bottom":""},xm({_:2},[f.searchInputVisible?{name:"top",fn:A(()=>[q("div",uS,[q("div",cS,[C(og,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=g=>r.value=g),dense:"",outlined:"",color:"white",placeholder:"Suchen...",class:"search-field white-outline-input","input-class":"text-white"},{append:A(()=>[C(xe,{name:"search",color:"white"})]),_:1},8,["modelValue"])])])]),key:"0"}:void 0,n.rowExpandable?{name:"header",fn:A(g=>[C(rr,{props:g},{default:A(()=>[C(Ar,{"auto-width":"",props:{...g,col:{}}},null,8,["props"]),(M(!0),Q(Oe,null,Qe(g.cols,p=>(M(),K(Ar,{key:p.name,props:{...g,col:p}},{default:A(()=>[$e(le(p.label),1)]),_:2},1032,["props"]))),128))]),_:2},1032,["props"])]),key:"1"}:void 0,n.rowExpandable?{name:"body",fn:A(g=>[(M(),K(rr,{key:`main-${g.key}`,props:g,onClick:p=>d(p,g.row),class:"clickable"},{default:A(()=>[C(yn,{"auto-width":""},{default:A(()=>[C(Me,{dense:"",flat:"",round:"",size:"sm",icon:g.expand?"keyboard_arrow_up":"keyboard_arrow_down",onClick:an(p=>g.expand=!g.expand,["stop"])},null,8,["icon","onClick"])]),_:2},1024),(M(!0),Q(Oe,null,Qe(g.cols,p=>(M(),Q(Oe,{key:p.name},[f.$slots[`body-cell-${p.name}`]?Vi(f.$slots,`body-cell-${p.name}`,_m({key:0,ref_for:!0},{...g,col:p}),void 0,!0):(M(),K(yn,{key:1,props:{...g,col:p,value:g.row[p.field]}},{default:A(()=>[$e(le(g.row[p.field]),1)]),_:2},1032,["props"]))],64))),128))]),_:2},1032,["props","onClick"])),cn((M(),K(rr,{key:`xp-${g.key}`,props:g,class:"q-virtual-scroll--with-prev"},{default:A(()=>[C(yn,{colspan:g.cols.length+1},{default:A(()=>[Vi(f.$slots,"row-expand",Bl(Nl(g)),void 0,!0)]),_:2},1032,["colspan"])]),_:2},1032,["props"])),[[wm,g.expand]])]),key:"2"}:void 0,Qe(o.value,g=>({name:g,fn:A(p=>[Vi(f.$slots,g,Bl(Nl(p)),void 0,!0)])}))]),1032,["class","rows","columns","expanded","filter"])]))}}),vg=mt(dS,[["__scopeId","data-v-d1f1dccd"]]),ut=ze({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(t,{slots:e}){const n=m(()=>`q-card__section q-card__section--${t.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>S(t.tag,{class:n.value},nt(e.default))}}),Qs=ze({name:"QCardActions",props:{...Sm,vertical:Boolean},setup(t,{slots:e}){const n=km(t),i=m(()=>`q-card__actions ${n.value} q-card__actions--${t.vertical===!0?"vert column":"horiz row"}`);return()=>S("div",{class:i.value},nt(e.default))}}),Ji=ze({name:"QCard",props:{...hn,tag:{type:String,default:"div"},square:Boolean,flat:Boolean,bordered:Boolean},setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=gn(t,n),s=m(()=>"q-card"+(i.value===!0?" q-card--dark q-dark":"")+(t.bordered===!0?" q-card--bordered":"")+(t.square===!0?" q-card--square no-border-radius":"")+(t.flat===!0?" q-card--flat no-shadow":""));return()=>S(t.tag,{class:s.value},nt(e.default))}}),td="q-slider__marker-labels",fS=t=>({value:t}),hS=({marker:t})=>S("div",{key:t.value,style:t.style,class:t.classes},t.label),pg=[34,37,40,33,39,38],gS={...hn,...ya,min:{type:Number,default:0},max:{type:Number,default:100},innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:t=>t>=0},snap:Boolean,vertical:Boolean,reverse:Boolean,color:String,markerLabelsClass:String,label:Boolean,labelColor:String,labelTextColor:String,labelAlways:Boolean,switchLabelSide:Boolean,markers:[Boolean,Number],markerLabels:[Boolean,Array,Object,Function],switchMarkerLabelsSide:Boolean,trackImg:String,trackColor:String,innerTrackImg:String,innerTrackColor:String,selectionColor:String,selectionImg:String,thumbSize:{type:String,default:"20px"},trackSize:{type:String,default:"4px"},disable:Boolean,readonly:Boolean,dense:Boolean,tabindex:[String,Number],thumbColor:String,thumbPath:{type:String,default:"M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"}},mS=["pan","update:modelValue","change"];function vS({updateValue:t,updatePosition:e,getDragging:n,formAttrs:i}){const{props:s,emit:o,slots:a,proxy:{$q:r}}=Ue(),l=gn(s,r),u=ng(i),c=N(!1),d=N(!1),f=N(!1),h=N(!1),g=m(()=>s.vertical===!0?"--v":"--h"),p=m(()=>"-"+(s.switchLabelSide===!0?"switched":"standard")),v=m(()=>s.vertical===!0?s.reverse===!0:s.reverse!==(r.lang.rtl===!0)),b=m(()=>isNaN(s.innerMin)===!0||s.innerMinisNaN(s.innerMax)===!0||s.innerMax>s.max?s.max:s.innerMax),_=m(()=>s.disable!==!0&&s.readonly!==!0&&b.value{if(s.step===0)return ge=>ge;const W=(String(s.step).trim().split(".")[1]||"").length;return ge=>parseFloat(ge.toFixed(W))}),x=m(()=>s.step===0?1:s.step),V=m(()=>_.value===!0?s.tabindex||0:-1),E=m(()=>s.max-s.min),L=m(()=>w.value-b.value),D=m(()=>Xe(b.value)),I=m(()=>Xe(w.value)),F=m(()=>s.vertical===!0?v.value===!0?"bottom":"top":v.value===!0?"right":"left"),T=m(()=>s.vertical===!0?"height":"width"),H=m(()=>s.vertical===!0?"width":"height"),z=m(()=>s.vertical===!0?"vertical":"horizontal"),j=m(()=>{const W={role:"slider","aria-valuemin":b.value,"aria-valuemax":w.value,"aria-orientation":z.value,"data-step":s.step};return s.disable===!0?W["aria-disabled"]="true":s.readonly===!0&&(W["aria-readonly"]="true"),W}),U=m(()=>`q-slider q-slider${g.value} q-slider--${c.value===!0?"":"in"}active inline no-wrap `+(s.vertical===!0?"row":"column")+(s.disable===!0?" disabled":" q-slider--enabled"+(_.value===!0?" q-slider--editable":""))+(f.value==="both"?" q-slider--focus":"")+(s.label||s.labelAlways===!0?" q-slider--label":"")+(s.labelAlways===!0?" q-slider--label-always":"")+(l.value===!0?" q-slider--dark":"")+(s.dense===!0?" q-slider--dense q-slider--dense"+g.value:""));function ee(W){const ge="q-slider__"+W;return`${ge} ${ge}${g.value} ${ge}${g.value}${p.value}`}function Y(W){const ge="q-slider__"+W;return`${ge} ${ge}${g.value}`}const ae=m(()=>{const W=s.selectionColor||s.color;return"q-slider__selection absolute"+(W!==void 0?` text-${W}`:"")}),ce=m(()=>Y("markers")+" absolute overflow-hidden"),O=m(()=>Y("track-container")),P=m(()=>ee("pin")),J=m(()=>ee("label")),ue=m(()=>ee("text-container")),he=m(()=>ee("marker-labels-container")+(s.markerLabelsClass!==void 0?` ${s.markerLabelsClass}`:"")),B=m(()=>"q-slider__track relative-position no-outline"+(s.trackColor!==void 0?` bg-${s.trackColor}`:"")),te=m(()=>{const W={[H.value]:s.trackSize};return s.trackImg!==void 0&&(W.backgroundImage=`url(${s.trackImg}) !important`),W}),_e=m(()=>"q-slider__inner absolute"+(s.innerTrackColor!==void 0?` bg-${s.innerTrackColor}`:"")),G=m(()=>{const W=I.value-D.value,ge={[F.value]:`${100*D.value}%`,[T.value]:W===0?"2px":`${100*W}%`};return s.innerTrackImg!==void 0&&(ge.backgroundImage=`url(${s.innerTrackImg}) !important`),ge});function Ae(W){const{min:ge,max:Se,step:He}=s;let st=ge+W*(Se-ge);if(He>0){const Nt=(st-b.value)%He;st+=(Math.abs(Nt)>=He/2?(Nt<0?-1:1)*He:0)-Nt}return st=y.value(st),Ii(st,b.value,w.value)}function Xe(W){return E.value===0?0:(W-s.min)/E.value}function Bt(W,ge){const Se=Lo(W),He=s.vertical===!0?Ii((Se.top-ge.top)/ge.height,0,1):Ii((Se.left-ge.left)/ge.width,0,1);return Ii(v.value===!0?1-He:He,D.value,I.value)}const dt=m(()=>Ds(s.markers)===!0?s.markers:x.value),vt=m(()=>{const W=[],ge=dt.value,Se=s.max;let He=s.min;do W.push(He),He+=ge;while(He{const W=` ${td}${g.value}-`;return td+`${W}${s.switchMarkerLabelsSide===!0?"switched":"standard"}${W}${v.value===!0?"rtl":"ltr"}`}),Ge=m(()=>s.markerLabels===!1?null:Ut(s.markerLabels).map((W,ge)=>({index:ge,value:W.value,label:W.label||W.value,classes:yt.value+(W.classes!==void 0?" "+W.classes:""),style:{...Et(W.value),...W.style||{}}}))),wt=m(()=>({markerList:Ge.value,markerMap:qe.value,classes:yt.value,getStyle:Et})),It=m(()=>{const W=L.value===0?"2px":100*dt.value/L.value;return{...G.value,backgroundSize:s.vertical===!0?`2px ${W}%`:`${W}% 2px`}});function Ut(W){if(W===!1)return null;if(W===!0)return vt.value.map(fS);if(typeof W=="function")return vt.value.map(Se=>{const He=W(Se);return To(He)===!0?{...He,value:Se}:{value:Se,label:He}});const ge=({value:Se})=>Se>=s.min&&Se<=s.max;return Array.isArray(W)===!0?W.map(Se=>To(Se)===!0?Se:{value:Se}).filter(ge):Object.keys(W).map(Se=>{const He=W[Se],st=Number(Se);return To(He)===!0?{...He,value:st}:{value:st,label:He}}).filter(ge)}function Et(W){return{[F.value]:`${100*(W-s.min)/E.value}%`}}const qe=m(()=>{if(s.markerLabels===!1)return null;const W={};return Ge.value.forEach(ge=>{W[ge.value]=ge}),W});function R(){if(a["marker-label-group"]!==void 0)return a["marker-label-group"](wt.value);const W=a["marker-label"]||hS;return Ge.value.map(ge=>W({marker:ge,...wt.value}))}const Z=m(()=>[[zm,X,void 0,{[z.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function X(W){W.isFinal===!0?(h.value!==void 0&&(e(W.evt),W.touch===!0&&t(!0),h.value=void 0,o("pan","end")),c.value=!1,f.value=!1):W.isFirst===!0?(h.value=n(W.evt),e(W.evt),t(),c.value=!0,o("pan","start")):(e(W.evt),t())}function De(){f.value=!1}function We(W){e(W,n(W)),t(),d.value=!0,c.value=!0,document.addEventListener("mouseup",Pe,!0)}function Pe(){d.value=!1,c.value=!1,t(!0),De(),document.removeEventListener("mouseup",Pe,!0)}function Ie(W){e(W,n(W)),t(!0)}function at(W){pg.includes(W.keyCode)&&t(!0)}function it(W){if(s.vertical===!0)return null;const ge=r.lang.rtl!==s.reverse?1-W:W;return{transform:`translateX(calc(${2*ge-1} * ${s.thumbSize} / 2 + ${50-100*ge}%))`}}function xt(W){const ge=m(()=>d.value===!1&&(f.value===W.focusValue||f.value==="both")?" q-slider--focus":""),Se=m(()=>`q-slider__thumb q-slider__thumb${g.value} q-slider__thumb${g.value}-${v.value===!0?"rtl":"ltr"} absolute non-selectable`+ge.value+(W.thumbColor.value!==void 0?` text-${W.thumbColor.value}`:"")),He=m(()=>({width:s.thumbSize,height:s.thumbSize,[F.value]:`${100*W.ratio.value}%`,zIndex:f.value===W.focusValue?2:void 0})),st=m(()=>W.labelColor.value!==void 0?` text-${W.labelColor.value}`:""),Nt=m(()=>it(W.ratio.value)),nn=m(()=>"q-slider__text"+(W.labelTextColor.value!==void 0?` text-${W.labelTextColor.value}`:""));return()=>{const Ln=[S("svg",{class:"q-slider__thumb-shape absolute-full",viewBox:"0 0 20 20","aria-hidden":"true"},[S("path",{d:s.thumbPath})]),S("div",{class:"q-slider__focus-ring fit"})];return(s.label===!0||s.labelAlways===!0)&&(Ln.push(S("div",{class:P.value+" absolute fit no-pointer-events"+st.value},[S("div",{class:J.value,style:{minWidth:s.thumbSize}},[S("div",{class:ue.value,style:Nt.value},[S("span",{class:nn.value},W.label.value)])])])),s.name!==void 0&&s.disable!==!0&&u(Ln,"push")),S("div",{class:Se.value,style:He.value,...W.getNodeData()},Ln)}}function At(W,ge,Se,He){const st=[];s.innerTrackColor!=="transparent"&&st.push(S("div",{key:"inner",class:_e.value,style:G.value})),s.selectionColor!=="transparent"&&st.push(S("div",{key:"selection",class:ae.value,style:W.value})),s.markers!==!1&&st.push(S("div",{key:"marker",class:ce.value,style:It.value})),He(st);const Nt=[ra("div",{key:"trackC",class:O.value,tabindex:ge.value,...Se.value},[S("div",{class:B.value,style:te.value},st)],"slide",_.value,()=>Z.value)];if(s.markerLabels!==!1){const nn=s.switchMarkerLabelsSide===!0?"unshift":"push";Nt[nn](S("div",{key:"markerL",class:he.value},R()))}return Nt}return zt(()=>{document.removeEventListener("mouseup",Pe,!0)}),{state:{active:c,focus:f,preventFocus:d,dragging:h,editable:_,classes:U,tabindex:V,attributes:j,roundValueFn:y,keyStep:x,trackLen:E,innerMin:b,innerMinRatio:D,innerMax:w,innerMaxRatio:I,positionProp:F,sizeProp:T,isReversed:v},methods:{onActivate:We,onMobileClick:Ie,onBlur:De,onKeyup:at,getContent:At,getThumbRenderFn:xt,convertRatioToModel:Ae,convertModelToRatio:Xe,getDraggingRatio:Bt}}}const pS=()=>({}),ea=ze({name:"QSlider",props:{...gS,modelValue:{required:!0,default:null,validator:t=>typeof t=="number"||t===null},labelValue:[String,Number]},emits:mS,setup(t,{emit:e}){const{proxy:{$q:n}}=Ue(),{state:i,methods:s}=vS({updateValue:g,updatePosition:v,getDragging:p,formAttrs:__(t)}),o=N(null),a=N(0),r=N(0);function l(){r.value=t.modelValue===null?i.innerMin.value:Ii(t.modelValue,i.innerMin.value,i.innerMax.value)}fe(()=>`${t.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,l),l();const u=m(()=>s.convertModelToRatio(r.value)),c=m(()=>i.active.value===!0?a.value:u.value),d=m(()=>{const _={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(c.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(_.backgroundImage=`url(${t.selectionImg}) !important`),_}),f=s.getThumbRenderFn({focusValue:!0,getNodeData:pS,ratio:c,label:m(()=>t.labelValue!==void 0?t.labelValue:r.value),thumbColor:m(()=>t.thumbColor||t.color),labelColor:m(()=>t.labelColor),labelTextColor:m(()=>t.labelTextColor)}),h=m(()=>i.editable.value!==!0?{}:n.platform.is.mobile===!0?{onClick:s.onMobileClick}:{onMousedown:s.onActivate,onFocus:b,onBlur:s.onBlur,onKeydown:w,onKeyup:s.onKeyup});function g(_){r.value!==t.modelValue&&e("update:modelValue",r.value),_===!0&&e("change",r.value)}function p(){return o.value.getBoundingClientRect()}function v(_,y=i.dragging.value){const x=s.getDraggingRatio(_,y);r.value=s.convertRatioToModel(x),a.value=t.snap!==!0||t.step===0?x:s.convertModelToRatio(r.value)}function b(){i.focus.value=!0}function w(_){if(pg.includes(_.keyCode)===!1)return;Ot(_);const y=([34,33].includes(_.keyCode)?10:1)*i.keyStep.value,x=([34,37,40].includes(_.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*y;r.value=Ii(i.roundValueFn.value(r.value+x),i.innerMin.value,i.innerMax.value),g()}return()=>{const _=s.getContent(d,i.tabindex,h,y=>{y.push(f())});return S("div",{ref:o,class:i.classes.value+(t.modelValue===null?" q-slider--no-value":""),...i.attributes.value,"aria-valuenow":t.modelValue},_)}}}),bS={class:"double-slider-container"},yS={class:"slider-container"},xS={class:"row justify-between no-wrap"},wS={class:"col"},_S={key:0,class:"col text-center"},SS={key:1,class:"col text-right"},kS=be({name:"SliderDouble",__name:"SliderDouble",props:{modelValue:{type:Number,required:!1,default:-1},readonly:{type:Boolean,default:!1},chargeMode:{type:String,default:""},limitMode:{type:String,default:"soc"},currentValue:{type:Number,default:0},targetTime:{type:String,required:!1,default:void 0},vehicleSocType:{type:String,required:!1,default:void 0},onEditSoc:{type:Function,required:!1},onRefreshSoc:{type:Function,required:!1}},emits:["update:modelValue"],setup(t,{emit:e}){const n=e,i=t,s=m({get:()=>i.modelValue,set:l=>{i.readonly||n("update:modelValue",l)}}),o=m(()=>s.value>=0&&i.limitMode!=="none"),a=m(()=>["soc","none"].includes(i.limitMode)?100:s.value),r=l=>l>=1e3?(l/1e3).toFixed(2)+" kWh":l.toFixed(0)+" Wh";return(l,u)=>(M(),Q("div",bS,[q("div",yS,[C(ea,{"model-value":t.currentValue,min:0,max:a.value,markers:i.limitMode=="amount"?1e4:10,color:"green-7",class:"current-slider","track-size":"1.5em","thumb-size":"0px",readonly:"","no-focus":"",onTouchstart:u[0]||(u[0]=an(()=>{},["stop"])),onTouchmove:u[1]||(u[1]=an(()=>{},["stop"])),onTouchend:u[2]||(u[2]=an(()=>{},["stop"]))},null,8,["model-value","max","markers"]),i.limitMode=="soc"?(M(),K(ea,{key:0,modelValue:s.value,"onUpdate:modelValue":u[3]||(u[3]=c=>s.value=c),min:0,max:100,color:"light-green-13","inner-track-color":"blue-grey-2",class:"target-slider","track-size":"1.5em","thumb-size":i.readonly?"0":"2em",readonly:i.readonly,onTouchstart:u[4]||(u[4]=an(()=>{},["stop"])),onTouchmove:u[5]||(u[5]=an(()=>{},["stop"])),onTouchend:u[6]||(u[6]=an(()=>{},["stop"]))},null,8,["modelValue","thumb-size","readonly"])):re("",!0)]),q("div",xS,[q("div",wS,[q("div",null,le(i.limitMode=="amount"?"Geladen":"Ladestand"),1),q("div",null,[$e(le(i.limitMode=="amount"?r(t.currentValue):t.currentValue+"%")+" ",1),t.vehicleSocType==="manual"&&t.limitMode!=="amount"?(M(),K(xe,{key:0,name:"edit",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onEditSoc},{default:A(()=>[C(En,null,{default:A(()=>u[7]||(u[7]=[$e("Ladestand eingeben",-1)])),_:1,__:[7]})]),_:1},8,["onClick"])):t.vehicleSocType!==void 0&&t.limitMode!=="amount"?(M(),K(xe,{key:1,name:"refresh",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onRefreshSoc},{default:A(()=>[C(En,null,{default:A(()=>u[8]||(u[8]=[$e("Ladestand aktualisieren",-1)])),_:1,__:[8]})]),_:1},8,["onClick"])):re("",!0)])]),i.targetTime?(M(),Q("div",_S,[u[9]||(u[9]=q("div",null,"Zielzeit",-1)),q("div",null,le(i.targetTime),1)])):re("",!0),o.value?(M(),Q("div",SS,[q("div",null,le(i.limitMode=="soc"?"Ladeziel":"Energieziel"),1),q("div",null,le(i.limitMode=="soc"?s.value+"%":s.value/1e3+" kWh"),1)])):re("",!0)])]))}}),Ml=mt(kS,[["__scopeId","data-v-3b9697ab"]]),xa=ze({name:"QToggle",props:{...fg,icon:String,iconColor:String},emits:hg,setup(t){function e(n,i){const s=m(()=>(n.value===!0?t.checkedIcon:i.value===!0?t.indeterminateIcon:t.uncheckedIcon)||t.icon),o=m(()=>n.value===!0?t.iconColor:null);return()=>[S("div",{class:"q-toggle__track"}),S("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},s.value!==void 0?[S(xe,{name:s.value,color:o.value})]:void 0)]}return gg("toggle",e)}}),bg=be({__name:"ChargePointLock",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,i=Re().chargePointManualLock(e.chargePointId);return(s,o)=>e.readonly?(M(),K(xe,{key:0,name:Ce(i)?"lock":"lock_open",size:"sm",color:Ce(i)?"negative":"positive"},null,8,["name","color"])):(M(),K(xa,{key:1,modelValue:Ce(i),"onUpdate:modelValue":o[0]||(o[0]=a=>Yr(i)?i.value=a:null),color:Ce(i)?"primary":"positive","checked-icon":"lock","unchecked-icon":"lock_open",size:"lg",dense:e.dense},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(Ce(i)?"Ladepunkt gesperrt":"Ladepunkt entsperrt"),1)]),_:1})]),_:1},8,["modelValue","color","dense"]))}}),ta=be({__name:"ChargePointStateIcon",props:{chargePointId:{},vehicleId:{}},setup(t){const e=t,n=Re(),i=m(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.plugged):e.chargePointId!==void 0?n.chargePointPlugState(e.chargePointId):!1),s=m(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.charging):e.chargePointId!==void 0?n.chargePointChargeState(e.chargePointId):!1);return(o,a)=>(M(),K(xe,{name:i.value?"power":"power_off",size:"sm",color:i.value?s.value?"positive":"warning":"negative"},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(i.value?s.value?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:1})]),_:1},8,["name","color"]))}}),yg=be({__name:"ChargePointPriority",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,n={off:"star_border",on:"star"},s=Re().chargePointConnectedVehiclePriority(e.chargePointId);return(o,a)=>e.readonly?(M(),K(xe,{key:0,name:Ce(s)?n.on:n.off,color:Ce(s)?"warning":"",size:"sm"},null,8,["name","color"])):(M(),K(xa,{key:1,modelValue:Ce(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Yr(s)?s.value=r:null),color:Ce(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(Ce(s)?"Fahrzeug priorisiert":"Fahrzeug nicht priorisiert"),1)]),_:1})]),_:1},8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),CS={key:0,class:"q-pt-md full-width"},MS=be({__name:"ChargePointModeButtons",props:{chargePointId:{}},setup(t){const e=t,n=m(()=>Zr.is.mobile),{chargeModes:i}=wl(),s=Re(),o=m(()=>s.chargePointConnectedVehicleChargeMode(e.chargePointId)),a=m(()=>i.find(r=>r.value===o.value.value)?.label);return(r,l)=>n.value?(M(),Q("div",CS,[C(fl,{"transition-show":"scale","transition-hide":"scale","transition-duration":"500",class:"full-width",color:"primary",label:a.value,size:"lg","dropdown-icon":"none",cover:"",push:""},{default:A(()=>[C(zs,null,{default:A(()=>[(M(!0),Q(Oe,null,Qe(Ce(i),(u,c)=>(M(),Q(Oe,{key:u.value},[cn((M(),K(Bs,{clickable:"",onClick:d=>o.value.value=u.value,active:o.value.value===u.value,"active-class":"bg-primary text-white"},{default:A(()=>[C(di,{class:"text-center text-weight-bold"},{default:A(()=>[C(Ns,null,{default:A(()=>[$e(le(u.label.toLocaleUpperCase()),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick","active"])),[[Vn]]),c[(M(!0),Q(Oe,null,Qe(Ce(i),u=>(M(),K(Me,{key:u.value,color:o.value.value===u.value?"primary":"grey",label:u.label,size:"sm",class:"flex-grow",onClick:c=>o.value.value=u.value},null,8,["color","label","onClick"]))),128))]),_:1}))}}),xg=mt(MS,[["__scopeId","data-v-674981ff"]]),nd=be({__name:"ChargePointMessage",props:{chargePointId:{},faultMessage:{type:Boolean}},setup(t){const e=t,n=Re(),i=N(!0),s=()=>{i.value=!i.value},o=m(()=>a.value!==void 0&&a.value!==0),a=m(()=>e.faultMessage?n.chargePointFaultState(e.chargePointId):-1),r=m(()=>e.faultMessage?n.chargePointFaultMessage(e.chargePointId):n.chargePointStateMessage(e.chargePointId)),l=m(()=>{switch(a.value){case 1:return"bg-warning";case 2:return"bg-negative";default:return"bg-primary"}}),u=m(()=>{switch(a.value){case 1:return"warning";case 2:return"error";default:return"info"}});return(c,d)=>o.value?(M(),Q("div",{key:0,class:gt(["row q-mt-sm q-pa-sm text-white no-wrap cursor-pointer",[{"items-center":i.value},l.value]]),style:{"border-radius":"10px"},onClick:s},[C(xe,{name:u.value,size:"sm",class:"q-mr-xs"},null,8,["name"]),q("div",{class:gt({ellipsis:i.value})},le(r.value),3)],2)):re("",!0)}}),PS={key:0,class:"q-mx-sm"},TS=["title"],wg=be({__name:"ChargePointVehicleSelect",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1}},setup(t){const e=t,n=Re(),i=n.chargePointConnectedVehicleInfo(e.chargePointId),s=m(()=>n.vehicleList);return(o,a)=>e.readonly?(M(),Q("div",PS,[C(xe,{name:"directions_car"}),$e(" "+le(Ce(i)?.name),1)])):(M(),K(fl,{key:1,color:"grey",dense:"","no-caps":""},{label:A(()=>[q("span",{class:"ellipsis q-ml-xs",title:Ce(i)?.name},[C(xe,{name:"directions_car"}),$e(" "+le(Ce(i)?.name),1)],8,TS)]),default:A(()=>[C(zs,null,{default:A(()=>[(M(!0),Q(Oe,null,Qe(s.value,r=>cn((M(),K(Bs,{key:r.id,clickable:"",dense:"",onClick:l=>i.value=r},{default:A(()=>[C(di,null,{default:A(()=>[C(Ns,{class:"ellipsis",title:r.name},{default:A(()=>[$e(le(r.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick"])),[[Vn]])),128))]),_:1})]),_:1}))}}),IS={class:"text-subtitle2"},DS={class:"row items-center justify-between q-ml-sm"},OS=be({name:"SliderStandard",__name:"SliderStandard",props:{title:{type:String,default:"title"},modelValue:{type:Number},max:{type:Number,required:!0},min:{type:Number,required:!0},step:{type:Number,default:1},unit:{type:String,default:""},offValueRight:{type:Number,default:105},offValueLeft:{type:Number,default:-1},discreteValues:{type:Array,default:void 0}},emits:["update:model-value"],setup(t,{emit:e}){const n=t,i=e,s=N(n.modelValue),o=N(null),a=m(()=>s.value!==n.modelValue),r=m({get:()=>{if(n.discreteValues){const f=n.discreteValues.indexOf(s.value??n.discreteValues[0]);return f>=0?f:0}return s.value},set:f=>{o.value&&clearTimeout(o.value),n.discreteValues?s.value=n.discreteValues[f]:s.value=f}}),l=f=>{a.value&&(o.value&&clearTimeout(o.value),o.value=setTimeout(()=>{i("update:model-value",n.discreteValues?n.discreteValues[f]:f)},2e3))},u=m(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"Aus":f}),c=m(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"":n.unit});fe(()=>n.modelValue,f=>{s.value=f}),zt(()=>{if(o.value){clearTimeout(o.value);const f=r.value!==void 0?r.value:0;i("update:model-value",n.discreteValues?n.discreteValues[f]:f)}});const d=m(()=>a.value?"pending":"");return(f,h)=>(M(),Q("div",null,[q("div",null,[q("div",IS,le(n.title),1)]),q("div",DS,[C(ea,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=g=>r.value=g),min:n.discreteValues?0:n.min,max:n.discreteValues?n.discreteValues.length-1:n.max,step:n.step,color:"primary",style:{width:"75%"},"track-size":"0.5em","thumb-size":"1.7em",onTouchstart:h[1]||(h[1]=an(()=>{},["stop"])),onTouchmove:h[2]||(h[2]=an(()=>{},["stop"])),onTouchend:h[3]||(h[3]=an(()=>{},["stop"])),onChange:l},null,8,["modelValue","min","max","step"]),q("div",{class:gt(["q-ml-md no-wrap",d.value])},le(u.value)+" "+le(c.value),3)])]))}}),qt=mt(OS,[["__scopeId","data-v-d1d2b5c9"]]),VS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},ES={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},AS=be({__name:"ChargePointInstantSettings",props:{chargePointId:{}},setup(t){const e=t,n=Re(),i=m(()=>{let h=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(h=h.filter(g=>g.value!=="soc")),h}),s=m(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"}],a=m(()=>n.chargePointConnectedVehicleInstantChargeCurrent(e.chargePointId)),r=m(()=>n.dcChargingEnabled),l=m(()=>n.chargePointConnectedVehicleInstantDcChargePower(e.chargePointId)),u=m(()=>n.chargePointConnectedVehicleInstantChargePhases(e.chargePointId)),c=m(()=>n.chargePointConnectedVehicleInstantChargeLimit(e.chargePointId)),d=m(()=>n.chargePointConnectedVehicleInstantChargeLimitSoC(e.chargePointId)),f=m(()=>n.chargePointConnectedVehicleInstantChargeLimitEnergy(e.chargePointId));return(h,g)=>(M(),Q(Oe,null,[C(qt,{title:"Stromstärke",min:6,max:32,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=p=>a.value.value=p),class:"q-mt-sm"},null,8,["modelValue"]),r.value?(M(),K(qt,{key:0,title:"DC-Sollleistung",min:4,max:300,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":g[1]||(g[1]=p=>l.value.value=p),class:"q-mt-sm"},null,8,["modelValue"])):re("",!0),g[4]||(g[4]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",VS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(o,p=>C(Me,{key:p.value,color:u.value.value===p.value?"primary":"grey",label:p.label,size:"sm",class:"col",onClick:v=>u.value.value=p.value},null,8,["color","label","onClick"])),64))]),_:1})]),g[5]||(g[5]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",ES,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(i.value,p=>(M(),K(Me,{key:p.value,color:c.value.value===p.value?"primary":"grey",label:p.label,size:"sm",class:"col",onClick:v=>c.value.value=p.value},null,8,["color","label","onClick"]))),128))]),_:1})]),c.value.value==="soc"?(M(),K(qt,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":g[2]||(g[2]=p=>d.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),c.value.value==="amount"?(M(),K(qt,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":g[3]||(g[3]=p=>f.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):re("",!0)],64))}}),qS=mt(AS,[["__scopeId","data-v-f45a6b19"]]),LS=be({__name:"ToggleStandard",props:{value:{type:Boolean,default:!1},size:{type:String,default:"lg"}},emits:["update:value"],setup(t,{emit:e}){const n=t,i=e,s=o=>{i("update:value",o)};return(o,a)=>(M(),K(xa,{"model-value":n.value,"onUpdate:modelValue":s,color:n.value?"positive":"negative",size:n.size},null,8,["model-value","color","size"]))}}),RS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},FS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},$S={key:3},zS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},BS={class:"row items-center justify-between q-ma-none q-pa-none no-wrap q-mt-md"},NS=be({__name:"ChargePointPvSettings",props:{chargePointId:{}},setup(t){const e=t,n=Re(),i=m(()=>{let _=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(_=_.filter(y=>y.value!=="soc")),_}),s=m(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"},{value:0,label:"Automatik"}],a=[{value:1,label:"1"},{value:3,label:"Maximum"}],r=m(()=>n.chargePointConnectedVehiclePvChargeMinCurrent(e.chargePointId)),l=m(()=>n.dcChargingEnabled),u=m(()=>n.chargePointConnectedVehiclePvDcChargePower(e.chargePointId)),c=m(()=>n.chargePointConnectedVehiclePvDcMinSocPower(e.chargePointId)),d=m(()=>n.chargePointConnectedVehiclePvChargePhases(e.chargePointId)),f=m(()=>n.chargePointConnectedVehiclePvChargePhasesMinSoc(e.chargePointId)),h=m(()=>n.chargePointConnectedVehiclePvChargeMinSoc(e.chargePointId)),g=m(()=>n.chargePointConnectedVehiclePvChargeMinSocCurrent(e.chargePointId)),p=m(()=>n.chargePointConnectedVehiclePvChargeLimit(e.chargePointId)),v=m(()=>n.chargePointConnectedVehiclePvChargeLimitSoC(e.chargePointId)),b=m(()=>n.chargePointConnectedVehiclePvChargeLimitEnergy(e.chargePointId)),w=m(()=>n.chargePointConnectedVehiclePvChargeFeedInLimit(e.chargePointId));return(_,y)=>(M(),Q(Oe,null,[C(qt,{title:"Minimaler Dauerstrom",min:-1,max:16,step:1,unit:"A","off-value-left":-1,"discrete-values":[-1,6,7,8,9,10,11,12,13,14,15,16],modelValue:r.value.value,"onUpdate:modelValue":y[0]||(y[0]=x=>r.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),K(qt,{key:0,title:"Minimaler DC-Dauerleistung",min:0,max:300,step:1,unit:"kW",modelValue:u.value.value,"onUpdate:modelValue":y[1]||(y[1]=x=>u.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),y[10]||(y[10]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",RS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(o,x=>C(Me,{key:x.value,color:d.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>d.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})]),y[11]||(y[11]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",FS,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(i.value,x=>(M(),K(Me,{key:x.value,color:p.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>p.value.value=x.value},null,8,["color","label","onClick"]))),128))]),_:1})]),p.value.value==="soc"?(M(),K(qt,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:v.value.value,"onUpdate:modelValue":y[2]||(y[2]=x=>v.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),p.value.value==="amount"?(M(),K(qt,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:b.value.value,"onUpdate:modelValue":y[3]||(y[3]=x=>b.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),Ce(s)!==void 0?(M(),Q("div",$S,[C(qt,{title:"Mindest-SoC für das Fahrzeug",min:0,max:100,step:5,unit:"%","off-value-left":0,modelValue:h.value.value,"onUpdate:modelValue":y[4]||(y[4]=x=>h.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),C(qt,{title:"Mindest-SoC-Strom",min:6,max:32,unit:"A",modelValue:g.value.value,"onUpdate:modelValue":y[5]||(y[5]=x=>g.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),K(qt,{key:0,title:"DC Mindest-SoC-Leistung",min:0,max:300,step:1,unit:"kW",modelValue:c.value.value,"onUpdate:modelValue":y[6]||(y[6]=x=>c.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),y[8]||(y[8]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen Mindest-SoC",-1)),q("div",zS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(a,x=>C(Me,{key:x.value,color:f.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>f.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})])])):re("",!0),q("div",BS,[y[9]||(y[9]=q("div",{class:"text-subtitle2 q-mr-sm"},"Einspeisegrenze beachten",-1)),q("div",null,[C(LS,{dense:"",modelValue:w.value.value,"onUpdate:modelValue":y[7]||(y[7]=x=>w.value.value=x)},null,8,["modelValue"])])])],64))}});/*! + */const s_={datetime:de.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:de.TIME_WITH_SECONDS,minute:de.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};Mf._date.override({_id:"luxon",_create:function(t){return de.fromMillis(t,this.options)},init(t){this.options.locale||(this.options.locale=t.locale)},formats:function(){return s_},parse:function(t,e){const n=this.options,i=typeof t;return t===null||i==="undefined"?null:(i==="number"?t=this._create(t):i==="string"?typeof e=="string"?t=de.fromFormat(t,e,n):t=de.fromISO(t,n):t instanceof Date?t=de.fromJSDate(t,n):i==="object"&&!(t instanceof de)&&(t=de.fromObject(t,n)),t.isValid?t.valueOf():null)},format:function(t,e){const n=this._create(t);return typeof e=="string"?n.toFormat(e):n.toLocaleString(e)},add:function(t,e,n){const i={};return i[n]=e,this._create(t).plus(i).valueOf()},diff:function(t,e,n){return this._create(t).diff(this._create(e)).as(n).valueOf()},startOf:function(t,e,n){if(e==="isoWeek"){n=Math.trunc(Math.min(Math.max(0,n),6));const i=this._create(t);return i.minus({days:(i.weekday-n+7)%7}).startOf("day").valueOf()}return e?this._create(t).startOf(e).valueOf():t},endOf:function(t,e){return this._create(t).endOf(e).valueOf()}});const o_={class:"chart-container"},a_={class:"chart-wrapper"},r_=be({__name:"HistoryChart",props:{showLegend:{type:Boolean}},setup(t){Yn.register(Nf,Li,On,Ps,Uo,Hi,M0,zf);const e=m(()=>o.showLegend),n=Re(),i=dl(),s=wn(),o=t,a=N(null),r=m(()=>a.value?.chart??null),l=y=>{y.data.datasets.forEach((x,V)=>{typeof x.label=="string"&&i.isDatasetHidden(x.label)&&y.hide(V)}),y.update()};fe(()=>a.value?.chart,y=>{y&&l(y)},{immediate:!0});const u=m(()=>{const y=n.chartData,x=Math.floor(Date.now()/1e3);return y.filter(V=>V.timestamp>x-p.value)}),c=m(()=>n.chargePointIds),d=m(()=>n.chargePointName),f=m(()=>{const y=n.getGridId;return y!==void 0?n.getComponentName(y):"Zähler"}),h=m(()=>f.value),g=m(()=>n.vehicleList),p=m(()=>n.themeConfiguration?.history_chart_range||3600),v=m(()=>c.value.map(y=>({label:`${d.value(y)}`,category:"chargepoint",unit:"kW",borderColor:"#4766b5",backgroundColor:"rgba(71, 102, 181, 0.2)",data:u.value.map(x=>({x:x.timestamp*1e3,y:x[`cp${y}-power`]||0})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"}))),b=m(()=>g.value.map(y=>{const x=`ev${y.id}-soc`;if(u.value.some(V=>x in V))return{label:`${y.name} SoC`,category:"vehicle",unit:"%",borderColor:"#9F8AFF",borderWidth:2,borderDash:[10,5],pointRadius:0,pointHoverRadius:4,pointHitRadius:5,data:u.value.map(V=>({x:V.timestamp*1e3,y:Number(V[x]??0)})),fill:!1,yAxisID:"y2"}}).filter(y=>y!==void 0)),w=m(()=>({datasets:[{label:f.value,category:"component",unit:"kW",borderColor:"#a33c42",backgroundColor:"rgba(239,182,188, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y.grid})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Hausverbrauch",category:"component",unit:"kW",borderColor:"#949aa1",backgroundColor:"rgba(148, 154, 161, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["house-power"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"PV ges.",category:"component",unit:"kW",borderColor:"green",backgroundColor:"rgba(144, 238, 144, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["pv-all"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Speicher ges.",category:"component",unit:"kW",borderColor:"#b5a647",backgroundColor:"rgba(181, 166, 71, 0.2)",data:u.value.map(y=>({x:y.timestamp*1e3,y:y["bat-all-power"]})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"},{label:"Speicher SoC",category:"component",unit:"%",borderColor:"#FFB96E",borderWidth:2,borderDash:[10,5],pointRadius:0,pointHoverRadius:4,pointHitRadius:5,data:u.value.map(y=>({x:y.timestamp*1e3,y:y["bat-all-soc"]})),fill:!1,yAxisID:"y2"},...v.value,...b.value]})),_=m(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,callbacks:{label:y=>`${y.dataset.label}: ${y.formattedValue} ${y.dataset.unit}`}}},scales:{x:{type:"time",time:{unit:"minute",displayFormats:{minute:"HH:mm"}},ticks:{maxTicksLimit:12,source:"auto"},grid:{tickLength:5,color:s.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y:{position:"left",type:"linear",display:!0,title:{display:!0,text:"Leistung [kW]"},ticks:{stepSize:.2,maxTicksLimit:11},grid:{color:s.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y2:{position:"right",type:"linear",display:!0,title:{display:!0,text:"SoC [%]"},min:0,max:100,ticks:{stepSize:10},grid:{display:!1}}}}));return(y,x)=>(M(),Q("div",o_,[q("div",a_,[(M(),K(Ce(Yf),{key:h.value,data:w.value,options:_.value,ref_key:"chartRef",ref:a},null,8,["data","options"]))]),e.value?(M(),K(ox,{key:0,chart:r.value,class:"legend-wrapper q-mt-sm"},null,8,["chart"])):re("",!0)]))}}),l_=mt(r_,[["__scopeId","data-v-2f0b7f99"]]),u_=be({name:"ChartCarousel",__name:"ChartCarousel",setup(t){const e=wn(),n=dl(),i=N(0),s=()=>{n.toggleLegendVisibility()},o=m(()=>n.legendVisible),a=N(!1),r=[{name:"EnergyFlowChart",component:Cv},{name:"HistoryChart",component:l_}],l=N(r[0].name);return fe(()=>a.value,(u,c)=>{!u&&c&&l.value==="HistoryChart"&&i.value++}),(u,c)=>(M(),K(Gd,{modelValue:l.value,"onUpdate:modelValue":c[1]||(c[1]=d=>l.value=d),fullscreen:a.value,"onUpdate:fullscreen":c[2]||(c[2]=d=>a.value=d),swipeable:"","control-color":"primary",padding:"",animated:"",infinite:"",navigation:r.length>1,arrows:r.length>1&&Ce(e).screen.gt.xs,class:"full-width full-height bg-transparent carousel-height"},{control:A(()=>[C(ev,{position:"bottom-right"},{default:A(()=>[l.value==="HistoryChart"?(M(),K(Me,{key:0,size:"sm",class:"q-mr-sm legend-button-text",label:"Legend ein/aus",onClick:s})):re("",!0),C(Me,{push:"",round:"",dense:"","text-color":"primary",icon:a.value?"fullscreen_exit":"fullscreen",onClick:c[0]||(c[0]=d=>a.value=!a.value)},null,8,["icon"])]),_:1})]),default:A(()=>[(M(),Q(Oe,null,Qe(r,d=>C(Zd,{key:`${d.name}-${d.name==="HistoryChart"?i.value:0}`,name:d.name},{default:A(()=>[(M(),K(fm(d.component),{"show-legend":o.value},null,8,["show-legend"]))]),_:2},1032,["name"])),64))]),_:1},8,["modelValue","fullscreen","navigation","arrows"]))}}),c_=mt(u_,[["__scopeId","data-v-85eaf875"]]),yn=ze({name:"QTd",props:{props:Object,autoWidth:Boolean,noHover:Boolean},setup(t,{slots:e}){const n=Ue(),i=m(()=>"q-td"+(t.autoWidth===!0?" q-table--col-auto-width":"")+(t.noHover===!0?" q-td--no-hover":"")+" ");return()=>{if(t.props===void 0)return S("td",{class:i.value},nt(e.default));const s=n.vnode.key,o=(t.props.colsMap!==void 0?t.props.colsMap[s]:null)||t.props.col;if(o===void 0)return;const{row:a}=t.props;return S("td",{class:i.value+o.__tdClass(a),style:o.__tdStyle(a)},nt(e.default))}}});let ko=0;const d_={standard:"fixed-full flex-center",top:"fixed-top justify-center",bottom:"fixed-bottom justify-center",right:"fixed-right items-center",left:"fixed-left items-center"},Nc={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},Gi=ze({name:"QDialog",inheritAttrs:!1,props:{...$d,...Xr,transitionShow:String,transitionHide:String,persistent:Boolean,autoClose:Boolean,allowFocusOutside:Boolean,noEscDismiss:Boolean,noBackdropDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,noShake:Boolean,seamless:Boolean,maximized:Boolean,fullWidth:Boolean,fullHeight:Boolean,square:Boolean,backdropFilter:String,position:{type:String,default:"standard",validator:t=>["standard","top","bottom","left","right"].includes(t)}},emits:[...Rd,"shake","click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){const s=Ue(),o=N(null),a=N(!1),r=N(!1);let l=null,u=null,c,d;const f=m(()=>t.persistent!==!0&&t.noRouteDismiss!==!0&&t.seamless!==!0),{preventBodyScroll:h}=Lm(),{registerTimeout:g}=Os(),{registerTick:p,removeTick:v}=_s(),{transitionProps:b,transitionStyle:w}=zd(t,()=>Nc[t.position][0],()=>Nc[t.position][1]),_=m(()=>w.value+(t.backdropFilter!==void 0?`;backdrop-filter:${t.backdropFilter};-webkit-backdrop-filter:${t.backdropFilter}`:"")),{showPortal:y,hidePortal:x,portalIsAccessible:V,renderPortal:E}=Nd(s,o,he,"dialog"),{hide:L}=Bd({showing:a,hideOnRouteChange:f,handleShow:j,handleHide:U,processOnMount:!0}),{addToHistory:D,removeFromHistory:I}=qm(a,L,f),F=m(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${t.maximized===!0?"maximized":"minimized"} q-dialog__inner--${t.position} ${d_[t.position]}`+(r.value===!0?" q-dialog__inner--animating":"")+(t.fullWidth===!0?" q-dialog__inner--fullwidth":"")+(t.fullHeight===!0?" q-dialog__inner--fullheight":"")+(t.square===!0?" q-dialog__inner--square":"")),T=m(()=>a.value===!0&&t.seamless!==!0),H=m(()=>t.autoClose===!0?{onClick:P}:{}),z=m(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${T.value===!0?"modal":"seamless"}`,i.class]);fe(()=>t.maximized,B=>{a.value===!0&&O(B)}),fe(T,B=>{h(B),B===!0?(Qf(ue),Xf(ae)):(_r(ue),Yo(ae))});function j(B){D(),u=t.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,O(t.maximized),y(),r.value=!0,t.noFocus!==!0?(document.activeElement?.blur(),p(ee)):v(),g(()=>{if(s.proxy.$q.platform.is.ios===!0){if(t.seamless!==!0&&document.activeElement){const{top:te,bottom:_e}=document.activeElement.getBoundingClientRect(),{innerHeight:G}=window,Ae=window.visualViewport!==void 0?window.visualViewport.height:G;te>0&&_e>Ae/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-Ae,_e>=G?1/0:Math.ceil(document.scrollingElement.scrollTop+_e-Ae/2))),document.activeElement.scrollIntoView()}d=!0,o.value.click(),d=!1}y(!0),r.value=!1,n("show",B)},t.transitionDuration)}function U(B){v(),I(),ce(!0),r.value=!0,x(),u!==null&&(((B?.type.indexOf("key")===0?u.closest('[tabindex]:not([tabindex^="-"])'):void 0)||u).focus(),u=null),g(()=>{x(!0),r.value=!1,n("hide",B)},t.transitionDuration)}function ee(B){la(()=>{let te=o.value;if(te!==null){if(B!==void 0){const _e=te.querySelector(B);if(_e!==null){_e.focus({preventScroll:!0});return}}te.contains(document.activeElement)!==!0&&(te=te.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||te.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||te.querySelector("[autofocus], [data-autofocus]")||te,te.focus({preventScroll:!0}))}})}function Y(B){B&&typeof B.focus=="function"?B.focus({preventScroll:!0}):ee(),n("shake");const te=o.value;te!==null&&(te.classList.remove("q-animate--scale"),te.classList.add("q-animate--scale"),l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,o.value!==null&&(te.classList.remove("q-animate--scale"),ee())},170))}function ae(){t.seamless!==!0&&(t.persistent===!0||t.noEscDismiss===!0?t.maximized!==!0&&t.noShake!==!0&&Y():(n("escapeKey"),L()))}function ce(B){l!==null&&(clearTimeout(l),l=null),(B===!0||a.value===!0)&&(O(!1),t.seamless!==!0&&(h(!1),_r(ue),Yo(ae))),B!==!0&&(u=null)}function O(B){B===!0?c!==!0&&(ko<1&&document.body.classList.add("q-body--dialog"),ko++,c=!0):c===!0&&(ko<2&&document.body.classList.remove("q-body--dialog"),ko--,c=!1)}function P(B){d!==!0&&(L(B),n("click",B))}function J(B){t.persistent!==!0&&t.noBackdropDismiss!==!0?L(B):t.noShake!==!0&&Y()}function ue(B){t.allowFocusOutside!==!0&&V.value===!0&&Ed(o.value,B.target)!==!0&&ee('[tabindex]:not([tabindex="-1"])')}Object.assign(s.proxy,{focus:ee,shake:Y,__updateRefocusTarget(B){u=B||null}}),zt(ce);function he(){return S("div",{role:"dialog","aria-modal":T.value===!0?"true":"false",...i,class:z.value},[S(Is,{name:"q-transition--fade",appear:!0},()=>T.value===!0?S("div",{class:"q-dialog__backdrop fixed-full",style:_.value,"aria-hidden":"true",tabindex:-1,onClick:J}):null),S(Is,b.value,()=>a.value===!0?S("div",{ref:o,class:F.value,style:w.value,tabindex:-1,...H.value},nt(e.default)):null)])}return E}});function Wc(t){if(t===!1)return 0;if(t===!0||t===void 0)return 1;const e=parseInt(t,10);return isNaN(e)?0:e}const Vn=Td({name:"close-popup",beforeMount(t,{value:e}){const n={depth:Wc(e),handler(i){n.depth!==0&&setTimeout(()=>{const s=Rm(t);s!==void 0&&Fm(s,i,n.depth)})},handlerKey(i){sa(i,13)===!0&&n.handler(i)}};t.__qclosepopup=n,t.addEventListener("click",n.handler),t.addEventListener("keyup",n.handlerKey)},updated(t,{value:e,oldValue:n}){e!==n&&(t.__qclosepopup.depth=Wc(e))},beforeUnmount(t){const e=t.__qclosepopup;t.removeEventListener("click",e.handler),t.removeEventListener("keyup",e.handlerKey),delete t.__qclosepopup}}),wl=()=>({chargeModes:[{value:"instant_charging",label:"Sofort",color:"negative"},{value:"pv_charging",label:"PV",color:"positive"},{value:"scheduled_charging",label:"Ziel",color:"primary"},{value:"eco_charging",label:"Eco",color:"accent"},{value:"stop",label:"Stop",color:"light"}]}),f_=be({__name:"BaseCarousel",props:{items:{}},setup(t){const e=t,n=wn(),i=N(0),s=N(!0),o=N(null),a=N([]),r=m(()=>{if(!a.value[0])return;const c=a.value[0]?.clientWidth??300;let d=0,f=0;const h=o.value?.$el.querySelector(".q-carousel__slide");if(h){d=h.clientWidth??0;const p=window.getComputedStyle(h);f=parseFloat(p.paddingLeft||"0")+parseFloat(p.paddingRight||"0")}const g=Math.max(1,Math.floor((d-f)/c));return e.items.length>g&&e.items.length<=g*2&&e.items.length-g===1&&e.items.length*c<=d?e.items.length:g}),l=m(()=>{const c=r.value?r.value:e.items.length;return e.items.reduce((d,f,h)=>{const g=Math.floor(h/c);return d[g]||(d[g]=[]),d[g].push(f),d},[])});fn(async()=>{await ht(()=>{window.addEventListener("resize",()=>{a.value=[...a.value]})})}),fe(()=>e.items,()=>{a.value=[...a.value]});const u=()=>{const c=window.scrollY;ht(()=>{window.scrollTo(0,c)})};return(c,d)=>(M(),K(Gd,{ref_key:"carouselRef",ref:o,modelValue:i.value,"onUpdate:modelValue":[d[0]||(d[0]=f=>i.value=f),u],swipeable:"",animated:s.value,"control-color":"primary",infinite:"",padding:"",navigation:l.value.length>1,arrows:l.value.length>1&&Ce(n).screen.gt.xs,class:"carousel-height","transition-next":"slide-left","transition-prev":"slide-right",onMousedown:d[1]||(d[1]=an(()=>{},["prevent"]))},{default:A(()=>[(M(!0),Q(Oe,null,Qe(l.value,(f,h)=>(M(),K(Zd,{key:h,name:h,class:"row no-wrap justify-center carousel-slide"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(f,(g,p)=>(M(),Q("div",{key:g,class:"item-container",ref_for:!0,ref:p===0&&h===0?"itemRef":void 0},[Vi(c.$slots,"item",{item:g},void 0,!0)]))),128))]),_:2},1032,["name"]))),128))]),_:3},8,["modelValue","animated","navigation","arrows"]))}}),_l=mt(f_,[["__scopeId","data-v-e2b77802"]]),Hc=/^on[A-Z]/;function h_(){const{attrs:t,vnode:e}=Ue(),n={listeners:N({}),attributes:N({})};function i(){const s={},o={};for(const a in t)a!=="class"&&a!=="style"&&Hc.test(a)===!1&&(s[a]=t[a]);for(const a in e.props)Hc.test(a)===!0&&(o[a]=e.props[a]);n.attributes.value=s,n.listeners.value=o}return qd(i),i(),n}function g_({validate:t,resetValidation:e,requiresQForm:n}){const i=qo(hm,!1);if(i!==!1){const{props:s,proxy:o}=Ue();Object.assign(o,{validate:t,resetValidation:e}),fe(()=>s.disable,a=>{a===!0?(typeof e=="function"&&e(),i.unbindComponent(o)):i.bindComponent(o)}),fn(()=>{s.disable!==!0&&i.bindComponent(o)}),zt(()=>{s.disable!==!0&&i.unbindComponent(o)})}else n===!0&&console.error("Parent QForm not found on useFormChild()!")}const jc=/^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,Uc=/^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,Yc=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Co=/^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,Mo=/^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/,ar={date:t=>/^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(t),time:t=>/^([0-1]?\d|2[0-3]):[0-5]\d$/.test(t),fulltime:t=>/^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t),timeOrFulltime:t=>/^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(t),email:t=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(t),hexColor:t=>jc.test(t),hexaColor:t=>Uc.test(t),hexOrHexaColor:t=>Yc.test(t),rgbColor:t=>Co.test(t),rgbaColor:t=>Mo.test(t),rgbOrRgbaColor:t=>Co.test(t)||Mo.test(t),hexOrRgbColor:t=>jc.test(t)||Co.test(t),hexaOrRgbaColor:t=>Uc.test(t)||Mo.test(t),anyColor:t=>Yc.test(t)||Co.test(t)||Mo.test(t)},m_=[!0,!1,"ondemand"],v_={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],default:!1,validator:t=>m_.includes(t)}};function p_(t,e){const{props:n,proxy:i}=Ue(),s=N(!1),o=N(null),a=N(!1);g_({validate:p,resetValidation:g});let r=0,l;const u=m(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length!==0),c=m(()=>n.disable!==!0&&u.value===!0&&e.value===!1),d=m(()=>n.error===!0||s.value===!0),f=m(()=>typeof n.errorMessage=="string"&&n.errorMessage.length!==0?n.errorMessage:o.value);fe(()=>n.modelValue,()=>{a.value=!0,c.value===!0&&n.lazyRules===!1&&v()});function h(){n.lazyRules!=="ondemand"&&c.value===!0&&a.value===!0&&v()}fe(()=>n.reactiveRules,b=>{b===!0?l===void 0&&(l=fe(()=>n.rules,h,{immediate:!0,deep:!0})):l!==void 0&&(l(),l=void 0)},{immediate:!0}),fe(()=>n.lazyRules,h),fe(t,b=>{b===!0?a.value=!0:c.value===!0&&n.lazyRules!=="ondemand"&&v()});function g(){r++,e.value=!1,a.value=!1,s.value=!1,o.value=null,v.cancel()}function p(b=n.modelValue){if(n.disable===!0||u.value===!1)return!0;const w=++r,_=e.value!==!0?()=>{a.value=!0}:()=>{},y=(V,E)=>{V===!0&&_(),s.value=V,o.value=E||null,e.value=!1},x=[];for(let V=0;V{if(V===void 0||Array.isArray(V)===!1||V.length===0)return w===r&&y(!1),!0;const E=V.find(L=>L===!1||typeof L=="string");return w===r&&y(E!==void 0,E),E===void 0},V=>(w===r&&(console.error(V),y(!0)),!1)))}const v=Ld(p,0);return zt(()=>{l?.(),v.cancel()}),Object.assign(i,{resetValidation:g,validate:p}),si(i,"hasError",()=>d.value),{isDirtyModel:a,hasRules:u,hasError:d,errorMessage:f,validate:p,resetValidation:g}}function $s(t){return t!=null&&(""+t).length!==0}const b_={...hn,...v_,label:String,stackLabel:Boolean,hint:String,hideHint:Boolean,prefix:String,suffix:String,labelColor:String,color:String,bgColor:String,filled:Boolean,outlined:Boolean,borderless:Boolean,standout:[Boolean,String],square:Boolean,loading:Boolean,labelSlot:Boolean,bottomSlots:Boolean,hideBottomSpace:Boolean,rounded:Boolean,dense:Boolean,itemAligned:Boolean,counter:Boolean,clearable:Boolean,clearIcon:String,disable:Boolean,readonly:Boolean,autofocus:Boolean,for:String},ba={...b_,maxlength:[Number,String]},Sl=["update:modelValue","clear","focus","blur"];function kl({requiredForAttr:t=!0,tagProp:e,changeEvent:n=!1}={}){const{props:i,proxy:s}=Ue(),o=gn(i,s.$q),a=Jf({required:t,getValue:()=>i.for});return{requiredForAttr:t,changeEvent:n,tag:e===!0?m(()=>i.tag):{value:"label"},isDark:o,editable:m(()=>i.disable!==!0&&i.readonly!==!0),innerLoading:N(!1),focused:N(!1),hasPopupOpen:!1,splitAttrs:h_(),targetUid:a,rootRef:N(null),targetRef:N(null),controlRef:N(null)}}function Cl(t){const{props:e,emit:n,slots:i,attrs:s,proxy:o}=Ue(),{$q:a}=o;let r=null;t.hasValue===void 0&&(t.hasValue=m(()=>$s(e.modelValue))),t.emitValue===void 0&&(t.emitValue=Y=>{n("update:modelValue",Y)}),t.controlEvents===void 0&&(t.controlEvents={onFocusin:D,onFocusout:I}),Object.assign(t,{clearValue:F,onControlFocusin:D,onControlFocusout:I,focus:E}),t.computedCounter===void 0&&(t.computedCounter=m(()=>{if(e.counter!==!1){const Y=typeof e.modelValue=="string"||typeof e.modelValue=="number"?(""+e.modelValue).length:Array.isArray(e.modelValue)===!0?e.modelValue.length:0,ae=e.maxlength!==void 0?e.maxlength:e.maxValues;return Y+(ae!==void 0?" / "+ae:"")}}));const{isDirtyModel:l,hasRules:u,hasError:c,errorMessage:d,resetValidation:f}=p_(t.focused,t.innerLoading),h=t.floatingLabel!==void 0?m(()=>e.stackLabel===!0||t.focused.value===!0||t.floatingLabel.value===!0):m(()=>e.stackLabel===!0||t.focused.value===!0||t.hasValue.value===!0),g=m(()=>e.bottomSlots===!0||e.hint!==void 0||u.value===!0||e.counter===!0||e.error!==null),p=m(()=>e.filled===!0?"filled":e.outlined===!0?"outlined":e.borderless===!0?"borderless":e.standout?"standout":"standard"),v=m(()=>`q-field row no-wrap items-start q-field--${p.value}`+(t.fieldClass!==void 0?` ${t.fieldClass.value}`:"")+(e.rounded===!0?" q-field--rounded":"")+(e.square===!0?" q-field--square":"")+(h.value===!0?" q-field--float":"")+(w.value===!0?" q-field--labeled":"")+(e.dense===!0?" q-field--dense":"")+(e.itemAligned===!0?" q-field--item-aligned q-item-type":"")+(t.isDark.value===!0?" q-field--dark":"")+(t.getControl===void 0?" q-field--auto-height":"")+(t.focused.value===!0?" q-field--focused":"")+(c.value===!0?" q-field--error":"")+(c.value===!0||t.focused.value===!0?" q-field--highlighted":"")+(e.hideBottomSpace!==!0&&g.value===!0?" q-field--with-bottom":"")+(e.disable===!0?" q-field--disabled":e.readonly===!0?" q-field--readonly":"")),b=m(()=>"q-field__control relative-position row no-wrap"+(e.bgColor!==void 0?` bg-${e.bgColor}`:"")+(c.value===!0?" text-negative":typeof e.standout=="string"&&e.standout.length!==0&&t.focused.value===!0?` ${e.standout}`:e.color!==void 0?` text-${e.color}`:"")),w=m(()=>e.labelSlot===!0||e.label!==void 0),_=m(()=>"q-field__label no-pointer-events absolute ellipsis"+(e.labelColor!==void 0&&c.value!==!0?` text-${e.labelColor}`:"")),y=m(()=>({id:t.targetUid.value,editable:t.editable.value,focused:t.focused.value,floatingLabel:h.value,modelValue:e.modelValue,emitValue:t.emitValue})),x=m(()=>{const Y={};return t.targetUid.value&&(Y.for=t.targetUid.value),e.disable===!0&&(Y["aria-disabled"]="true"),Y});function V(){const Y=document.activeElement;let ae=t.targetRef?.value;ae&&(Y===null||Y.id!==t.targetUid.value)&&(ae.hasAttribute("tabindex")===!0||(ae=ae.querySelector("[tabindex]")),ae!==Y&&ae?.focus({preventScroll:!0}))}function E(){la(V)}function L(){$m(V);const Y=document.activeElement;Y!==null&&t.rootRef.value.contains(Y)&&Y.blur()}function D(Y){r!==null&&(clearTimeout(r),r=null),t.editable.value===!0&&t.focused.value===!1&&(t.focused.value=!0,n("focus",Y))}function I(Y,ae){r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null,!(document.hasFocus()===!0&&(t.hasPopupOpen===!0||t.controlRef===void 0||t.controlRef.value===null||t.controlRef.value.contains(document.activeElement)!==!1))&&(t.focused.value===!0&&(t.focused.value=!1,n("blur",Y)),ae?.())})}function F(Y){Ot(Y),a.platform.is.mobile!==!0?(t.targetRef?.value||t.rootRef.value).focus():t.rootRef.value.contains(document.activeElement)===!0&&document.activeElement.blur(),e.type==="file"&&(t.inputRef.value.value=null),n("update:modelValue",null),t.changeEvent===!0&&n("change",null),n("clear",e.modelValue),ht(()=>{const ae=l.value;f(),l.value=ae})}function T(Y){[13,32].includes(Y.keyCode)&&F(Y)}function H(){const Y=[];return i.prepend!==void 0&&Y.push(S("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:Nn},i.prepend())),Y.push(S("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},z())),c.value===!0&&e.noErrorIcon===!1&&Y.push(U("error",[S(xe,{name:a.iconSet.field.error,color:"negative"})])),e.loading===!0||t.innerLoading.value===!0?Y.push(U("inner-loading-append",i.loading!==void 0?i.loading():[S(gm,{color:e.color})])):e.clearable===!0&&t.hasValue.value===!0&&t.editable.value===!0&&Y.push(U("inner-clearable-append",[S(xe,{class:"q-field__focusable-action",name:e.clearIcon||a.iconSet.field.clear,tabindex:0,role:"button","aria-hidden":"false","aria-label":a.lang.label.clear,onKeyup:T,onClick:F})])),i.append!==void 0&&Y.push(S("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:Nn},i.append())),t.getInnerAppend!==void 0&&Y.push(U("inner-append",t.getInnerAppend())),t.getControlChild!==void 0&&Y.push(t.getControlChild()),Y}function z(){const Y=[];return e.prefix!==void 0&&e.prefix!==null&&Y.push(S("div",{class:"q-field__prefix no-pointer-events row items-center"},e.prefix)),t.getShadowControl!==void 0&&t.hasShadow.value===!0&&Y.push(t.getShadowControl()),t.getControl!==void 0?Y.push(t.getControl()):i.rawControl!==void 0?Y.push(i.rawControl()):i.control!==void 0&&Y.push(S("div",{ref:t.targetRef,class:"q-field__native row",tabindex:-1,...t.splitAttrs.attributes.value,"data-autofocus":e.autofocus===!0||void 0},i.control(y.value))),w.value===!0&&Y.push(S("div",{class:_.value},nt(i.label,e.label))),e.suffix!==void 0&&e.suffix!==null&&Y.push(S("div",{class:"q-field__suffix no-pointer-events row items-center"},e.suffix)),Y.concat(nt(i.default))}function j(){let Y,ae;c.value===!0?d.value!==null?(Y=[S("div",{role:"alert"},d.value)],ae=`q--slot-error-${d.value}`):(Y=nt(i.error),ae="q--slot-error"):(e.hideHint!==!0||t.focused.value===!0)&&(e.hint!==void 0?(Y=[S("div",e.hint)],ae=`q--slot-hint-${e.hint}`):(Y=nt(i.hint),ae="q--slot-hint"));const ce=e.counter===!0||i.counter!==void 0;if(e.hideBottomSpace===!0&&ce===!1&&Y===void 0)return;const O=S("div",{key:ae,class:"q-field__messages col"},Y);return S("div",{class:"q-field__bottom row items-start q-field__bottom--"+(e.hideBottomSpace!==!0?"animated":"stale"),onClick:Nn},[e.hideBottomSpace===!0?O:S(Is,{name:"q-transition--field-message"},()=>O),ce===!0?S("div",{class:"q-field__counter"},i.counter!==void 0?i.counter():t.computedCounter.value):null])}function U(Y,ae){return ae===null?null:S("div",{key:Y,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},ae)}let ee=!1;return oa(()=>{ee=!0}),aa(()=>{ee===!0&&e.autofocus===!0&&o.focus()}),e.autofocus===!0&&fn(()=>{o.focus()}),zt(()=>{r!==null&&clearTimeout(r)}),Object.assign(o,{focus:E,blur:L}),function(){const ae=t.getControl===void 0&&i.control===void 0?{...t.splitAttrs.attributes.value,"data-autofocus":e.autofocus===!0||void 0,...x.value}:x.value;return S(t.tag.value,{ref:t.rootRef,class:[v.value,s.class],style:s.style,...ae},[i.before!==void 0?S("div",{class:"q-field__before q-field__marginal row no-wrap items-center",onClick:Nn},i.before()):null,S("div",{class:"q-field__inner relative-position col self-stretch"},[S("div",{ref:t.controlRef,class:b.value,tabindex:-1,...t.controlEvents},H()),g.value===!0?j():null]),i.after!==void 0?S("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:Nn},i.after()):null])}}const Zc={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},Go={"#":{pattern:"[\\d]",negate:"[^\\d]"},S:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]"},N:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]"},A:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:t=>t.toLocaleUpperCase()},a:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:t=>t.toLocaleLowerCase()},X:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:t=>t.toLocaleUpperCase()},x:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:t=>t.toLocaleLowerCase()}},tg=Object.keys(Go);tg.forEach(t=>{Go[t].regex=new RegExp(Go[t].pattern)});const y_=new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+tg.join("")+"])|(.)","g"),Xc=/[.*+?^${}()|[\]\\]/g,pt="",x_={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean};function w_(t,e,n,i){let s,o,a,r,l,u;const c=N(null),d=N(h());function f(){return t.autogrow===!0||["textarea","text","search","url","tel","password"].includes(t.type)}fe(()=>t.type+t.autogrow,p),fe(()=>t.mask,D=>{if(D!==void 0)v(d.value,!0);else{const I=E(d.value);p(),t.modelValue!==I&&e("update:modelValue",I)}}),fe(()=>t.fillMask+t.reverseFillMask,()=>{c.value===!0&&v(d.value,!0)}),fe(()=>t.unmaskedValue,()=>{c.value===!0&&v(d.value)});function h(){if(p(),c.value===!0){const D=x(E(t.modelValue));return t.fillMask!==!1?L(D):D}return t.modelValue}function g(D){if(D0;H--)I+=pt;F=F.slice(0,T)+I+F.slice(T)}return F}function p(){if(c.value=t.mask!==void 0&&t.mask.length!==0&&f(),c.value===!1){r=void 0,s="",o="";return}const D=Zc[t.mask]===void 0?t.mask:Zc[t.mask],I=typeof t.fillMask=="string"&&t.fillMask.length!==0?t.fillMask.slice(0,1):"_",F=I.replace(Xc,"\\$&"),T=[],H=[],z=[];let j=t.reverseFillMask===!0,U="",ee="";D.replace(y_,(O,P,J,ue,he)=>{if(ue!==void 0){const B=Go[ue];z.push(B),ee=B.negate,j===!0&&(H.push("(?:"+ee+"+)?("+B.pattern+"+)?(?:"+ee+"+)?("+B.pattern+"+)?"),j=!1),H.push("(?:"+ee+"+)?("+B.pattern+")?")}else if(J!==void 0)U="\\"+(J==="\\"?"":J),z.push(J),T.push("([^"+U+"]+)?"+U+"?");else{const B=P!==void 0?P:he;U=B==="\\"?"\\\\\\\\":B.replace(Xc,"\\\\$&"),z.push(B),T.push("([^"+U+"]+)?"+U+"?")}});const Y=new RegExp("^"+T.join("")+"("+(U===""?".":"[^"+U+"]")+"+)?"+(U===""?"":"["+U+"]*")+"$"),ae=H.length-1,ce=H.map((O,P)=>P===0&&t.reverseFillMask===!0?new RegExp("^"+F+"*"+O):P===ae?new RegExp("^"+O+"("+(ee===""?".":ee)+"+)?"+(t.reverseFillMask===!0?"$":F+"*")):new RegExp("^"+O));a=z,r=O=>{const P=Y.exec(t.reverseFillMask===!0?O:O.slice(0,z.length+1));P!==null&&(O=P.slice(1).join(""));const J=[],ue=ce.length;for(let he=0,B=O;hetypeof O=="string"?O:pt).join(""),o=s.split(pt).join(I)}function v(D,I,F){const T=i.value,H=T.selectionEnd,z=T.value.length-H,j=E(D);I===!0&&p();const U=x(j),ee=t.fillMask!==!1?L(U):U,Y=d.value!==ee;T.value!==ee&&(T.value=ee),Y===!0&&(d.value=ee),document.activeElement===T&&ht(()=>{if(ee===o){const ce=t.reverseFillMask===!0?o.length:0;T.setSelectionRange(ce,ce,"forward");return}if(F==="insertFromPaste"&&t.reverseFillMask!==!0){const ce=T.selectionEnd;let O=H-1;for(let P=l;P<=O&&PU.length?1:0:Math.max(0,ee.length-(ee===o?0:Math.min(U.length,z)+1))+1:H;T.setSelectionRange(ce,ce,"forward");return}if(t.reverseFillMask===!0)if(Y===!0){const ce=Math.max(0,ee.length-(ee===o?0:Math.min(U.length,z+1)));ce===1&&H===1?T.setSelectionRange(ce,ce,"forward"):w.rightReverse(T,ce)}else{const ce=ee.length-z;T.setSelectionRange(ce,ce,"backward")}else if(Y===!0){const ce=Math.max(0,s.indexOf(pt),Math.min(U.length,H)-1);w.right(T,ce)}else{const ce=H-1;w.right(T,ce)}});const ae=t.unmaskedValue===!0?E(ee):ee;String(t.modelValue)!==ae&&(t.modelValue!==null||ae!=="")&&n(ae,!0)}function b(D,I,F){const T=x(E(D.value));I=Math.max(0,s.indexOf(pt),Math.min(T.length,I)),l=I,D.setSelectionRange(I,F,"forward")}const w={left(D,I){const F=s.slice(I-1).indexOf(pt)===-1;let T=Math.max(0,I-1);for(;T>=0;T--)if(s[T]===pt){I=T,F===!0&&I++;break}if(T<0&&s[I]!==void 0&&s[I]!==pt)return w.right(D,0);I>=0&&D.setSelectionRange(I,I,"backward")},right(D,I){const F=D.value.length;let T=Math.min(F,I+1);for(;T<=F;T++)if(s[T]===pt){I=T;break}else s[T-1]===pt&&(I=T);if(T>F&&s[I-1]!==void 0&&s[I-1]!==pt)return w.left(D,F);D.setSelectionRange(I,I,"forward")},leftReverse(D,I){const F=g(D.value.length);let T=Math.max(0,I-1);for(;T>=0;T--)if(F[T-1]===pt){I=T;break}else if(F[T]===pt&&(I=T,T===0))break;if(T<0&&F[I]!==void 0&&F[I]!==pt)return w.rightReverse(D,0);I>=0&&D.setSelectionRange(I,I,"backward")},rightReverse(D,I){const F=D.value.length,T=g(F),H=T.slice(0,I+1).indexOf(pt)===-1;let z=Math.min(F,I+1);for(;z<=F;z++)if(T[z-1]===pt){I=z,I>0&&H===!0&&I--;break}if(z>F&&T[I-1]!==void 0&&T[I-1]!==pt)return w.leftReverse(D,F);D.setSelectionRange(I,I,"forward")}};function _(D){e("click",D),u=void 0}function y(D){if(e("keydown",D),Wr(D)===!0||D.altKey===!0)return;const I=i.value,F=I.selectionStart,T=I.selectionEnd;if(D.shiftKey||(u=void 0),D.keyCode===37||D.keyCode===39){D.shiftKey&&u===void 0&&(u=I.selectionDirection==="forward"?F:T);const H=w[(D.keyCode===39?"right":"left")+(t.reverseFillMask===!0?"Reverse":"")];if(D.preventDefault(),H(I,u===F?T:F),D.shiftKey){const z=I.selectionStart;I.setSelectionRange(Math.min(u,z),Math.max(u,z),"forward")}}else D.keyCode===8&&t.reverseFillMask!==!0&&F===T?(w.left(I,F),I.setSelectionRange(I.selectionStart,T,"backward")):D.keyCode===46&&t.reverseFillMask===!0&&F===T&&(w.rightReverse(I,T),I.setSelectionRange(F,I.selectionEnd,"forward"))}function x(D){if(D==null||D==="")return"";if(t.reverseFillMask===!0)return V(D);const I=a;let F=0,T="";for(let H=0;H=0&&T!==-1;z--){const j=I[z];let U=D[T];if(typeof j=="string")H=j+H;else if(U!==void 0&&j.regex.test(U))do H=(j.transform!==void 0?j.transform(U):U)+H,T--,U=D[T];while(F===z&&U!==void 0&&j.regex.test(U));else return H}return H}function E(D){return typeof D!="string"||r===void 0?typeof D=="number"?r(""+D):D:r(D)}function L(D){return o.length-D.length<=0?D:t.reverseFillMask===!0&&D.length!==0?o.slice(0,-D.length)+D:D+o.slice(D.length)}return{innerValue:d,hasMask:c,moveCursorForPaste:b,updateMaskValue:v,onMaskedKeydown:y,onMaskedClick:_}}const ya={name:String};function __(t){return m(()=>({type:"hidden",name:t.name,value:t.modelValue}))}function ng(t={}){return(e,n,i)=>{e[n](S("input",{class:"hidden"+(i||""),...t.value}))}}function ig(t){return m(()=>t.name||t.for)}function S_(t,e){function n(){const i=t.modelValue;try{const s="DataTransfer"in window?new DataTransfer:"ClipboardEvent"in window?new ClipboardEvent("").clipboardData:void 0;return Object(i)===i&&("length"in i?Array.from(i):[i]).forEach(o=>{s.items.add(o)}),{files:s.files}}catch{return{files:void 0}}}return m(()=>{if(t.type==="file")return n()})}const k_=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,C_=/[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u,M_=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,P_=/[a-z0-9_ -]$/i;function sg(t){return function(n){if(n.type==="compositionend"||n.type==="change"){if(n.target.qComposing!==!0)return;n.target.qComposing=!1,t(n)}else n.type==="compositionupdate"&&n.target.qComposing!==!0&&typeof n.data=="string"&&(Bn.is.firefox===!0?P_.test(n.data)===!1:k_.test(n.data)===!0||C_.test(n.data)===!0||M_.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}const og=ze({name:"QInput",inheritAttrs:!1,props:{...ba,...x_,...ya,modelValue:[String,Number,FileList],shadowText:String,type:{type:String,default:"text"},debounce:[String,Number],autogrow:Boolean,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...Sl,"paste","change","keydown","click","animationend"],setup(t,{emit:e,attrs:n}){const{proxy:i}=Ue(),{$q:s}=i,o={};let a=NaN,r,l,u=null,c;const d=N(null),f=ig(t),{innerValue:h,hasMask:g,moveCursorForPaste:p,updateMaskValue:v,onMaskedKeydown:b,onMaskedClick:w}=w_(t,e,U,d),_=S_(t),y=m(()=>$s(h.value)),x=sg(z),V=kl({changeEvent:!0}),E=m(()=>t.type==="textarea"||t.autogrow===!0),L=m(()=>E.value===!0||["text","search","url","tel","password"].includes(t.type)),D=m(()=>{const P={...V.splitAttrs.listeners.value,onInput:z,onPaste:H,onChange:Y,onBlur:ae,onFocus:In};return P.onCompositionstart=P.onCompositionupdate=P.onCompositionend=x,g.value===!0&&(P.onKeydown=b,P.onClick=w),t.autogrow===!0&&(P.onAnimationend=j),P}),I=m(()=>{const P={tabindex:0,"data-autofocus":t.autofocus===!0||void 0,rows:t.type==="textarea"?6:void 0,"aria-label":t.label,name:f.value,...V.splitAttrs.attributes.value,id:V.targetUid.value,maxlength:t.maxlength,disabled:t.disable===!0,readonly:t.readonly===!0};return E.value===!1&&(P.type=t.type),t.autogrow===!0&&(P.rows=1),P});fe(()=>t.type,()=>{d.value&&(d.value.value=t.modelValue)}),fe(()=>t.modelValue,P=>{if(g.value===!0){if(l===!0&&(l=!1,String(P)===a))return;v(P)}else h.value!==P&&(h.value=P,t.type==="number"&&o.hasOwnProperty("value")===!0&&(r===!0?r=!1:delete o.value));t.autogrow===!0&&ht(ee)}),fe(()=>t.autogrow,P=>{P===!0?ht(ee):d.value!==null&&n.rows>0&&(d.value.style.height="auto")}),fe(()=>t.dense,()=>{t.autogrow===!0&&ht(ee)});function F(){la(()=>{const P=document.activeElement;d.value!==null&&d.value!==P&&(P===null||P.id!==V.targetUid.value)&&d.value.focus({preventScroll:!0})})}function T(){d.value?.select()}function H(P){if(g.value===!0&&t.reverseFillMask!==!0){const J=P.target;p(J,J.selectionStart,J.selectionEnd)}e("paste",P)}function z(P){if(!P||!P.target)return;if(t.type==="file"){e("update:modelValue",P.target.files);return}const J=P.target.value;if(P.target.qComposing===!0){o.value=J;return}if(g.value===!0)v(J,!1,P.inputType);else if(U(J),L.value===!0&&P.target===document.activeElement){const{selectionStart:ue,selectionEnd:he}=P.target;ue!==void 0&&he!==void 0&&ht(()=>{P.target===document.activeElement&&J.indexOf(P.target.value)===0&&P.target.setSelectionRange(ue,he)})}t.autogrow===!0&&ee()}function j(P){e("animationend",P),ee()}function U(P,J){c=()=>{u=null,t.type!=="number"&&o.hasOwnProperty("value")===!0&&delete o.value,t.modelValue!==P&&a!==P&&(a=P,J===!0&&(l=!0),e("update:modelValue",P),ht(()=>{a===P&&(a=NaN)})),c=void 0},t.type==="number"&&(r=!0,o.value=P),t.debounce!==void 0?(u!==null&&clearTimeout(u),o.value=P,u=setTimeout(c,t.debounce)):c()}function ee(){requestAnimationFrame(()=>{const P=d.value;if(P!==null){const J=P.parentNode.style,{scrollTop:ue}=P,{overflowY:he,maxHeight:B}=s.platform.is.firefox===!0?{}:window.getComputedStyle(P),te=he!==void 0&&he!=="scroll";te===!0&&(P.style.overflowY="hidden"),J.marginBottom=P.scrollHeight-1+"px",P.style.height="1px",P.style.height=P.scrollHeight+"px",te===!0&&(P.style.overflowY=parseInt(B,10){d.value!==null&&(d.value.value=h.value!==void 0?h.value:"")})}function ce(){return o.hasOwnProperty("value")===!0?o.value:h.value!==void 0?h.value:""}zt(()=>{ae()}),fn(()=>{t.autogrow===!0&&ee()}),Object.assign(V,{innerValue:h,fieldClass:m(()=>`q-${E.value===!0?"textarea":"input"}`+(t.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:m(()=>t.type!=="file"&&typeof t.shadowText=="string"&&t.shadowText.length!==0),inputRef:d,emitValue:U,hasValue:y,floatingLabel:m(()=>y.value===!0&&(t.type!=="number"||isNaN(h.value)===!1)||$s(t.displayValue)),getControl:()=>S(E.value===!0?"textarea":"input",{ref:d,class:["q-field__native q-placeholder",t.inputClass],style:t.inputStyle,...I.value,...D.value,...t.type!=="file"?{value:ce()}:_.value}),getShadowControl:()=>S("div",{class:"q-field__native q-field__shadow absolute-bottom no-pointer-events"+(E.value===!0?"":" text-no-wrap")},[S("span",{class:"invisible"},ce()),S("span",t.shadowText)])});const O=Cl(V);return Object.assign(i,{focus:F,select:T,getNativeElement:()=>d.value}),si(i,"nativeEl",()=>d.value),O}}),Ar=ze({name:"QTh",props:{props:Object,autoWidth:Boolean},emits:["click"],setup(t,{slots:e,emit:n}){const i=Ue(),{proxy:{$q:s}}=i,o=a=>{n("click",a)};return()=>{if(t.props===void 0)return S("th",{class:t.autoWidth===!0?"q-table--col-auto-width":"",onClick:o},nt(e.default));let a,r;const l=i.vnode.key;if(l){if(a=t.props.colsMap[l],a===void 0)return}else a=t.props.col;if(a.sortable===!0){const c=a.align==="right"?"unshift":"push";r=mm(e.default,[]),r[c](S(xe,{class:a.__iconClass,name:s.iconSet.table.arrowUp}))}else r=nt(e.default);const u={class:a.__thClass+(t.autoWidth===!0?" q-table--col-auto-width":""),style:a.headerStyle,onClick:c=>{a.sortable===!0&&t.props.sort(a),o(c)}};return S("th",u,r)}}}),rr=ze({name:"QTr",props:{props:Object,noHover:Boolean},setup(t,{slots:e}){const n=m(()=>"q-tr"+(t.props===void 0||t.props.header===!0?"":" "+t.props.__trClass)+(t.noHover===!0?" q-tr--no-hover":""));return()=>S("tr",{style:t.props?.__trStyle,class:n.value},nt(e.default))}}),T_=["horizontal","vertical","cell","none"],I_=ze({name:"QMarkupTable",props:{...hn,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,wrapCells:Boolean,separator:{type:String,default:"horizontal",validator:t=>T_.includes(t)}},setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),s=m(()=>`q-markup-table q-table__container q-table__card q-table--${t.separator}-separator`+(i.value===!0?" q-table--dark q-table__card--dark q-dark":"")+(t.dense===!0?" q-table--dense":"")+(t.flat===!0?" q-table--flat":"")+(t.bordered===!0?" q-table--bordered":"")+(t.square===!0?" q-table--square":"")+(t.wrapCells===!1?" q-table--no-wrap":""));return()=>S("div",{class:s.value},[S("table",{class:"q-table"},nt(e.default))])}});function ag(t,e){return S("div",t,[S("table",{class:"q-table"},e)])}const rn=1e3,D_=["start","center","end","start-force","center-force","end-force"],rg=Array.prototype.filter,O_=window.getComputedStyle(document.body).overflowAnchor===void 0?Id:function(t,e){t!==null&&(t._qOverflowAnimationFrame!==void 0&&cancelAnimationFrame(t._qOverflowAnimationFrame),t._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(t===null)return;t._qOverflowAnimationFrame=void 0;const n=t.children||[];rg.call(n,s=>s.dataset&&s.dataset.qVsAnchor!==void 0).forEach(s=>{delete s.dataset.qVsAnchor});const i=n[e];i?.dataset&&(i.dataset.qVsAnchor="")}))};function $i(t,e){return t+e}function lr(t,e,n,i,s,o,a,r){const l=t===window?document.scrollingElement||document.documentElement:t,u=s===!0?"offsetWidth":"offsetHeight",c={scrollStart:0,scrollViewSize:-a-r,scrollMaxSize:0,offsetStart:-a,offsetEnd:-r};if(s===!0?(t===window?(c.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,c.scrollViewSize+=document.documentElement.clientWidth):(c.scrollStart=l.scrollLeft,c.scrollViewSize+=l.clientWidth),c.scrollMaxSize=l.scrollWidth,o===!0&&(c.scrollStart=(Vs===!0?c.scrollMaxSize-c.scrollViewSize:0)-c.scrollStart)):(t===window?(c.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,c.scrollViewSize+=document.documentElement.clientHeight):(c.scrollStart=l.scrollTop,c.scrollViewSize+=l.clientHeight),c.scrollMaxSize=l.scrollHeight),n!==null)for(let d=n.previousElementSibling;d!==null;d=d.previousElementSibling)d.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetStart+=d[u]);if(i!==null)for(let d=i.nextElementSibling;d!==null;d=d.nextElementSibling)d.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetEnd+=d[u]);if(e!==t){const d=l.getBoundingClientRect(),f=e.getBoundingClientRect();s===!0?(c.offsetStart+=f.left-d.left,c.offsetEnd-=f.width):(c.offsetStart+=f.top-d.top,c.offsetEnd-=f.height),t!==window&&(c.offsetStart+=c.scrollStart),c.offsetEnd+=c.scrollMaxSize-c.offsetStart}return c}function Kc(t,e,n,i){e==="end"&&(e=(t===window?document.body:t)[n===!0?"scrollWidth":"scrollHeight"]),t===window?n===!0?(i===!0&&(e=(Vs===!0?document.body.scrollWidth-document.documentElement.clientWidth:0)-e),window.scrollTo(e,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,e):n===!0?(i===!0&&(e=(Vs===!0?t.scrollWidth-t.offsetWidth:0)-e),t.scrollLeft=e):t.scrollTop=e}function ds(t,e,n,i){if(n>=i)return 0;const s=e.length,o=Math.floor(n/rn),a=Math.floor((i-1)/rn)+1;let r=t.slice(o,a).reduce($i,0);return n%rn!==0&&(r-=e.slice(o*rn,n).reduce($i,0)),i%rn!==0&&i!==s&&(r-=e.slice(i,a*rn).reduce($i,0)),r}const lg={virtualScrollSliceSize:{type:[Number,String],default:10},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]},ug=Object.keys(lg),qr={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...lg};function cg({virtualScrollLength:t,getVirtualScrollTarget:e,getVirtualScrollEl:n,virtualScrollItemSizeComputed:i}){const s=Ue(),{props:o,emit:a,proxy:r}=s,{$q:l}=r;let u,c,d,f=[],h;const g=N(0),p=N(0),v=N({}),b=N(null),w=N(null),_=N(null),y=N({from:0,to:0}),x=m(()=>o.tableColspan!==void 0?o.tableColspan:100);i===void 0&&(i=m(()=>o.virtualScrollItemSize));const V=m(()=>i.value+";"+o.virtualScrollHorizontal),E=m(()=>V.value+";"+o.virtualScrollSliceRatioBefore+";"+o.virtualScrollSliceRatioAfter);fe(E,()=>{U()}),fe(V,L);function L(){j(c,!0)}function D(O){j(O===void 0?c:O)}function I(O,P){const J=e();if(J==null||J.nodeType===8)return;const ue=lr(J,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd);d!==ue.scrollViewSize&&U(ue.scrollViewSize),T(J,ue,Math.min(t.value-1,Math.max(0,parseInt(O,10)||0)),0,D_.indexOf(P)!==-1?P:c!==-1&&O>c?"end":"start")}function F(){const O=e();if(O==null||O.nodeType===8)return;const P=lr(O,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd),J=t.value-1,ue=P.scrollMaxSize-P.offsetStart-P.offsetEnd-p.value;if(u===P.scrollStart)return;if(P.scrollMaxSize<=0){T(O,P,0,0);return}d!==P.scrollViewSize&&U(P.scrollViewSize),H(y.value.from);const he=Math.floor(P.scrollMaxSize-Math.max(P.scrollViewSize,P.offsetEnd)-Math.min(h[J],P.scrollViewSize/2));if(he>0&&Math.ceil(P.scrollStart)>=he){T(O,P,J,P.scrollMaxSize-P.offsetEnd-f.reduce($i,0));return}let B=0,te=P.scrollStart-P.offsetStart,_e=te;if(te<=ue&&te+P.scrollViewSize>=g.value)te-=g.value,B=y.value.from,_e=te;else for(let G=0;te>=f[G]&&B0&&B-P.scrollViewSize?(B++,_e=te):_e=h[B]+te;T(O,P,B,_e)}function T(O,P,J,ue,he){const B=typeof he=="string"&&he.indexOf("-force")!==-1,te=B===!0?he.replace("-force",""):he,_e=te!==void 0?te:"start";let G=Math.max(0,J-v.value[_e]),Ae=G+v.value.total;Ae>t.value&&(Ae=t.value,G=Math.max(0,Ae-v.value.total)),u=P.scrollStart;const Xe=G!==y.value.from||Ae!==y.value.to;if(Xe===!1&&te===void 0){Y(J);return}const{activeElement:Bt}=document,dt=_.value;Xe===!0&&dt!==null&&dt!==Bt&&dt.contains(Bt)===!0&&(dt.addEventListener("focusout",z),setTimeout(()=>{dt?.removeEventListener("focusout",z)})),O_(dt,J-G);const vt=te!==void 0?h.slice(G,J).reduce($i,0):0;if(Xe===!0){const yt=Ae>=y.value.from&&G<=y.value.to?y.value.to:Ae;y.value={from:G,to:yt},g.value=ds(f,h,0,G),p.value=ds(f,h,Ae,t.value),requestAnimationFrame(()=>{y.value.to!==Ae&&u===P.scrollStart&&(y.value={from:y.value.from,to:Ae},p.value=ds(f,h,Ae,t.value))})}requestAnimationFrame(()=>{if(u!==P.scrollStart)return;Xe===!0&&H(G);const yt=h.slice(G,J).reduce($i,0),Ge=yt+P.offsetStart+g.value,wt=Ge+h[J];let It=Ge+ue;if(te!==void 0){const Ut=yt-vt,Et=P.scrollStart+Ut;It=B!==!0&&EtG.classList&&G.classList.contains("q-virtual-scroll--skip")===!1),ue=J.length,he=o.virtualScrollHorizontal===!0?G=>G.getBoundingClientRect().width:G=>G.offsetHeight;let B=O,te,_e;for(let G=0;G=ue;B--)h[B]=J;const he=Math.floor((t.value-1)/rn);f=[];for(let B=0;B<=he;B++){let te=0;const _e=Math.min((B+1)*rn,t.value);for(let G=B*rn;G<_e;G++)te+=h[G];f.push(te)}c=-1,u=void 0,g.value=ds(f,h,0,y.value.from),p.value=ds(f,h,y.value.to,t.value),O>=0?(H(y.value.from),ht(()=>{I(O)})):ae()}function U(O){if(O===void 0&&typeof window<"u"){const te=e();te!=null&&te.nodeType!==8&&(O=lr(te,n(),b.value,w.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd).scrollViewSize)}d=O;const P=parseFloat(o.virtualScrollSliceRatioBefore)||0,J=parseFloat(o.virtualScrollSliceRatioAfter)||0,ue=1+P+J,he=O===void 0||O<=0?1:Math.ceil(O/i.value),B=Math.max(1,he,Math.ceil((o.virtualScrollSliceSize>0?o.virtualScrollSliceSize:10)/ue));v.value={total:Math.ceil(B*ue),start:Math.ceil(B*P),center:Math.ceil(B*(.5+P)),end:Math.ceil(B*(1+P)),view:he}}function ee(O,P){const J=o.virtualScrollHorizontal===!0?"width":"height",ue={["--q-virtual-scroll-item-"+J]:i.value+"px"};return[O==="tbody"?S(O,{class:"q-virtual-scroll__padding",key:"before",ref:b},[S("tr",[S("td",{style:{[J]:`${g.value}px`,...ue},colspan:x.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"before",ref:b,style:{[J]:`${g.value}px`,...ue}}),S(O,{class:"q-virtual-scroll__content",key:"content",ref:_,tabindex:-1},P.flat()),O==="tbody"?S(O,{class:"q-virtual-scroll__padding",key:"after",ref:w},[S("tr",[S("td",{style:{[J]:`${p.value}px`,...ue},colspan:x.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"after",ref:w,style:{[J]:`${p.value}px`,...ue}})]}function Y(O){c!==O&&(o.onVirtualScroll!==void 0&&a("virtualScroll",{index:O,from:y.value.from,to:y.value.to-1,direction:O{U()});let ce=!1;return oa(()=>{ce=!0}),aa(()=>{if(ce!==!0)return;const O=e();u!==void 0&&O!==void 0&&O!==null&&O.nodeType!==8?Kc(O,u,o.virtualScrollHorizontal,l.lang.rtl):I(c)}),zt(()=>{ae.cancel()}),Object.assign(r,{scrollTo:I,reset:L,refresh:D}),{virtualScrollSliceRange:y,virtualScrollSliceSizeComputed:v,setVirtualScrollSize:U,onVirtualScrollEvt:ae,localResetVirtualScroll:j,padVirtualScroll:ee,scrollTo:I,reset:L,refresh:D}}const V_={list:zs,table:I_},E_=["list","table","__qtable"],A_=ze({name:"QVirtualScroll",props:{...qr,type:{type:String,default:"list",validator:t=>E_.includes(t)},items:{type:Array,default:()=>[]},itemsFn:Function,itemsSize:Number,scrollTarget:Fd},setup(t,{slots:e,attrs:n}){let i;const s=N(null),o=m(()=>t.itemsSize>=0&&t.itemsFn!==void 0?parseInt(t.itemsSize,10):Array.isArray(t.items)?t.items.length:0),{virtualScrollSliceRange:a,localResetVirtualScroll:r,padVirtualScroll:l,onVirtualScrollEvt:u}=cg({virtualScrollLength:o,getVirtualScrollTarget:g,getVirtualScrollEl:h}),c=m(()=>{if(o.value===0)return[];const w=(_,y)=>({index:a.value.from+y,item:_});return t.itemsFn===void 0?t.items.slice(a.value.from,a.value.to).map(w):t.itemsFn(a.value.from,a.value.to-a.value.from).map(w)}),d=m(()=>"q-virtual-scroll q-virtual-scroll"+(t.virtualScrollHorizontal===!0?"--horizontal":"--vertical")+(t.scrollTarget!==void 0?"":" scroll")),f=m(()=>t.scrollTarget!==void 0?{}:{tabindex:0});fe(o,()=>{r()}),fe(()=>t.scrollTarget,()=>{v(),p()});function h(){return s.value.$el||s.value}function g(){return i}function p(){i=Wd(h(),t.scrollTarget),i.addEventListener("scroll",u,$l.passive)}function v(){i!==void 0&&(i.removeEventListener("scroll",u,$l.passive),i=void 0)}function b(){let w=l(t.type==="list"?"div":"tbody",c.value.map(e.default));return e.before!==void 0&&(w=e.before().concat(w)),mi(e.after,w)}return Hr(()=>{r()}),fn(()=>{p()}),aa(()=>{p()}),oa(()=>{v()}),zt(()=>{v()}),()=>{if(e.default===void 0){console.error("QVirtualScroll: default scoped slot is required for rendering");return}return t.type==="__qtable"?ag({ref:s,class:"q-table__middle "+d.value},b()):S(V_[t.type],{...n,ref:s,class:[n.class,d.value],...f.value},b)}}}),dg=ze({name:"QField",inheritAttrs:!1,props:{...ba,tag:{type:String,default:"label"}},emits:Sl,setup(){return Cl(kl({tagProp:!0}))}}),q_={xs:8,sm:10,md:14,lg:20,xl:24},Jo=ze({name:"QChip",props:{...hn,...jr,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:["update:modelValue","update:selected","remove","click"],setup(t,{slots:e,emit:n}){const{proxy:{$q:i}}=Ue(),s=gn(t,i),o=Ur(t,q_),a=m(()=>t.selected===!0||t.icon!==void 0),r=m(()=>t.selected===!0?t.iconSelected||i.iconSet.chip.selected:t.icon),l=m(()=>t.iconRemove||i.iconSet.chip.remove),u=m(()=>t.disable===!1&&(t.clickable===!0||t.selected!==null)),c=m(()=>{const v=t.outline===!0&&t.color||t.textColor;return"q-chip row inline no-wrap items-center"+(t.outline===!1&&t.color!==void 0?` bg-${t.color}`:"")+(v?` text-${v} q-chip--colored`:"")+(t.disable===!0?" disabled":"")+(t.dense===!0?" q-chip--dense":"")+(t.outline===!0?" q-chip--outline":"")+(t.selected===!0?" q-chip--selected":"")+(u.value===!0?" q-chip--clickable cursor-pointer non-selectable q-hoverable":"")+(t.square===!0?" q-chip--square":"")+(s.value===!0?" q-chip--dark q-dark":"")}),d=m(()=>{const v=t.disable===!0?{tabindex:-1,"aria-disabled":"true"}:{tabindex:t.tabindex||0},b={...v,role:"button","aria-hidden":"false","aria-label":t.removeAriaLabel||i.lang.label.remove};return{chip:v,remove:b}});function f(v){v.keyCode===13&&h(v)}function h(v){t.disable||(n("update:selected",!t.selected),n("click",v))}function g(v){(v.keyCode===void 0||v.keyCode===13)&&(Ot(v),t.disable===!1&&(n("update:modelValue",!1),n("remove")))}function p(){const v=[];u.value===!0&&v.push(S("div",{class:"q-focus-helper"})),a.value===!0&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--left",name:r.value}));const b=t.label!==void 0?[S("div",{class:"ellipsis"},[t.label])]:void 0;return v.push(S("div",{class:"q-chip__content col row no-wrap items-center q-anchor--skip"},vm(e.default,b))),t.iconRight&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--right",name:t.iconRight})),t.removable===!0&&v.push(S(xe,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:l.value,...d.value.remove,onClick:g,onKeyup:g})),v}return()=>{if(t.modelValue===!1)return;const v={class:c.value,style:o.value};return u.value===!0&&Object.assign(v,d.value.chip,{onClick:h,onKeyup:f}),ra("div",v,p(),"ripple",t.ripple!==!1&&t.disable!==!0,()=>[[Pd,t.ripple]])}}}),Qc=t=>["add","add-unique","toggle"].includes(t),L_=".*+?^${}()|[]\\",R_=Object.keys(ba);function ur(t,e){if(typeof t=="function")return t;const n=t!==void 0?t:e;return i=>i!==null&&typeof i=="object"&&n in i?i[n]:i}const F_=ze({name:"QSelect",inheritAttrs:!1,props:{...qr,...ya,...ba,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],popupNoRouteDismiss:Boolean,useInput:Boolean,useChips:Boolean,newValueMode:{type:String,validator:Qc},mapOptions:Boolean,emitValue:Boolean,disableTabSelection:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:{},transitionHide:{},transitionDuration:{},behavior:{type:String,validator:t=>["default","menu","dialog"].includes(t),default:"default"},virtualScrollItemSize:qr.virtualScrollItemSize.type,onNewValue:Function,onFilter:Function},emits:[...Sl,"add","remove","inputValue","keyup","keypress","keydown","popupShow","popupHide","filterAbort"],setup(t,{slots:e,emit:n}){const{proxy:i}=Ue(),{$q:s}=i,o=N(!1),a=N(!1),r=N(-1),l=N(""),u=N(!1),c=N(!1);let d=null,f=null,h,g,p,v=null,b,w,_,y;const x=N(null),V=N(null),E=N(null),L=N(null),D=N(null),I=ig(t),F=sg($),T=m(()=>Array.isArray(t.options)?t.options.length:0),H=m(()=>t.virtualScrollItemSize===void 0?t.optionsDense===!0?24:48:t.virtualScrollItemSize),{virtualScrollSliceRange:z,virtualScrollSliceSizeComputed:j,localResetVirtualScroll:U,padVirtualScroll:ee,onVirtualScrollEvt:Y,scrollTo:ae,setVirtualScrollSize:ce}=cg({virtualScrollLength:T,getVirtualScrollTarget:Ta,getVirtualScrollEl:Ln,virtualScrollItemSizeComputed:H}),O=kl(),P=m(()=>{const k=t.mapOptions===!0&&t.multiple!==!0,se=t.modelValue!==void 0&&(t.modelValue!==null||k===!0)?t.multiple===!0&&Array.isArray(t.modelValue)?t.modelValue:[t.modelValue]:[];if(t.mapOptions===!0&&Array.isArray(t.options)===!0){const oe=t.mapOptions===!0&&h!==void 0?h:[],Te=se.map(Ze=>W(Ze,oe));return t.modelValue===null&&k===!0?Te.filter(Ze=>Ze!==null):Te}return se}),J=m(()=>{const k={};return R_.forEach(se=>{const oe=t[se];oe!==void 0&&(k[se]=oe)}),k}),ue=m(()=>t.optionsDark===null?O.isDark.value:t.optionsDark),he=m(()=>$s(P.value)),B=m(()=>{let k="q-field__input q-placeholder col";return t.hideSelected===!0||P.value.length===0?[k,t.inputClass]:(k+=" q-field__input--padding",t.inputClass===void 0?k:[k,t.inputClass])}),te=m(()=>(t.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(t.popupContentClass?" "+t.popupContentClass:"")),_e=m(()=>T.value===0),G=m(()=>P.value.map(k=>R.value(k)).join(", ")),Ae=m(()=>t.displayValue!==void 0?t.displayValue:G.value),Xe=m(()=>t.optionsHtml===!0?()=>!0:k=>k?.html===!0),Bt=m(()=>t.displayValueHtml===!0||t.displayValue===void 0&&(t.optionsHtml===!0||P.value.some(Xe.value))),dt=m(()=>O.focused.value===!0?t.tabindex:-1),vt=m(()=>{const k={tabindex:t.tabindex,role:"combobox","aria-label":t.label,"aria-readonly":t.readonly===!0?"true":"false","aria-autocomplete":t.useInput===!0?"list":"none","aria-expanded":o.value===!0?"true":"false","aria-controls":`${O.targetUid.value}_lb`};return r.value>=0&&(k["aria-activedescendant"]=`${O.targetUid.value}_${r.value}`),k}),yt=m(()=>({id:`${O.targetUid.value}_lb`,role:"listbox","aria-multiselectable":t.multiple===!0?"true":"false"})),Ge=m(()=>P.value.map((k,se)=>({index:se,opt:k,html:Xe.value(k),selected:!0,removeAtIndex:Ie,toggleOption:it,tabindex:dt.value}))),wt=m(()=>{if(T.value===0)return[];const{from:k,to:se}=z.value;return t.options.slice(k,se).map((oe,Te)=>{const Ze=Z.value(oe)===!0,Ye=ge(oe)===!0,Ct=k+Te,ft={clickable:!0,active:Ye,activeClass:Et.value,manualFocus:!0,focused:!1,disable:Ze,tabindex:-1,dense:t.optionsDense,dark:ue.value,role:"option","aria-selected":Ye===!0?"true":"false",id:`${O.targetUid.value}_${Ct}`,onClick:()=>{it(oe)}};return Ze!==!0&&(r.value===Ct&&(ft.focused=!0),s.platform.is.desktop===!0&&(ft.onMousemove=()=>{o.value===!0&&xt(Ct)})),{index:Ct,opt:oe,html:Xe.value(oe),label:R.value(oe),selected:ft.active,focused:ft.focused,toggleOption:it,setOptionIndex:xt,itemProps:ft}})}),It=m(()=>t.dropdownIcon!==void 0?t.dropdownIcon:s.iconSet.arrow.dropdown),Ut=m(()=>t.optionsCover===!1&&t.outlined!==!0&&t.standout!==!0&&t.borderless!==!0&&t.rounded!==!0),Et=m(()=>t.optionsSelectedClass!==void 0?t.optionsSelectedClass:t.color!==void 0?`text-${t.color}`:""),qe=m(()=>ur(t.optionValue,"value")),R=m(()=>ur(t.optionLabel,"label")),Z=m(()=>ur(t.optionDisable,"disable")),X=m(()=>P.value.map(qe.value)),De=m(()=>{const k={onInput:$,onChange:F,onKeydown:nn,onKeyup:st,onKeypress:Nt,onFocus:Se,onClick(se){g===!0&&In(se)}};return k.onCompositionstart=k.onCompositionupdate=k.onCompositionend=F,k});fe(P,k=>{h=k,t.useInput===!0&&t.fillInput===!0&&t.multiple!==!0&&O.innerLoading.value!==!0&&(a.value!==!0&&o.value!==!0||he.value!==!0)&&(p!==!0&&Si(),(a.value===!0||o.value===!0)&&me(""))},{immediate:!0}),fe(()=>t.fillInput,Si),fe(o,Va),fe(T,Qg);function We(k){return t.emitValue===!0?qe.value(k):k}function Pe(k){if(k!==-1&&k=t.maxValues)return;const Te=t.modelValue.slice();n("add",{index:Te.length,value:oe}),Te.push(oe),n("update:modelValue",Te)}function it(k,se){if(O.editable.value!==!0||k===void 0||Z.value(k)===!0)return;const oe=qe.value(k);if(t.multiple!==!0){se!==!0&&(ve(t.fillInput===!0?R.value(k):"",!0,!0),Qn()),V.value?.focus(),(P.value.length===0||is(qe.value(P.value[0]),oe)!==!0)&&n("update:modelValue",t.emitValue===!0?oe:k);return}if((g!==!0||u.value===!0)&&O.focus(),Se(),P.value.length===0){const Ye=t.emitValue===!0?oe:k;n("add",{index:0,value:Ye}),n("update:modelValue",t.multiple===!0?[Ye]:Ye);return}const Te=t.modelValue.slice(),Ze=X.value.findIndex(Ye=>is(Ye,oe));if(Ze!==-1)n("remove",{index:Ze,value:Te.splice(Ze,1)[0]});else{if(t.maxValues!==void 0&&Te.length>=t.maxValues)return;const Ye=t.emitValue===!0?oe:k;n("add",{index:Te.length,value:Ye}),Te.push(Ye)}n("update:modelValue",Te)}function xt(k){if(s.platform.is.desktop!==!0)return;const se=k!==-1&&k=0?R.value(t.options[oe]):b,!0))}}function W(k,se){const oe=Te=>is(qe.value(Te),k);return t.options.find(oe)||se.find(oe)||k}function ge(k){const se=qe.value(k);return X.value.find(oe=>is(oe,se))!==void 0}function Se(k){t.useInput===!0&&V.value!==null&&(k===void 0||V.value===k.target&&k.target.value===G.value)&&V.value.select()}function He(k){sa(k,27)===!0&&o.value===!0&&(In(k),Qn(),Si()),n("keyup",k)}function st(k){const{value:se}=k.target;if(k.keyCode!==void 0){He(k);return}if(k.target.value="",d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),Si(),typeof se=="string"&&se.length!==0){const oe=se.toLocaleLowerCase(),Te=Ye=>{const Ct=t.options.find(ft=>String(Ye.value(ft)).toLocaleLowerCase()===oe);return Ct===void 0?!1:(P.value.indexOf(Ct)===-1?it(Ct):Qn(),!0)},Ze=Ye=>{Te(qe)!==!0&&Ye!==!0&&Te(R)!==!0&&me(se,!0,()=>Ze(!0))};Ze()}else O.clearValue(k)}function Nt(k){n("keypress",k)}function nn(k){if(n("keydown",k),Wr(k)===!0)return;const se=l.value.length!==0&&(t.newValueMode!==void 0||t.onNewValue!==void 0),oe=k.shiftKey!==!0&&t.disableTabSelection!==!0&&t.multiple!==!0&&(r.value!==-1||se===!0);if(k.keyCode===27){Nn(k);return}if(k.keyCode===9&&oe===!1){wi();return}if(k.target===void 0||k.target.id!==O.targetUid.value||O.editable.value!==!0)return;if(k.keyCode===40&&O.innerLoading.value!==!0&&o.value===!1){Ot(k),_i();return}if(k.keyCode===8&&(t.useChips===!0||t.clearable===!0)&&t.hideSelected!==!0&&l.value.length===0){t.multiple===!0&&Array.isArray(t.modelValue)===!0?Pe(t.modelValue.length-1):t.multiple!==!0&&t.modelValue!==null&&n("update:modelValue",null);return}(k.keyCode===35||k.keyCode===36)&&(typeof l.value!="string"||l.value.length===0)&&(Ot(k),r.value=-1,At(k.keyCode===36?1:-1,t.multiple)),(k.keyCode===33||k.keyCode===34)&&j.value!==void 0&&(Ot(k),r.value=Math.max(-1,Math.min(T.value,r.value+(k.keyCode===33?-1:1)*j.value.view)),At(k.keyCode===33?1:-1,t.multiple)),(k.keyCode===38||k.keyCode===40)&&(Ot(k),At(k.keyCode===38?-1:1,t.multiple));const Te=T.value;if((_===void 0||y0&&t.useInput!==!0&&k.key!==void 0&&k.key.length===1&&k.altKey===!1&&k.ctrlKey===!1&&k.metaKey===!1&&(k.keyCode!==32||_.length!==0)){o.value!==!0&&_i(k);const Ze=k.key.toLocaleLowerCase(),Ye=_.length===1&&_[0]===Ze;y=Date.now()+1500,Ye===!1&&(Ot(k),_+=Ze);const Ct=new RegExp("^"+_.split("").map(Ea=>L_.indexOf(Ea)!==-1?"\\"+Ea:Ea).join(".*"),"i");let ft=r.value;if(Ye===!0||ft<0||Ct.test(R.value(t.options[ft]))!==!0)do ft=Zl(ft+1,-1,Te-1);while(ft!==r.value&&(Z.value(t.options[ft])===!0||Ct.test(R.value(t.options[ft]))!==!0));r.value!==ft&&ht(()=>{xt(ft),ae(ft),ft>=0&&t.useInput===!0&&t.fillInput===!0&&ie(R.value(t.options[ft]),!0)});return}if(!(k.keyCode!==13&&(k.keyCode!==32||t.useInput===!0||_!=="")&&(k.keyCode!==9||oe===!1))){if(k.keyCode!==9&&Ot(k),r.value!==-1&&r.value{if(Ct){if(Qc(Ct)!==!0)return}else Ct=t.newValueMode;if(ve("",t.multiple!==!0,!0),Ye==null)return;(Ct==="toggle"?it:at)(Ye,Ct==="add-unique"),t.multiple!==!0&&(V.value?.focus(),Qn())};if(t.onNewValue!==void 0?n("newValue",l.value,Ze):Ze(l.value),t.multiple!==!0)return}o.value===!0?wi():O.innerLoading.value!==!0&&_i()}}function Ln(){return g===!0?D.value:E.value!==null&&E.value.contentEl!==null?E.value.contentEl:void 0}function Ta(){return Ln()}function Ia(){return t.hideSelected===!0?[]:e["selected-item"]!==void 0?Ge.value.map(k=>e["selected-item"](k)).slice():e.selected!==void 0?[].concat(e.selected()):t.useChips===!0?Ge.value.map((k,se)=>S(Jo,{key:"option-"+se,removable:O.editable.value===!0&&Z.value(k.opt)!==!0,dense:!0,textColor:t.color,tabindex:dt.value,onRemove(){k.removeAtIndex(se)}},()=>S("span",{class:"ellipsis",[k.html===!0?"innerHTML":"textContent"]:R.value(k.opt)}))):[S("span",{class:"ellipsis",[Bt.value===!0?"innerHTML":"textContent"]:Ae.value})]}function to(){if(_e.value===!0)return e["no-option"]!==void 0?e["no-option"]({inputValue:l.value}):void 0;const k=e.option!==void 0?e.option:oe=>S(Bs,{key:oe.index,...oe.itemProps},()=>S(di,()=>S(Ns,()=>S("span",{[oe.html===!0?"innerHTML":"textContent"]:oe.label}))));let se=ee("div",wt.value.map(k));return e["before-options"]!==void 0&&(se=e["before-options"]().concat(se)),mi(e["after-options"],se)}function Da(k,se){const oe=se===!0?{...vt.value,...O.splitAttrs.attributes.value}:void 0,Te={ref:se===!0?V:void 0,key:"i_t",class:B.value,style:t.inputStyle,value:l.value!==void 0?l.value:"",type:"search",...oe,id:se===!0?O.targetUid.value:void 0,maxlength:t.maxlength,autocomplete:t.autocomplete,"data-autofocus":k===!0||t.autofocus===!0||void 0,disabled:t.disable===!0,readonly:t.readonly===!0,...De.value};return k!==!0&&g===!0&&(Array.isArray(Te.class)===!0?Te.class=[...Te.class,"no-pointer-events"]:Te.class+=" no-pointer-events"),S("input",Te)}function $(k){d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),!(k&&k.target&&k.target.qComposing===!0)&&(ie(k.target.value||""),p=!0,b=l.value,O.focused.value!==!0&&(g!==!0||u.value===!0)&&O.focus(),t.onFilter!==void 0&&(d=setTimeout(()=>{d=null,me(l.value)},t.inputDebounce)))}function ie(k,se){l.value!==k&&(l.value=k,se===!0||t.inputDebounce===0||t.inputDebounce==="0"?n("inputValue",k):f=setTimeout(()=>{f=null,n("inputValue",k)},t.inputDebounce))}function ve(k,se,oe){p=oe!==!0,t.useInput===!0&&(ie(k,!0),(se===!0||oe!==!0)&&(b=k),se!==!0&&me(k))}function me(k,se,oe){if(t.onFilter===void 0||se!==!0&&O.focused.value!==!0)return;O.innerLoading.value===!0?n("filterAbort"):(O.innerLoading.value=!0,c.value=!0),k!==""&&t.multiple!==!0&&P.value.length!==0&&p!==!0&&k===R.value(P.value[0])&&(k="");const Te=setTimeout(()=>{o.value===!0&&(o.value=!1)},10);v!==null&&clearTimeout(v),v=Te,n("filter",k,(Ze,Ye)=>{(se===!0||O.focused.value===!0)&&v===Te&&(clearTimeout(v),typeof Ze=="function"&&Ze(),c.value=!1,ht(()=>{O.innerLoading.value=!1,O.editable.value===!0&&(se===!0?o.value===!0&&Qn():o.value===!0?Va(!0):o.value=!0),typeof Ye=="function"&&ht(()=>{Ye(i)}),typeof oe=="function"&&ht(()=>{oe(i)})}))},()=>{O.focused.value===!0&&v===Te&&(clearTimeout(v),O.innerLoading.value=!1,c.value=!1),o.value===!0&&(o.value=!1)})}function ye(){return S(Gf,{ref:E,class:te.value,style:t.popupContentStyle,modelValue:o.value,fit:t.menuShrink!==!0,cover:t.optionsCover===!0&&_e.value!==!0&&t.useInput!==!0,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,dark:ue.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:t.popupNoRouteDismiss,square:Ut.value,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,separateClosePopup:!0,...yt.value,onScrollPassive:Y,onBeforeShow:ql,onBeforeHide:ot,onShow:Je},to)}function ot(k){Ll(k),wi()}function Je(){ce()}function Yt(k){In(k),V.value?.focus(),u.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function et(k){In(k),ht(()=>{u.value=!1})}function _n(){const k=[S(dg,{class:`col-auto ${O.fieldClass.value}`,...J.value,for:O.targetUid.value,dark:ue.value,square:!0,loading:c.value,itemAligned:!1,filled:!0,stackLabel:l.value.length!==0,...O.splitAttrs.listeners.value,onFocus:Yt,onBlur:et},{...e,rawControl:()=>O.getControl(!0),before:void 0,after:void 0})];return o.value===!0&&k.push(S("div",{ref:D,class:te.value+" scroll",style:t.popupContentStyle,...yt.value,onClick:Nn,onScrollPassive:Y},to())),S(Gi,{ref:L,modelValue:a.value,position:t.useInput===!0?"top":void 0,transitionShow:w,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,noRouteDismiss:t.popupNoRouteDismiss,onBeforeShow:ql,onBeforeHide:xi,onHide:Oa,onShow:Kg},()=>S("div",{class:"q-select__dialog"+(ue.value===!0?" q-select__dialog--dark q-dark":"")+(u.value===!0?" q-select__dialog--focused":"")},k))}function xi(k){Ll(k),L.value!==null&&L.value.__updateRefocusTarget(O.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),O.focused.value=!1}function Oa(k){Qn(),O.focused.value===!1&&n("blur",k),Si()}function Kg(){const k=document.activeElement;(k===null||k.id!==O.targetUid.value)&&V.value!==null&&V.value!==k&&V.value.focus(),ce()}function wi(){a.value!==!0&&(r.value=-1,o.value===!0&&(o.value=!1),O.focused.value===!1&&(v!==null&&(clearTimeout(v),v=null),O.innerLoading.value===!0&&(n("filterAbort"),O.innerLoading.value=!1,c.value=!1)))}function _i(k){O.editable.value===!0&&(g===!0?(O.onControlFocusin(k),a.value=!0,ht(()=>{O.focus()})):O.focus(),t.onFilter!==void 0?me(l.value):(_e.value!==!0||e["no-option"]!==void 0)&&(o.value=!0))}function Qn(){a.value=!1,wi()}function Si(){t.useInput===!0&&ve(t.multiple!==!0&&t.fillInput===!0&&P.value.length!==0&&R.value(P.value[0])||"",!0,!0)}function Va(k){let se=-1;if(k===!0){if(P.value.length!==0){const oe=qe.value(P.value[0]);se=t.options.findIndex(Te=>is(qe.value(Te),oe))}U(se)}xt(se)}function Qg(k,se){o.value===!0&&O.innerLoading.value===!1&&(U(-1,!0),ht(()=>{o.value===!0&&O.innerLoading.value===!1&&(k>se?U():Va(!0))}))}function Al(){a.value===!1&&E.value!==null&&E.value.updatePosition()}function ql(k){k!==void 0&&In(k),n("popupShow",k),O.hasPopupOpen=!0,O.onControlFocusin(k)}function Ll(k){k!==void 0&&In(k),n("popupHide",k),O.hasPopupOpen=!1,O.onControlFocusout(k)}function Rl(){g=s.platform.is.mobile!==!0&&t.behavior!=="dialog"?!1:t.behavior!=="menu"&&(t.useInput===!0?e["no-option"]!==void 0||t.onFilter!==void 0||_e.value===!1:!0),w=s.platform.is.ios===!0&&g===!0&&t.useInput===!0?"fade":t.transitionShow}return qd(Rl),pm(Al),Rl(),zt(()=>{d!==null&&clearTimeout(d),f!==null&&clearTimeout(f)}),Object.assign(i,{showPopup:_i,hidePopup:Qn,removeAtIndex:Pe,add:at,toggleOption:it,getOptionIndex:()=>r.value,setOptionIndex:xt,moveOptionSelection:At,filter:me,updateMenuPosition:Al,updateInputValue:ve,isOptionSelected:ge,getEmittingOptionValue:We,isOptionDisabled:(...k)=>Z.value.apply(null,k)===!0,getOptionValue:(...k)=>qe.value.apply(null,k),getOptionLabel:(...k)=>R.value.apply(null,k)}),Object.assign(O,{innerValue:P,fieldClass:m(()=>`q-select q-field--auto-height q-select--with${t.useInput!==!0?"out":""}-input q-select--with${t.useChips!==!0?"out":""}-chips q-select--${t.multiple===!0?"multiple":"single"}`),inputRef:x,targetRef:V,hasValue:he,showPopup:_i,floatingLabel:m(()=>t.hideSelected!==!0&&he.value===!0||typeof l.value=="number"||l.value.length!==0||$s(t.displayValue)),getControlChild:()=>{if(O.editable.value!==!1&&(a.value===!0||_e.value!==!0||e["no-option"]!==void 0))return g===!0?_n():ye();O.hasPopupOpen===!0&&(O.hasPopupOpen=!1)},controlEvents:{onFocusin(k){O.onControlFocusin(k)},onFocusout(k){O.onControlFocusout(k,()=>{Si(),wi()})},onClick(k){if(Nn(k),g!==!0&&o.value===!0){wi(),V.value?.focus();return}_i(k)}},getControl:k=>{const se=Ia(),oe=k===!0||a.value!==!0||g!==!0;if(t.useInput===!0)se.push(Da(k,oe));else if(O.editable.value===!0){const Ze=oe===!0?vt.value:void 0;se.push(S("input",{ref:oe===!0?V:void 0,key:"d_t",class:"q-select__focus-target",id:oe===!0?O.targetUid.value:void 0,value:Ae.value,readonly:!0,"data-autofocus":k===!0||t.autofocus===!0||void 0,...Ze,onKeydown:nn,onKeyup:He,onKeypress:Nt})),oe===!0&&typeof t.autocomplete=="string"&&t.autocomplete.length!==0&&se.push(S("input",{class:"q-select__autocomplete-input",autocomplete:t.autocomplete,tabindex:-1,onKeyup:st}))}if(I.value!==void 0&&t.disable!==!0&&X.value.length!==0){const Ze=X.value.map(Ye=>S("option",{value:Ye,selected:!0}));se.push(S("select",{class:"hidden",name:I.value,multiple:t.multiple},Ze))}const Te=t.useInput===!0||oe!==!0?void 0:O.splitAttrs.attributes.value;return S("div",{class:"q-field__native row items-center",...Te,...O.splitAttrs.listeners.value},se)},getInnerAppend:()=>t.loading!==!0&&c.value!==!0&&t.hideDropdownIcon!==!0?[S(xe,{class:"q-select__dropdown-icon"+(o.value===!0?" rotate-180":""),name:It.value})]:null}),Cl(O)}}),$_={xs:2,sm:4,md:6,lg:10,xl:14};function Gc(t,e,n){return{transform:e===!0?`translateX(${n.lang.rtl===!0?"-":""}100%) scale3d(${-t},1,1)`:`scale3d(${t},1,1)`}}const z_=ze({name:"QLinearProgress",props:{...hn,...jr,value:{type:Number,default:0},buffer:Number,color:String,trackColor:String,reverse:Boolean,stripe:Boolean,indeterminate:Boolean,query:Boolean,rounded:Boolean,animationSpeed:{type:[String,Number],default:2100},instantFeedback:Boolean},setup(t,{slots:e}){const{proxy:n}=Ue(),i=gn(t,n.$q),s=Ur(t,$_),o=m(()=>t.indeterminate===!0||t.query===!0),a=m(()=>t.reverse!==t.query),r=m(()=>({...s.value!==null?s.value:{},"--q-linear-progress-speed":`${t.animationSpeed}ms`})),l=m(()=>"q-linear-progress"+(t.color!==void 0?` text-${t.color}`:"")+(t.reverse===!0||t.query===!0?" q-linear-progress--reverse":"")+(t.rounded===!0?" rounded-borders":"")),u=m(()=>Gc(t.buffer!==void 0?t.buffer:1,a.value,n.$q)),c=m(()=>`with${t.instantFeedback===!0?"out":""}-transition`),d=m(()=>`q-linear-progress__track absolute-full q-linear-progress__track--${c.value} q-linear-progress__track--${i.value===!0?"dark":"light"}`+(t.trackColor!==void 0?` bg-${t.trackColor}`:"")),f=m(()=>Gc(o.value===!0?1:t.value,a.value,n.$q)),h=m(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${c.value} q-linear-progress__model--${o.value===!0?"in":""}determinate`),g=m(()=>({width:`${t.value*100}%`})),p=m(()=>`q-linear-progress__stripe absolute-${t.reverse===!0?"right":"left"} q-linear-progress__stripe--${c.value}`);return()=>{const v=[S("div",{class:d.value,style:u.value}),S("div",{class:h.value,style:f.value})];return t.stripe===!0&&o.value===!1&&v.push(S("div",{class:p.value,style:g.value})),S("div",{class:l.value,style:r.value,role:"progressbar","aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":t.indeterminate===!0?void 0:t.value},mi(e.default,v))}}});function B_(t,e){const n=N(null),i=m(()=>t.disable===!0?null:S("span",{ref:n,class:"no-outline",tabindex:-1}));function s(o){const a=e.value;o?.qAvoidFocus!==!0&&(o?.type.indexOf("key")===0?document.activeElement!==a&&a?.contains(document.activeElement)===!0&&a.focus():n.value!==null&&(o===void 0||a?.contains(o.target)===!0)&&n.value.focus())}return{refocusTargetEl:i,refocusTarget:s}}const N_={xs:30,sm:35,md:40,lg:50,xl:60},fg={...hn,...jr,...ya,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:t=>t==="tf"||t==="ft"},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},hg=["update:modelValue"];function gg(t,e){const{props:n,slots:i,emit:s,proxy:o}=Ue(),{$q:a}=o,r=gn(n,a),l=N(null),{refocusTargetEl:u,refocusTarget:c}=B_(n,l),d=Ur(n,N_),f=m(()=>n.val!==void 0&&Array.isArray(n.modelValue)),h=m(()=>{const T=Tn(n.val);return f.value===!0?n.modelValue.findIndex(H=>Tn(H)===T):-1}),g=m(()=>f.value===!0?h.value!==-1:Tn(n.modelValue)===Tn(n.trueValue)),p=m(()=>f.value===!0?h.value===-1:Tn(n.modelValue)===Tn(n.falseValue)),v=m(()=>g.value===!1&&p.value===!1),b=m(()=>n.disable===!0?-1:n.tabindex||0),w=m(()=>`q-${t} cursor-pointer no-outline row inline no-wrap items-center`+(n.disable===!0?" disabled":"")+(r.value===!0?` q-${t}--dark`:"")+(n.dense===!0?` q-${t}--dense`:"")+(n.leftLabel===!0?" reverse":"")),_=m(()=>{const T=g.value===!0?"truthy":p.value===!0?"falsy":"indet",H=n.color!==void 0&&(n.keepColor===!0||(t==="toggle"?g.value===!0:p.value!==!0))?` text-${n.color}`:"";return`q-${t}__inner relative-position non-selectable q-${t}__inner--${T}${H}`}),y=m(()=>{const T={type:"checkbox"};return n.name!==void 0&&Object.assign(T,{".checked":g.value,"^checked":g.value===!0?"checked":void 0,name:n.name,value:f.value===!0?n.val:n.trueValue}),T}),x=ng(y),V=m(()=>{const T={tabindex:b.value,role:t==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":v.value===!0?"mixed":g.value===!0?"true":"false"};return n.disable===!0&&(T["aria-disabled"]="true"),T});function E(T){T!==void 0&&(Ot(T),c(T)),n.disable!==!0&&s("update:modelValue",L(),T)}function L(){if(f.value===!0){if(g.value===!0){const T=n.modelValue.slice();return T.splice(h.value,1),T}return n.modelValue.concat([n.val])}if(g.value===!0){if(n.toggleOrder!=="ft"||n.toggleIndeterminate===!1)return n.falseValue}else if(p.value===!0){if(n.toggleOrder==="ft"||n.toggleIndeterminate===!1)return n.trueValue}else return n.toggleOrder!=="ft"?n.trueValue:n.falseValue;return n.indeterminateValue}function D(T){(T.keyCode===13||T.keyCode===32)&&Ot(T)}function I(T){(T.keyCode===13||T.keyCode===32)&&E(T)}const F=e(g,v);return Object.assign(o,{toggle:E}),()=>{const T=F();n.disable!==!0&&x(T,"unshift",` q-${t}__native absolute q-ma-none q-pa-none`);const H=[S("div",{class:_.value,style:d.value,"aria-hidden":"true"},T)];u.value!==null&&H.push(u.value);const z=n.label!==void 0?mi(i.default,[n.label]):nt(i.default);return z!==void 0&&H.push(S("div",{class:`q-${t}__label q-anchor--skip`},z)),S("div",{ref:l,class:w.value,...V.value,onClick:E,onKeydown:D,onKeyup:I},H)}}const W_=()=>S("div",{key:"svg",class:"q-checkbox__bg absolute"},[S("svg",{class:"q-checkbox__svg fit absolute-full",viewBox:"0 0 24 24"},[S("path",{class:"q-checkbox__truthy",fill:"none",d:"M1.73,12.91 8.1,19.28 22.79,4.59"}),S("path",{class:"q-checkbox__indet",d:"M4,14H20V10H4"})])]),cr=ze({name:"QCheckbox",props:fg,emits:hg,setup(t){const e=W_();function n(i,s){const o=m(()=>(i.value===!0?t.checkedIcon:s.value===!0?t.indeterminateIcon:t.uncheckedIcon)||null);return()=>o.value!==null?[S("div",{key:"icon",class:"q-checkbox__icon-container absolute-full flex flex-center no-wrap"},[S(xe,{class:"q-checkbox__icon",name:o.value})])]:[e]}return gg("checkbox",n)}});function H_(t,e){return new Date(t)-new Date(e)}const j_={sortMethod:Function,binaryStateSort:Boolean,columnSortOrder:{type:String,validator:t=>t==="ad"||t==="da",default:"ad"}};function U_(t,e,n,i){const s=m(()=>{const{sortBy:r}=e.value;return r&&n.value.find(l=>l.name===r)||null}),o=m(()=>t.sortMethod!==void 0?t.sortMethod:(r,l,u)=>{const c=n.value.find(h=>h.name===l);if(c===void 0||c.field===void 0)return r;const d=u===!0?-1:1,f=typeof c.field=="function"?h=>c.field(h):h=>h[c.field];return r.sort((h,g)=>{let p=f(h),v=f(g);return c.rawSort!==void 0?c.rawSort(p,v,h,g)*d:p==null?-1*d:v==null?1*d:c.sort!==void 0?c.sort(p,v,h,g)*d:Ds(p)===!0&&Ds(v)===!0?(p-v)*d:zl(p)===!0&&zl(v)===!0?H_(p,v)*d:typeof p=="boolean"&&typeof v=="boolean"?(p-v)*d:([p,v]=[p,v].map(b=>(b+"").toLocaleString().toLowerCase()),pf.name===r);d?.sortOrder&&(l=d.sortOrder)}let{sortBy:u,descending:c}=e.value;u!==r?(u=r,c=l==="da"):t.binaryStateSort===!0?c=!c:c===!0?l==="ad"?u=null:c=!1:l==="ad"?c=!0:u=null,i({sortBy:u,descending:c,page:1})}return{columnToSort:s,computedSortMethod:o,sort:a}}const Y_={filter:[String,Object],filterMethod:Function};function Z_(t,e){const n=m(()=>t.filterMethod!==void 0?t.filterMethod:(i,s,o,a)=>{const r=s?s.toLowerCase():"";return i.filter(l=>o.some(u=>{const c=a(u,l)+"";return(c==="undefined"||c==="null"?"":c.toLowerCase()).indexOf(r)!==-1}))});return fe(()=>t.filter,()=>{ht(()=>{e({page:1},!0)})},{deep:!0}),{computedFilterMethod:n}}function X_(t,e){for(const n in e)if(e[n]!==t[n])return!1;return!0}function Jc(t){return t.page<1&&(t.page=1),t.rowsPerPage!==void 0&&t.rowsPerPage<1&&(t.rowsPerPage=0),t}const K_={pagination:Object,rowsPerPageOptions:{type:Array,default:()=>[5,7,10,15,20,25,50,0]},"onUpdate:pagination":[Function,Array]};function Q_(t,e){const{props:n,emit:i}=t,s=N(Object.assign({sortBy:null,descending:!1,page:1,rowsPerPage:n.rowsPerPageOptions.length!==0?n.rowsPerPageOptions[0]:5},n.pagination)),o=m(()=>{const c=n["onUpdate:pagination"]!==void 0?{...s.value,...n.pagination}:s.value;return Jc(c)}),a=m(()=>o.value.rowsNumber!==void 0);function r(c){l({pagination:c,filter:n.filter})}function l(c={}){ht(()=>{i("request",{pagination:c.pagination||o.value,filter:c.filter||n.filter,getCellValue:e})})}function u(c,d){const f=Jc({...o.value,...c});if(X_(o.value,f)===!0){a.value===!0&&d===!0&&r(f);return}if(a.value===!0){r(f);return}n.pagination!==void 0&&n["onUpdate:pagination"]!==void 0?i("update:pagination",f):s.value=f}return{innerPagination:s,computedPagination:o,isServerSide:a,requestServerInteraction:l,setPagination:u}}function G_(t,e,n,i,s,o){const{props:a,emit:r,proxy:{$q:l}}=t,u=m(()=>i.value===!0?n.value.rowsNumber||0:o.value),c=m(()=>{const{page:y,rowsPerPage:x}=n.value;return(y-1)*x}),d=m(()=>{const{page:y,rowsPerPage:x}=n.value;return y*x}),f=m(()=>n.value.page===1),h=m(()=>n.value.rowsPerPage===0?1:Math.max(1,Math.ceil(u.value/n.value.rowsPerPage))),g=m(()=>d.value===0?!0:n.value.page>=h.value),p=m(()=>(a.rowsPerPageOptions.includes(e.value.rowsPerPage)?a.rowsPerPageOptions:[e.value.rowsPerPage].concat(a.rowsPerPageOptions)).map(x=>({label:x===0?l.lang.table.allRows:""+x,value:x})));fe(h,(y,x)=>{if(y===x)return;const V=n.value.page;y&&!V?s({page:1}):y1&&s({page:y-1})}function w(){const{page:y,rowsPerPage:x}=n.value;d.value>0&&y*x["single","multiple","none"].includes(t)},selected:{type:Array,default:()=>[]}},eS=["update:selected","selection"];function tS(t,e,n,i){const s=m(()=>{const g={};return t.selected.map(i.value).forEach(p=>{g[p]=!0}),g}),o=m(()=>t.selection!=="none"),a=m(()=>t.selection==="single"),r=m(()=>t.selection==="multiple"),l=m(()=>n.value.length!==0&&n.value.every(g=>s.value[i.value(g)]===!0)),u=m(()=>l.value!==!0&&n.value.some(g=>s.value[i.value(g)]===!0)),c=m(()=>t.selected.length);function d(g){return s.value[g]===!0}function f(){e("update:selected",[])}function h(g,p,v,b){e("selection",{rows:p,added:v,keys:g,evt:b});const w=a.value===!0?v===!0?p:[]:v===!0?t.selected.concat(p):t.selected.filter(_=>g.includes(i.value(_))===!1);e("update:selected",w)}return{hasSelectionMode:o,singleSelection:a,multipleSelection:r,allRowsSelected:l,someRowsSelected:u,rowsSelectedNumber:c,isRowSelected:d,clearSelection:f,updateSelection:h}}function ed(t){return Array.isArray(t)?t.slice():[]}const nS={expanded:Array},iS=["update:expanded"];function sS(t,e){const n=N(ed(t.expanded));fe(()=>t.expanded,a=>{n.value=ed(a)});function i(a){return n.value.includes(a)}function s(a){t.expanded!==void 0?e("update:expanded",a):n.value=a}function o(a,r){const l=n.value.slice(),u=l.indexOf(a);r===!0?u===-1&&(l.push(a),s(l)):u!==-1&&(l.splice(u,1),s(l))}return{isRowExpanded:i,setExpanded:s,updateExpanded:o}}const oS={visibleColumns:Array};function aS(t,e,n){const i=m(()=>{if(t.columns!==void 0)return t.columns;const r=t.rows[0];return r!==void 0?Object.keys(r).map(l=>({name:l,label:l.toUpperCase(),field:l,align:Ds(r[l])?"right":"left",sortable:!0})):[]}),s=m(()=>{const{sortBy:r,descending:l}=e.value;return(t.visibleColumns!==void 0?i.value.filter(c=>c.required===!0||t.visibleColumns.includes(c.name)===!0):i.value).map(c=>{const d=c.align||"right",f=`text-${d}`;return{...c,align:d,__iconClass:`q-table__sort-icon q-table__sort-icon--${d}`,__thClass:f+(c.headerClasses!==void 0?" "+c.headerClasses:"")+(c.sortable===!0?" sortable":"")+(c.name===r?` sorted ${l===!0?"sort-desc":""}`:""),__tdStyle:c.style!==void 0?typeof c.style!="function"?()=>c.style:c.style:()=>null,__tdClass:c.classes!==void 0?typeof c.classes!="function"?()=>f+" "+c.classes:h=>f+" "+c.classes(h):()=>f}})}),o=m(()=>{const r={};return s.value.forEach(l=>{r[l.name]=l}),r}),a=m(()=>t.tableColspan!==void 0?t.tableColspan:s.value.length+(n.value===!0?1:0));return{colList:i,computedCols:s,computedColsMap:o,computedColspan:a}}const Po="q-table__bottom row items-center",mg={};ug.forEach(t=>{mg[t]={}});const rS=ze({name:"QTable",props:{rows:{type:Array,required:!0},rowKey:{type:[String,Function],default:"id"},columns:Array,loading:Boolean,iconFirstPage:String,iconPrevPage:String,iconNextPage:String,iconLastPage:String,title:String,hideHeader:Boolean,grid:Boolean,gridHeader:Boolean,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,separator:{type:String,default:"horizontal",validator:t=>["horizontal","vertical","cell","none"].includes(t)},wrapCells:Boolean,virtualScroll:Boolean,virtualScrollTarget:{},...mg,noDataLabel:String,noResultsLabel:String,loadingLabel:String,selectedRowsLabel:Function,rowsPerPageLabel:String,paginationLabel:Function,color:{type:String,default:"grey-8"},titleClass:[String,Array,Object],tableStyle:[String,Array,Object],tableClass:[String,Array,Object],tableHeaderStyle:[String,Array,Object],tableHeaderClass:[String,Array,Object],tableRowStyleFn:Function,tableRowClassFn:Function,cardContainerClass:[String,Array,Object],cardContainerStyle:[String,Array,Object],cardStyle:[String,Array,Object],cardClass:[String,Array,Object],cardStyleFn:Function,cardClassFn:Function,hideBottom:Boolean,hideSelectedBanner:Boolean,hideNoData:Boolean,hidePagination:Boolean,onRowClick:Function,onRowDblclick:Function,onRowContextmenu:Function,...hn,...Xd,...oS,...Y_,...K_,...nS,...J_,...j_},emits:["request","virtualScroll",...Kd,...iS,...eS],setup(t,{slots:e,emit:n}){const i=Ue(),{proxy:{$q:s}}=i,o=gn(t,s),{inFullscreen:a,toggleFullscreen:r}=Qd(),l=m(()=>typeof t.rowKey=="function"?t.rowKey:$=>$[t.rowKey]),u=N(null),c=N(null),d=m(()=>t.grid!==!0&&t.virtualScroll===!0),f=m(()=>" q-table__card"+(o.value===!0?" q-table__card--dark q-dark":"")+(t.square===!0?" q-table--square":"")+(t.flat===!0?" q-table--flat":"")+(t.bordered===!0?" q-table--bordered":"")),h=m(()=>`q-table__container q-table--${t.separator}-separator column no-wrap`+(t.grid===!0?" q-table--grid":f.value)+(o.value===!0?" q-table--dark":"")+(t.dense===!0?" q-table--dense":"")+(t.wrapCells===!1?" q-table--no-wrap":"")+(a.value===!0?" fullscreen scroll":"")),g=m(()=>h.value+(t.loading===!0?" q-table--loading":""));fe(()=>t.tableStyle+t.tableClass+t.tableHeaderStyle+t.tableHeaderClass+h.value,()=>{d.value===!0&&c.value?.reset()});const{innerPagination:p,computedPagination:v,isServerSide:b,requestServerInteraction:w,setPagination:_}=Q_(i,xt),{computedFilterMethod:y}=Z_(t,_),{isRowExpanded:x,setExpanded:V,updateExpanded:E}=sS(t,n),L=m(()=>{let $=t.rows;if(b.value===!0||$.length===0)return $;const{sortBy:ie,descending:ve}=v.value;return t.filter&&($=y.value($,t.filter,O.value,xt)),ue.value!==null&&($=he.value(t.rows===$?$.slice():$,ie,ve)),$}),D=m(()=>L.value.length),I=m(()=>{let $=L.value;if(b.value===!0)return $;const{rowsPerPage:ie}=v.value;return ie!==0&&(te.value===0&&t.rows!==$?$.length>_e.value&&($=$.slice(0,_e.value)):$=$.slice(te.value,_e.value)),$}),{hasSelectionMode:F,singleSelection:T,multipleSelection:H,allRowsSelected:z,someRowsSelected:j,rowsSelectedNumber:U,isRowSelected:ee,clearSelection:Y,updateSelection:ae}=tS(t,n,I,l),{colList:ce,computedCols:O,computedColsMap:P,computedColspan:J}=aS(t,v,F),{columnToSort:ue,computedSortMethod:he,sort:B}=U_(t,v,ce,_),{firstRowIndex:te,lastRowIndex:_e,isFirstPage:G,isLastPage:Ae,pagesNumber:Xe,computedRowsPerPageOptions:Bt,computedRowsNumber:dt,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt}=G_(i,p,v,b,_,D),It=m(()=>I.value.length===0),Ut=m(()=>{const $={};return ug.forEach(ie=>{$[ie]=t[ie]}),$.virtualScrollItemSize===void 0&&($.virtualScrollItemSize=t.dense===!0?28:48),$});function Et(){d.value===!0&&c.value.reset()}function qe(){if(t.grid===!0)return Da();const $=t.hideHeader!==!0?Se:null;if(d.value===!0){const ve=e["top-row"],me=e["bottom-row"],ye={default:ot=>De(ot.item,e.body,ot.index)};if(ve!==void 0){const ot=S("tbody",ve({cols:O.value}));ye.before=$===null?()=>ot:()=>[$()].concat(ot)}else $!==null&&(ye.before=$);return me!==void 0&&(ye.after=()=>S("tbody",me({cols:O.value}))),S(A_,{ref:c,class:t.tableClass,style:t.tableStyle,...Ut.value,scrollTarget:t.virtualScrollTarget,items:I.value,type:"__qtable",tableColspan:J.value,onVirtualScroll:Z},ye)}const ie=[We()];return $!==null&&ie.unshift($()),ag({class:["q-table__middle scroll",t.tableClass],style:t.tableStyle},ie)}function R($,ie){if(c.value!==null){c.value.scrollTo($,ie);return}$=parseInt($,10);const ve=u.value.querySelector(`tbody tr:nth-of-type(${$+1})`);if(ve!==null){const me=u.value.querySelector(".q-table__middle.scroll"),ye=ve.offsetTop-t.virtualScrollStickySizeStart,ot=ye{const _n=e[`body-cell-${et.name}`],xi=_n!==void 0?_n:ot;return xi!==void 0?xi(Ie({key:me,row:$,pageIndex:ve,col:et})):S("td",{class:et.__tdClass($),style:et.__tdStyle($)},xt(et,$))});if(F.value===!0){const et=e["body-selection"],_n=et!==void 0?et(at({key:me,row:$,pageIndex:ve})):[S(cr,{modelValue:ye,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(xi,Oa)=>{ae([me],[$],xi,Oa)}})];Je.unshift(S("td",{class:"q-table--col-auto-width"},_n))}const Yt={key:me,class:{selected:ye}};if(t.onRowClick!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onClick=et=>{n("rowClick",et,$,ve)}),t.onRowDblclick!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onDblclick=et=>{n("rowDblclick",et,$,ve)}),t.onRowContextmenu!==void 0&&(Yt.class["cursor-pointer"]=!0,Yt.onContextmenu=et=>{n("rowContextmenu",et,$,ve)}),t.tableRowStyleFn!==void 0&&(Yt.style=t.tableRowStyleFn($)),t.tableRowClassFn!==void 0){const et=t.tableRowClassFn($);et&&(Yt.class[et]=!0)}return S("tr",Yt,Je)}function We(){const $=e.body,ie=e["top-row"],ve=e["bottom-row"];let me=I.value.map((ye,ot)=>De(ye,$,ot));return ie!==void 0&&(me=ie({cols:O.value}).concat(me)),ve!==void 0&&(me=me.concat(ve({cols:O.value}))),S("tbody",me)}function Pe($){return it($),$.cols=$.cols.map(ie=>si({...ie},"value",()=>xt(ie,$.row))),$}function Ie($){return it($),si($,"value",()=>xt($.col,$.row)),$}function at($){return it($),$}function it($){Object.assign($,{cols:O.value,colsMap:P.value,sort:B,rowIndex:te.value+$.pageIndex,color:t.color,dark:o.value,dense:t.dense}),F.value===!0&&si($,"selected",()=>ee($.key),(ie,ve)=>{ae([$.key],[$.row],ie,ve)}),si($,"expand",()=>x($.key),ie=>{E($.key,ie)})}function xt($,ie){const ve=typeof $.field=="function"?$.field(ie):ie[$.field];return $.format!==void 0?$.format(ve,ie):ve}const At=m(()=>({pagination:v.value,pagesNumber:Xe.value,isFirstPage:G.value,isLastPage:Ae.value,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt,inFullscreen:a.value,toggleFullscreen:r}));function W(){const $=e.top,ie=e["top-left"],ve=e["top-right"],me=e["top-selection"],ye=F.value===!0&&me!==void 0&&U.value>0,ot="q-table__top relative-position row items-center";if($!==void 0)return S("div",{class:ot},[$(At.value)]);let Je;if(ye===!0?Je=me(At.value).slice():(Je=[],ie!==void 0?Je.push(S("div",{class:"q-table__control"},[ie(At.value)])):t.title&&Je.push(S("div",{class:"q-table__control"},[S("div",{class:["q-table__title",t.titleClass]},t.title)]))),ve!==void 0&&(Je.push(S("div",{class:"q-table__separator col"})),Je.push(S("div",{class:"q-table__control"},[ve(At.value)]))),Je.length!==0)return S("div",{class:ot},Je)}const ge=m(()=>j.value===!0?null:z.value);function Se(){const $=He();return t.loading===!0&&e.loading===void 0&&$.push(S("tr",{class:"q-table__progress"},[S("th",{class:"relative-position",colspan:J.value},X())])),S("thead",$)}function He(){const $=e.header,ie=e["header-cell"];if($!==void 0)return $(st({header:!0})).slice();const ve=O.value.map(me=>{const ye=e[`header-cell-${me.name}`],ot=ye!==void 0?ye:ie,Je=st({col:me});return ot!==void 0?ot(Je):S(Ar,{key:me.name,props:Je},()=>me.label)});if(T.value===!0&&t.grid!==!0)ve.unshift(S("th",{class:"q-table--col-auto-width"}," "));else if(H.value===!0){const me=e["header-selection"],ye=me!==void 0?me(st({})):[S(cr,{color:t.color,modelValue:ge.value,dark:o.value,dense:t.dense,"onUpdate:modelValue":Nt})];ve.unshift(S("th",{class:"q-table--col-auto-width"},ye))}return[S("tr",{class:t.tableHeaderClass,style:t.tableHeaderStyle},ve)]}function st($){return Object.assign($,{cols:O.value,sort:B,colsMap:P.value,color:t.color,dark:o.value,dense:t.dense}),H.value===!0&&si($,"selected",()=>ge.value,Nt),$}function Nt($){j.value===!0&&($=!1),ae(I.value.map(l.value),I.value,$)}const nn=m(()=>{const $=[t.iconFirstPage||s.iconSet.table.firstPage,t.iconPrevPage||s.iconSet.table.prevPage,t.iconNextPage||s.iconSet.table.nextPage,t.iconLastPage||s.iconSet.table.lastPage];return s.lang.rtl===!0?$.reverse():$});function Ln(){if(t.hideBottom===!0)return;if(It.value===!0){if(t.hideNoData===!0)return;const ve=t.loading===!0?t.loadingLabel||s.lang.table.loading:t.filter?t.noResultsLabel||s.lang.table.noResults:t.noDataLabel||s.lang.table.noData,me=e["no-data"],ye=me!==void 0?[me({message:ve,icon:s.iconSet.table.warning,filter:t.filter})]:[S(xe,{class:"q-table__bottom-nodata-icon",name:s.iconSet.table.warning}),ve];return S("div",{class:Po+" q-table__bottom--nodata"},ye)}const $=e.bottom;if($!==void 0)return S("div",{class:Po},[$(At.value)]);const ie=t.hideSelectedBanner!==!0&&F.value===!0&&U.value>0?[S("div",{class:"q-table__control"},[S("div",[(t.selectedRowsLabel||s.lang.table.selectedRecords)(U.value)])])]:[];if(t.hidePagination!==!0)return S("div",{class:Po+" justify-end"},Ia(ie));if(ie.length!==0)return S("div",{class:Po},ie)}function Ta($){_({page:1,rowsPerPage:$.value})}function Ia($){let ie;const{rowsPerPage:ve}=v.value,me=t.paginationLabel||s.lang.table.pagination,ye=e.pagination,ot=t.rowsPerPageOptions.length>1;if($.push(S("div",{class:"q-table__separator col"})),ot===!0&&$.push(S("div",{class:"q-table__control"},[S("span",{class:"q-table__bottom-item"},[t.rowsPerPageLabel||s.lang.table.recordsPerPage]),S(F_,{class:"q-table__select inline q-table__bottom-item",color:t.color,modelValue:ve,options:Bt.value,displayValue:ve===0?s.lang.table.allRows:ve,dark:o.value,borderless:!0,dense:!0,optionsDense:!0,optionsCover:!0,"onUpdate:modelValue":Ta})])),ye!==void 0)ie=ye(At.value);else if(ie=[S("span",ve!==0?{class:"q-table__bottom-item"}:{},[ve?me(te.value+1,Math.min(_e.value,dt.value),dt.value):me(1,D.value,dt.value)])],ve!==0&&Xe.value>1){const Je={color:t.color,round:!0,dense:!0,flat:!0};t.dense===!0&&(Je.size="sm"),Xe.value>2&&ie.push(S(Me,{key:"pgFirst",...Je,icon:nn.value[0],disable:G.value,"aria-label":s.lang.pagination.first,onClick:vt})),ie.push(S(Me,{key:"pgPrev",...Je,icon:nn.value[1],disable:G.value,"aria-label":s.lang.pagination.prev,onClick:yt}),S(Me,{key:"pgNext",...Je,icon:nn.value[2],disable:Ae.value,"aria-label":s.lang.pagination.next,onClick:Ge})),Xe.value>2&&ie.push(S(Me,{key:"pgLast",...Je,icon:nn.value[3],disable:Ae.value,"aria-label":s.lang.pagination.last,onClick:wt}))}return $.push(S("div",{class:"q-table__control"},ie)),$}function to(){const $=t.gridHeader===!0?[S("table",{class:"q-table"},[Se()])]:t.loading===!0&&e.loading===void 0?X():void 0;return S("div",{class:"q-table__middle"},$)}function Da(){const $=e.item!==void 0?e.item:ie=>{const ve=ie.cols.map(ye=>S("div",{class:"q-table__grid-item-row"},[S("div",{class:"q-table__grid-item-title"},[ye.label]),S("div",{class:"q-table__grid-item-value"},[ye.value])]));if(F.value===!0){const ye=e["body-selection"],ot=ye!==void 0?ye(ie):[S(cr,{modelValue:ie.selected,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(Je,Yt)=>{ae([ie.key],[ie.row],Je,Yt)}})];ve.unshift(S("div",{class:"q-table__grid-item-row"},ot),S(Lt,{dark:o.value}))}const me={class:["q-table__grid-item-card"+f.value,t.cardClass],style:t.cardStyle};if(t.cardStyleFn!==void 0&&(me.style=[me.style,t.cardStyleFn(ie.row)]),t.cardClassFn!==void 0){const ye=t.cardClassFn(ie.row);ye&&(me.class[0]+=` ${ye}`)}return(t.onRowClick!==void 0||t.onRowDblclick!==void 0||t.onRowContextmenu!==void 0)&&(me.class[0]+=" cursor-pointer",t.onRowClick!==void 0&&(me.onClick=ye=>{n("RowClick",ye,ie.row,ie.pageIndex)}),t.onRowDblclick!==void 0&&(me.onDblclick=ye=>{n("RowDblclick",ye,ie.row,ie.pageIndex)}),t.onRowContextmenu!==void 0&&(me.onContextmenu=ye=>{n("rowContextmenu",ye,ie.row,ie.pageIndex)})),S("div",{class:"q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3"+(ie.selected===!0?" q-table__grid-item--selected":"")},[S("div",me,ve)])};return S("div",{class:["q-table__grid-content row",t.cardContainerClass],style:t.cardContainerStyle},I.value.map((ie,ve)=>$(Pe({key:l.value(ie),row:ie,pageIndex:ve}))))}return Object.assign(i.proxy,{requestServerInteraction:w,setPagination:_,firstPage:vt,prevPage:yt,nextPage:Ge,lastPage:wt,isRowSelected:ee,clearSelection:Y,isRowExpanded:x,setExpanded:V,sort:B,resetVirtualScroll:Et,scrollTo:R,getCellValue:xt}),bm(i.proxy,{filteredSortedRows:()=>L.value,computedRows:()=>I.value,computedRowsNumber:()=>dt.value}),()=>{const $=[W()],ie={ref:u,class:g.value};return t.grid===!0?$.push(to()):Object.assign(ie,{class:[ie.class,t.cardClass],style:t.cardStyle}),$.push(qe(),Ln()),t.loading===!0&&e.loading!==void 0&&$.push(e.loading()),S("div",ie,$)}}}),lS={class:"q-pa-md"},uS={class:"row full-width items-center q-mb-sm"},cS={class:"col"},dS=be({__name:"BaseTable",props:{items:{},rowData:{type:[Function,Object]},columnConfig:{},rowKey:{},searchInputVisible:{type:Boolean},tableHeight:{},filter:{},columnsToSearch:{},rowExpandable:{type:Boolean}},emits:["row-click","update:filter"],setup(t,{emit:e}){Dd(f=>({"618895b2":f.tableHeight}));const n=t,i=N([]),s=ym(),o=m(()=>n.rowExpandable?Object.keys(s).filter(f=>!f.startsWith("body")):Object.keys(s)),a=e,r=m({get:()=>n.filter||"",set:f=>a("update:filter",f)}),l=m(()=>n.items.map(typeof n.rowData=="function"?n.rowData:n.rowData.value)),u=m(()=>n.columnConfig.filter(f=>!f.expandField).map(f=>({name:f.field,field:f.field,label:f.label,align:f.align??"left",sortable:!0,headerStyle:"font-weight: bold"}))),c=(f,h,g)=>{if(!h||h.trim()==="")return f;const p=h.toLowerCase(),v=n.columnsToSearch||g.map(b=>typeof b.field=="string"?b.field:"");return f.filter(b=>v.some(w=>{const _=b[w];return _&&String(_).toLowerCase().includes(p)}))},d=(f,h)=>a("row-click",h);return(f,h)=>(M(),Q("div",lS,[C(rS,{class:gt(["sticky-header-table",{"custom-table-height":f.tableHeight}]),rows:l.value,columns:u.value,"row-key":"id",expanded:i.value,"onUpdate:expanded":h[1]||(h[1]=g=>i.value=g),filter:r.value,"filter-method":c,"virtual-scroll":"","virtual-scroll-item-size":48,"virtual-scroll-sticky-size-start":30,onRowClick:d,"binary-state-sort":"",pagination:{rowsPerPage:0},"hide-bottom":""},xm({_:2},[f.searchInputVisible?{name:"top",fn:A(()=>[q("div",uS,[q("div",cS,[C(og,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=g=>r.value=g),dense:"",outlined:"",color:"white",placeholder:"Suchen...",class:"search-field white-outline-input","input-class":"text-white"},{append:A(()=>[C(xe,{name:"search",color:"white"})]),_:1},8,["modelValue"])])])]),key:"0"}:void 0,n.rowExpandable?{name:"header",fn:A(g=>[C(rr,{props:g},{default:A(()=>[C(Ar,{"auto-width":"",props:{...g,col:{}}},null,8,["props"]),(M(!0),Q(Oe,null,Qe(g.cols,p=>(M(),K(Ar,{key:p.name,props:{...g,col:p}},{default:A(()=>[$e(le(p.label),1)]),_:2},1032,["props"]))),128))]),_:2},1032,["props"])]),key:"1"}:void 0,n.rowExpandable?{name:"body",fn:A(g=>[(M(),K(rr,{key:`main-${g.key}`,props:g,onClick:p=>d(p,g.row),class:"clickable"},{default:A(()=>[C(yn,{"auto-width":""},{default:A(()=>[C(Me,{dense:"",flat:"",round:"",size:"sm",icon:g.expand?"keyboard_arrow_up":"keyboard_arrow_down",onClick:an(p=>g.expand=!g.expand,["stop"])},null,8,["icon","onClick"])]),_:2},1024),(M(!0),Q(Oe,null,Qe(g.cols,p=>(M(),Q(Oe,{key:p.name},[f.$slots[`body-cell-${p.name}`]?Vi(f.$slots,`body-cell-${p.name}`,_m({key:0,ref_for:!0},{...g,col:p}),void 0,!0):(M(),K(yn,{key:1,props:{...g,col:p,value:g.row[p.field]}},{default:A(()=>[$e(le(g.row[p.field]),1)]),_:2},1032,["props"]))],64))),128))]),_:2},1032,["props","onClick"])),cn((M(),K(rr,{key:`xp-${g.key}`,props:g,class:"q-virtual-scroll--with-prev"},{default:A(()=>[C(yn,{colspan:g.cols.length+1},{default:A(()=>[Vi(f.$slots,"row-expand",Bl(Nl(g)),void 0,!0)]),_:2},1032,["colspan"])]),_:2},1032,["props"])),[[wm,g.expand]])]),key:"2"}:void 0,Qe(o.value,g=>({name:g,fn:A(p=>[Vi(f.$slots,g,Bl(Nl(p)),void 0,!0)])}))]),1032,["class","rows","columns","expanded","filter"])]))}}),vg=mt(dS,[["__scopeId","data-v-d1f1dccd"]]),ut=ze({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(t,{slots:e}){const n=m(()=>`q-card__section q-card__section--${t.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>S(t.tag,{class:n.value},nt(e.default))}}),Qs=ze({name:"QCardActions",props:{...Sm,vertical:Boolean},setup(t,{slots:e}){const n=km(t),i=m(()=>`q-card__actions ${n.value} q-card__actions--${t.vertical===!0?"vert column":"horiz row"}`);return()=>S("div",{class:i.value},nt(e.default))}}),Ji=ze({name:"QCard",props:{...hn,tag:{type:String,default:"div"},square:Boolean,flat:Boolean,bordered:Boolean},setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=gn(t,n),s=m(()=>"q-card"+(i.value===!0?" q-card--dark q-dark":"")+(t.bordered===!0?" q-card--bordered":"")+(t.square===!0?" q-card--square no-border-radius":"")+(t.flat===!0?" q-card--flat no-shadow":""));return()=>S(t.tag,{class:s.value},nt(e.default))}}),td="q-slider__marker-labels",fS=t=>({value:t}),hS=({marker:t})=>S("div",{key:t.value,style:t.style,class:t.classes},t.label),pg=[34,37,40,33,39,38],gS={...hn,...ya,min:{type:Number,default:0},max:{type:Number,default:100},innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:t=>t>=0},snap:Boolean,vertical:Boolean,reverse:Boolean,color:String,markerLabelsClass:String,label:Boolean,labelColor:String,labelTextColor:String,labelAlways:Boolean,switchLabelSide:Boolean,markers:[Boolean,Number],markerLabels:[Boolean,Array,Object,Function],switchMarkerLabelsSide:Boolean,trackImg:String,trackColor:String,innerTrackImg:String,innerTrackColor:String,selectionColor:String,selectionImg:String,thumbSize:{type:String,default:"20px"},trackSize:{type:String,default:"4px"},disable:Boolean,readonly:Boolean,dense:Boolean,tabindex:[String,Number],thumbColor:String,thumbPath:{type:String,default:"M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"}},mS=["pan","update:modelValue","change"];function vS({updateValue:t,updatePosition:e,getDragging:n,formAttrs:i}){const{props:s,emit:o,slots:a,proxy:{$q:r}}=Ue(),l=gn(s,r),u=ng(i),c=N(!1),d=N(!1),f=N(!1),h=N(!1),g=m(()=>s.vertical===!0?"--v":"--h"),p=m(()=>"-"+(s.switchLabelSide===!0?"switched":"standard")),v=m(()=>s.vertical===!0?s.reverse===!0:s.reverse!==(r.lang.rtl===!0)),b=m(()=>isNaN(s.innerMin)===!0||s.innerMinisNaN(s.innerMax)===!0||s.innerMax>s.max?s.max:s.innerMax),_=m(()=>s.disable!==!0&&s.readonly!==!0&&b.value{if(s.step===0)return ge=>ge;const W=(String(s.step).trim().split(".")[1]||"").length;return ge=>parseFloat(ge.toFixed(W))}),x=m(()=>s.step===0?1:s.step),V=m(()=>_.value===!0?s.tabindex||0:-1),E=m(()=>s.max-s.min),L=m(()=>w.value-b.value),D=m(()=>Xe(b.value)),I=m(()=>Xe(w.value)),F=m(()=>s.vertical===!0?v.value===!0?"bottom":"top":v.value===!0?"right":"left"),T=m(()=>s.vertical===!0?"height":"width"),H=m(()=>s.vertical===!0?"width":"height"),z=m(()=>s.vertical===!0?"vertical":"horizontal"),j=m(()=>{const W={role:"slider","aria-valuemin":b.value,"aria-valuemax":w.value,"aria-orientation":z.value,"data-step":s.step};return s.disable===!0?W["aria-disabled"]="true":s.readonly===!0&&(W["aria-readonly"]="true"),W}),U=m(()=>`q-slider q-slider${g.value} q-slider--${c.value===!0?"":"in"}active inline no-wrap `+(s.vertical===!0?"row":"column")+(s.disable===!0?" disabled":" q-slider--enabled"+(_.value===!0?" q-slider--editable":""))+(f.value==="both"?" q-slider--focus":"")+(s.label||s.labelAlways===!0?" q-slider--label":"")+(s.labelAlways===!0?" q-slider--label-always":"")+(l.value===!0?" q-slider--dark":"")+(s.dense===!0?" q-slider--dense q-slider--dense"+g.value:""));function ee(W){const ge="q-slider__"+W;return`${ge} ${ge}${g.value} ${ge}${g.value}${p.value}`}function Y(W){const ge="q-slider__"+W;return`${ge} ${ge}${g.value}`}const ae=m(()=>{const W=s.selectionColor||s.color;return"q-slider__selection absolute"+(W!==void 0?` text-${W}`:"")}),ce=m(()=>Y("markers")+" absolute overflow-hidden"),O=m(()=>Y("track-container")),P=m(()=>ee("pin")),J=m(()=>ee("label")),ue=m(()=>ee("text-container")),he=m(()=>ee("marker-labels-container")+(s.markerLabelsClass!==void 0?` ${s.markerLabelsClass}`:"")),B=m(()=>"q-slider__track relative-position no-outline"+(s.trackColor!==void 0?` bg-${s.trackColor}`:"")),te=m(()=>{const W={[H.value]:s.trackSize};return s.trackImg!==void 0&&(W.backgroundImage=`url(${s.trackImg}) !important`),W}),_e=m(()=>"q-slider__inner absolute"+(s.innerTrackColor!==void 0?` bg-${s.innerTrackColor}`:"")),G=m(()=>{const W=I.value-D.value,ge={[F.value]:`${100*D.value}%`,[T.value]:W===0?"2px":`${100*W}%`};return s.innerTrackImg!==void 0&&(ge.backgroundImage=`url(${s.innerTrackImg}) !important`),ge});function Ae(W){const{min:ge,max:Se,step:He}=s;let st=ge+W*(Se-ge);if(He>0){const Nt=(st-b.value)%He;st+=(Math.abs(Nt)>=He/2?(Nt<0?-1:1)*He:0)-Nt}return st=y.value(st),Ii(st,b.value,w.value)}function Xe(W){return E.value===0?0:(W-s.min)/E.value}function Bt(W,ge){const Se=Lo(W),He=s.vertical===!0?Ii((Se.top-ge.top)/ge.height,0,1):Ii((Se.left-ge.left)/ge.width,0,1);return Ii(v.value===!0?1-He:He,D.value,I.value)}const dt=m(()=>Ds(s.markers)===!0?s.markers:x.value),vt=m(()=>{const W=[],ge=dt.value,Se=s.max;let He=s.min;do W.push(He),He+=ge;while(He{const W=` ${td}${g.value}-`;return td+`${W}${s.switchMarkerLabelsSide===!0?"switched":"standard"}${W}${v.value===!0?"rtl":"ltr"}`}),Ge=m(()=>s.markerLabels===!1?null:Ut(s.markerLabels).map((W,ge)=>({index:ge,value:W.value,label:W.label||W.value,classes:yt.value+(W.classes!==void 0?" "+W.classes:""),style:{...Et(W.value),...W.style||{}}}))),wt=m(()=>({markerList:Ge.value,markerMap:qe.value,classes:yt.value,getStyle:Et})),It=m(()=>{const W=L.value===0?"2px":100*dt.value/L.value;return{...G.value,backgroundSize:s.vertical===!0?`2px ${W}%`:`${W}% 2px`}});function Ut(W){if(W===!1)return null;if(W===!0)return vt.value.map(fS);if(typeof W=="function")return vt.value.map(Se=>{const He=W(Se);return To(He)===!0?{...He,value:Se}:{value:Se,label:He}});const ge=({value:Se})=>Se>=s.min&&Se<=s.max;return Array.isArray(W)===!0?W.map(Se=>To(Se)===!0?Se:{value:Se}).filter(ge):Object.keys(W).map(Se=>{const He=W[Se],st=Number(Se);return To(He)===!0?{...He,value:st}:{value:st,label:He}}).filter(ge)}function Et(W){return{[F.value]:`${100*(W-s.min)/E.value}%`}}const qe=m(()=>{if(s.markerLabels===!1)return null;const W={};return Ge.value.forEach(ge=>{W[ge.value]=ge}),W});function R(){if(a["marker-label-group"]!==void 0)return a["marker-label-group"](wt.value);const W=a["marker-label"]||hS;return Ge.value.map(ge=>W({marker:ge,...wt.value}))}const Z=m(()=>[[zm,X,void 0,{[z.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function X(W){W.isFinal===!0?(h.value!==void 0&&(e(W.evt),W.touch===!0&&t(!0),h.value=void 0,o("pan","end")),c.value=!1,f.value=!1):W.isFirst===!0?(h.value=n(W.evt),e(W.evt),t(),c.value=!0,o("pan","start")):(e(W.evt),t())}function De(){f.value=!1}function We(W){e(W,n(W)),t(),d.value=!0,c.value=!0,document.addEventListener("mouseup",Pe,!0)}function Pe(){d.value=!1,c.value=!1,t(!0),De(),document.removeEventListener("mouseup",Pe,!0)}function Ie(W){e(W,n(W)),t(!0)}function at(W){pg.includes(W.keyCode)&&t(!0)}function it(W){if(s.vertical===!0)return null;const ge=r.lang.rtl!==s.reverse?1-W:W;return{transform:`translateX(calc(${2*ge-1} * ${s.thumbSize} / 2 + ${50-100*ge}%))`}}function xt(W){const ge=m(()=>d.value===!1&&(f.value===W.focusValue||f.value==="both")?" q-slider--focus":""),Se=m(()=>`q-slider__thumb q-slider__thumb${g.value} q-slider__thumb${g.value}-${v.value===!0?"rtl":"ltr"} absolute non-selectable`+ge.value+(W.thumbColor.value!==void 0?` text-${W.thumbColor.value}`:"")),He=m(()=>({width:s.thumbSize,height:s.thumbSize,[F.value]:`${100*W.ratio.value}%`,zIndex:f.value===W.focusValue?2:void 0})),st=m(()=>W.labelColor.value!==void 0?` text-${W.labelColor.value}`:""),Nt=m(()=>it(W.ratio.value)),nn=m(()=>"q-slider__text"+(W.labelTextColor.value!==void 0?` text-${W.labelTextColor.value}`:""));return()=>{const Ln=[S("svg",{class:"q-slider__thumb-shape absolute-full",viewBox:"0 0 20 20","aria-hidden":"true"},[S("path",{d:s.thumbPath})]),S("div",{class:"q-slider__focus-ring fit"})];return(s.label===!0||s.labelAlways===!0)&&(Ln.push(S("div",{class:P.value+" absolute fit no-pointer-events"+st.value},[S("div",{class:J.value,style:{minWidth:s.thumbSize}},[S("div",{class:ue.value,style:Nt.value},[S("span",{class:nn.value},W.label.value)])])])),s.name!==void 0&&s.disable!==!0&&u(Ln,"push")),S("div",{class:Se.value,style:He.value,...W.getNodeData()},Ln)}}function At(W,ge,Se,He){const st=[];s.innerTrackColor!=="transparent"&&st.push(S("div",{key:"inner",class:_e.value,style:G.value})),s.selectionColor!=="transparent"&&st.push(S("div",{key:"selection",class:ae.value,style:W.value})),s.markers!==!1&&st.push(S("div",{key:"marker",class:ce.value,style:It.value})),He(st);const Nt=[ra("div",{key:"trackC",class:O.value,tabindex:ge.value,...Se.value},[S("div",{class:B.value,style:te.value},st)],"slide",_.value,()=>Z.value)];if(s.markerLabels!==!1){const nn=s.switchMarkerLabelsSide===!0?"unshift":"push";Nt[nn](S("div",{key:"markerL",class:he.value},R()))}return Nt}return zt(()=>{document.removeEventListener("mouseup",Pe,!0)}),{state:{active:c,focus:f,preventFocus:d,dragging:h,editable:_,classes:U,tabindex:V,attributes:j,roundValueFn:y,keyStep:x,trackLen:E,innerMin:b,innerMinRatio:D,innerMax:w,innerMaxRatio:I,positionProp:F,sizeProp:T,isReversed:v},methods:{onActivate:We,onMobileClick:Ie,onBlur:De,onKeyup:at,getContent:At,getThumbRenderFn:xt,convertRatioToModel:Ae,convertModelToRatio:Xe,getDraggingRatio:Bt}}}const pS=()=>({}),ea=ze({name:"QSlider",props:{...gS,modelValue:{required:!0,default:null,validator:t=>typeof t=="number"||t===null},labelValue:[String,Number]},emits:mS,setup(t,{emit:e}){const{proxy:{$q:n}}=Ue(),{state:i,methods:s}=vS({updateValue:g,updatePosition:v,getDragging:p,formAttrs:__(t)}),o=N(null),a=N(0),r=N(0);function l(){r.value=t.modelValue===null?i.innerMin.value:Ii(t.modelValue,i.innerMin.value,i.innerMax.value)}fe(()=>`${t.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,l),l();const u=m(()=>s.convertModelToRatio(r.value)),c=m(()=>i.active.value===!0?a.value:u.value),d=m(()=>{const _={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(c.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(_.backgroundImage=`url(${t.selectionImg}) !important`),_}),f=s.getThumbRenderFn({focusValue:!0,getNodeData:pS,ratio:c,label:m(()=>t.labelValue!==void 0?t.labelValue:r.value),thumbColor:m(()=>t.thumbColor||t.color),labelColor:m(()=>t.labelColor),labelTextColor:m(()=>t.labelTextColor)}),h=m(()=>i.editable.value!==!0?{}:n.platform.is.mobile===!0?{onClick:s.onMobileClick}:{onMousedown:s.onActivate,onFocus:b,onBlur:s.onBlur,onKeydown:w,onKeyup:s.onKeyup});function g(_){r.value!==t.modelValue&&e("update:modelValue",r.value),_===!0&&e("change",r.value)}function p(){return o.value.getBoundingClientRect()}function v(_,y=i.dragging.value){const x=s.getDraggingRatio(_,y);r.value=s.convertRatioToModel(x),a.value=t.snap!==!0||t.step===0?x:s.convertModelToRatio(r.value)}function b(){i.focus.value=!0}function w(_){if(pg.includes(_.keyCode)===!1)return;Ot(_);const y=([34,33].includes(_.keyCode)?10:1)*i.keyStep.value,x=([34,37,40].includes(_.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*y;r.value=Ii(i.roundValueFn.value(r.value+x),i.innerMin.value,i.innerMax.value),g()}return()=>{const _=s.getContent(d,i.tabindex,h,y=>{y.push(f())});return S("div",{ref:o,class:i.classes.value+(t.modelValue===null?" q-slider--no-value":""),...i.attributes.value,"aria-valuenow":t.modelValue},_)}}}),bS={class:"double-slider-container"},yS={class:"slider-container"},xS={class:"row justify-between no-wrap"},wS={class:"col"},_S={key:0,class:"col text-center"},SS={key:1,class:"col text-right"},kS=be({name:"SliderDouble",__name:"SliderDouble",props:{modelValue:{type:Number,required:!1,default:-1},readonly:{type:Boolean,default:!1},chargeMode:{type:String,default:""},limitMode:{type:String,default:"soc"},currentValue:{type:Number,default:0},targetTime:{type:String,required:!1,default:void 0},vehicleSocType:{type:String,required:!1,default:void 0},onEditSoc:{type:Function,required:!1},onRefreshSoc:{type:Function,required:!1}},emits:["update:modelValue"],setup(t,{emit:e}){const n=e,i=t,s=m({get:()=>i.modelValue,set:l=>{i.readonly||n("update:modelValue",l)}}),o=m(()=>s.value>=0&&i.limitMode!=="none"),a=m(()=>["soc","none"].includes(i.limitMode)?100:s.value),r=l=>l>=1e3?(l/1e3).toFixed(2)+" kWh":l.toFixed(0)+" Wh";return(l,u)=>(M(),Q("div",bS,[q("div",yS,[C(ea,{"model-value":t.currentValue,min:0,max:a.value,markers:i.limitMode=="amount"?1e4:10,color:"green-7",class:"current-slider","track-size":"1.5em","thumb-size":"0px",readonly:"","no-focus":"",onTouchstart:u[0]||(u[0]=an(()=>{},["stop"])),onTouchmove:u[1]||(u[1]=an(()=>{},["stop"])),onTouchend:u[2]||(u[2]=an(()=>{},["stop"]))},null,8,["model-value","max","markers"]),i.limitMode=="soc"?(M(),K(ea,{key:0,modelValue:s.value,"onUpdate:modelValue":u[3]||(u[3]=c=>s.value=c),min:0,max:100,color:"light-green-13","inner-track-color":"blue-grey-2",class:"target-slider","track-size":"1.5em","thumb-size":i.readonly?"0":"2em",readonly:i.readonly,onTouchstart:u[4]||(u[4]=an(()=>{},["stop"])),onTouchmove:u[5]||(u[5]=an(()=>{},["stop"])),onTouchend:u[6]||(u[6]=an(()=>{},["stop"]))},null,8,["modelValue","thumb-size","readonly"])):re("",!0)]),q("div",xS,[q("div",wS,[q("div",null,le(i.limitMode=="amount"?"Geladen":"Ladestand"),1),q("div",null,[$e(le(i.limitMode=="amount"?r(t.currentValue):t.currentValue+"%")+" ",1),t.vehicleSocType==="manual"&&t.limitMode!=="amount"?(M(),K(xe,{key:0,name:"edit",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onEditSoc},{default:A(()=>[C(En,null,{default:A(()=>u[7]||(u[7]=[$e("Ladestand eingeben",-1)])),_:1,__:[7]})]),_:1},8,["onClick"])):t.vehicleSocType!==void 0&&t.limitMode!=="amount"?(M(),K(xe,{key:1,name:"refresh",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onRefreshSoc},{default:A(()=>[C(En,null,{default:A(()=>u[8]||(u[8]=[$e("Ladestand aktualisieren",-1)])),_:1,__:[8]})]),_:1},8,["onClick"])):re("",!0)])]),i.targetTime?(M(),Q("div",_S,[u[9]||(u[9]=q("div",null,"Zielzeit",-1)),q("div",null,le(i.targetTime),1)])):re("",!0),o.value?(M(),Q("div",SS,[q("div",null,le(i.limitMode=="soc"?"Ladeziel":"Energieziel"),1),q("div",null,le(i.limitMode=="soc"?s.value+"%":s.value/1e3+" kWh"),1)])):re("",!0)])]))}}),Ml=mt(kS,[["__scopeId","data-v-3b9697ab"]]),xa=ze({name:"QToggle",props:{...fg,icon:String,iconColor:String},emits:hg,setup(t){function e(n,i){const s=m(()=>(n.value===!0?t.checkedIcon:i.value===!0?t.indeterminateIcon:t.uncheckedIcon)||t.icon),o=m(()=>n.value===!0?t.iconColor:null);return()=>[S("div",{class:"q-toggle__track"}),S("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},s.value!==void 0?[S(xe,{name:s.value,color:o.value})]:void 0)]}return gg("toggle",e)}}),bg=be({__name:"ChargePointLock",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,i=Re().chargePointManualLock(e.chargePointId);return(s,o)=>e.readonly?(M(),K(xe,{key:0,name:Ce(i)?"lock":"lock_open",size:"sm",color:Ce(i)?"negative":"positive"},null,8,["name","color"])):(M(),K(xa,{key:1,modelValue:Ce(i),"onUpdate:modelValue":o[0]||(o[0]=a=>Yr(i)?i.value=a:null),color:Ce(i)?"primary":"positive","checked-icon":"lock","unchecked-icon":"lock_open",size:"lg",dense:e.dense},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(Ce(i)?"Ladepunkt gesperrt":"Ladepunkt entsperrt"),1)]),_:1})]),_:1},8,["modelValue","color","dense"]))}}),ta=be({__name:"ChargePointStateIcon",props:{chargePointId:{},vehicleId:{}},setup(t){const e=t,n=Re(),i=m(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.plugged):e.chargePointId!==void 0?n.chargePointPlugState(e.chargePointId):!1),s=m(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.charging):e.chargePointId!==void 0?n.chargePointChargeState(e.chargePointId):!1);return(o,a)=>(M(),K(xe,{name:i.value?"power":"power_off",size:"sm",color:i.value?s.value?"positive":"warning":"negative"},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(i.value?s.value?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:1})]),_:1},8,["name","color"]))}}),yg=be({__name:"ChargePointPriority",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,n={off:"star_border",on:"star"},s=Re().chargePointConnectedVehiclePriority(e.chargePointId);return(o,a)=>e.readonly?(M(),K(xe,{key:0,name:Ce(s)?n.on:n.off,color:Ce(s)?"warning":"",size:"sm"},null,8,["name","color"])):(M(),K(xa,{key:1,modelValue:Ce(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Yr(s)?s.value=r:null),color:Ce(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},{default:A(()=>[C(En,null,{default:A(()=>[$e(le(Ce(s)?"Fahrzeug priorisiert":"Fahrzeug nicht priorisiert"),1)]),_:1})]),_:1},8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),CS={key:0,class:"q-pt-md full-width"},MS=be({__name:"ChargePointModeButtons",props:{chargePointId:{}},setup(t){const e=t,n=m(()=>Zr.is.mobile),{chargeModes:i}=wl(),s=Re(),o=m(()=>s.chargePointConnectedVehicleChargeMode(e.chargePointId)),a=m(()=>i.find(r=>r.value===o.value.value)?.label);return(r,l)=>n.value?(M(),Q("div",CS,[C(fl,{"transition-show":"scale","transition-hide":"scale","transition-duration":"500",class:"full-width",color:"primary",label:a.value,size:"lg","dropdown-icon":"none",cover:"",push:""},{default:A(()=>[C(zs,null,{default:A(()=>[(M(!0),Q(Oe,null,Qe(Ce(i),(u,c)=>(M(),Q(Oe,{key:u.value},[cn((M(),K(Bs,{clickable:"",onClick:d=>o.value.value=u.value,active:o.value.value===u.value,"active-class":"bg-primary text-white"},{default:A(()=>[C(di,{class:"text-center text-weight-bold"},{default:A(()=>[C(Ns,null,{default:A(()=>[$e(le(u.label.toLocaleUpperCase()),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick","active"])),[[Vn]]),c[(M(!0),Q(Oe,null,Qe(Ce(i),u=>(M(),K(Me,{key:u.value,color:o.value.value===u.value?"primary":"grey",label:u.label,size:"sm",class:"flex-grow",onClick:c=>o.value.value=u.value},null,8,["color","label","onClick"]))),128))]),_:1}))}}),xg=mt(MS,[["__scopeId","data-v-674981ff"]]),nd=be({__name:"ChargePointMessage",props:{chargePointId:{},faultMessage:{type:Boolean}},setup(t){const e=t,n=Re(),i=N(!0),s=()=>{i.value=!i.value},o=m(()=>a.value!==void 0&&a.value!==0),a=m(()=>e.faultMessage?n.chargePointFaultState(e.chargePointId):-1),r=m(()=>e.faultMessage?n.chargePointFaultMessage(e.chargePointId):n.chargePointStateMessage(e.chargePointId)),l=m(()=>{switch(a.value){case 1:return"bg-warning";case 2:return"bg-negative";default:return"bg-primary"}}),u=m(()=>{switch(a.value){case 1:return"warning";case 2:return"error";default:return"info"}});return(c,d)=>o.value?(M(),Q("div",{key:0,class:gt(["row q-mt-sm q-pa-sm text-white no-wrap cursor-pointer",[{"items-center":i.value},l.value]]),style:{"border-radius":"10px"},onClick:s},[C(xe,{name:u.value,size:"sm",class:"q-mr-xs"},null,8,["name"]),q("div",{class:gt({ellipsis:i.value})},le(r.value),3)],2)):re("",!0)}}),PS={key:0,class:"q-mx-sm"},TS=["title"],wg=be({__name:"ChargePointVehicleSelect",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1}},setup(t){const e=t,n=Re(),i=n.chargePointConnectedVehicleInfo(e.chargePointId),s=m(()=>n.vehicleList);return(o,a)=>e.readonly?(M(),Q("div",PS,[C(xe,{name:"directions_car"}),$e(" "+le(Ce(i)?.name),1)])):(M(),K(fl,{key:1,color:"grey",dense:"","no-caps":""},{label:A(()=>[q("span",{class:"ellipsis q-ml-xs",title:Ce(i)?.name},[C(xe,{name:"directions_car"}),$e(" "+le(Ce(i)?.name),1)],8,TS)]),default:A(()=>[C(zs,null,{default:A(()=>[(M(!0),Q(Oe,null,Qe(s.value,r=>cn((M(),K(Bs,{key:r.id,clickable:"",dense:"",onClick:l=>i.value=r},{default:A(()=>[C(di,null,{default:A(()=>[C(Ns,{class:"ellipsis",title:r.name},{default:A(()=>[$e(le(r.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick"])),[[Vn]])),128))]),_:1})]),_:1}))}}),IS={class:"text-subtitle2"},DS={class:"row items-center justify-between q-ml-sm"},OS=be({name:"SliderStandard",__name:"SliderStandard",props:{title:{type:String,default:"title"},modelValue:{type:Number},max:{type:Number,required:!0},min:{type:Number,required:!0},step:{type:Number,default:1},unit:{type:String,default:""},offValueRight:{type:Number,default:105},offValueLeft:{type:Number,default:-1},discreteValues:{type:Array,default:void 0}},emits:["update:model-value"],setup(t,{emit:e}){const n=t,i=e,s=N(n.modelValue),o=N(null),a=m(()=>s.value!==n.modelValue),r=m({get:()=>{if(n.discreteValues){const f=n.discreteValues.indexOf(s.value??n.discreteValues[0]);return f>=0?f:0}return s.value},set:f=>{o.value&&clearTimeout(o.value),n.discreteValues?s.value=n.discreteValues[f]:s.value=f}}),l=f=>{a.value&&(o.value&&clearTimeout(o.value),o.value=setTimeout(()=>{i("update:model-value",n.discreteValues?n.discreteValues[f]:f)},2e3))},u=m(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"Aus":f}),c=m(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"":n.unit});fe(()=>n.modelValue,f=>{s.value=f}),zt(()=>{if(o.value){clearTimeout(o.value);const f=r.value!==void 0?r.value:0;i("update:model-value",n.discreteValues?n.discreteValues[f]:f)}});const d=m(()=>a.value?"pending":"");return(f,h)=>(M(),Q("div",null,[q("div",null,[q("div",IS,le(n.title),1)]),q("div",DS,[C(ea,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=g=>r.value=g),min:n.discreteValues?0:n.min,max:n.discreteValues?n.discreteValues.length-1:n.max,step:n.step,color:"primary",style:{width:"75%"},"track-size":"0.5em","thumb-size":"1.7em",onTouchstart:h[1]||(h[1]=an(()=>{},["stop"])),onTouchmove:h[2]||(h[2]=an(()=>{},["stop"])),onTouchend:h[3]||(h[3]=an(()=>{},["stop"])),onChange:l},null,8,["modelValue","min","max","step"]),q("div",{class:gt(["q-ml-md no-wrap",d.value])},le(u.value)+" "+le(c.value),3)])]))}}),qt=mt(OS,[["__scopeId","data-v-d1d2b5c9"]]),VS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},ES={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},AS=be({__name:"ChargePointInstantSettings",props:{chargePointId:{}},setup(t){const e=t,n=Re(),i=m(()=>{let h=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(h=h.filter(g=>g.value!=="soc")),h}),s=m(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"}],a=m(()=>n.chargePointConnectedVehicleInstantChargeCurrent(e.chargePointId)),r=m(()=>n.dcChargingEnabled),l=m(()=>n.chargePointConnectedVehicleInstantDcChargePower(e.chargePointId)),u=m(()=>n.chargePointConnectedVehicleInstantChargePhases(e.chargePointId)),c=m(()=>n.chargePointConnectedVehicleInstantChargeLimit(e.chargePointId)),d=m(()=>n.chargePointConnectedVehicleInstantChargeLimitSoC(e.chargePointId)),f=m(()=>n.chargePointConnectedVehicleInstantChargeLimitEnergy(e.chargePointId));return(h,g)=>(M(),Q(Oe,null,[C(qt,{title:"Stromstärke",min:6,max:32,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=p=>a.value.value=p),class:"q-mt-sm"},null,8,["modelValue"]),r.value?(M(),K(qt,{key:0,title:"DC-Sollleistung",min:4,max:300,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":g[1]||(g[1]=p=>l.value.value=p),class:"q-mt-sm"},null,8,["modelValue"])):re("",!0),g[4]||(g[4]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",VS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(o,p=>C(Me,{key:p.value,color:u.value.value===p.value?"primary":"grey",label:p.label,size:"sm",class:"col",onClick:v=>u.value.value=p.value},null,8,["color","label","onClick"])),64))]),_:1})]),g[5]||(g[5]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",ES,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(i.value,p=>(M(),K(Me,{key:p.value,color:c.value.value===p.value?"primary":"grey",label:p.label,size:"sm",class:"col",onClick:v=>c.value.value=p.value},null,8,["color","label","onClick"]))),128))]),_:1})]),c.value.value==="soc"?(M(),K(qt,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":g[2]||(g[2]=p=>d.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),c.value.value==="amount"?(M(),K(qt,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":g[3]||(g[3]=p=>f.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):re("",!0)],64))}}),qS=mt(AS,[["__scopeId","data-v-f45a6b19"]]),LS=be({__name:"ToggleStandard",props:{value:{type:Boolean,default:!1},size:{type:String,default:"lg"}},emits:["update:value"],setup(t,{emit:e}){const n=t,i=e,s=o=>{i("update:value",o)};return(o,a)=>(M(),K(xa,{"model-value":n.value,"onUpdate:modelValue":s,color:n.value?"positive":"negative",size:n.size},null,8,["model-value","color","size"]))}}),RS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},FS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},$S={key:3},zS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},BS={class:"row items-center justify-between q-ma-none q-pa-none no-wrap q-mt-md"},NS=be({__name:"ChargePointPvSettings",props:{chargePointId:{}},setup(t){const e=t,n=Re(),i=m(()=>{let _=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(_=_.filter(y=>y.value!=="soc")),_}),s=m(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"},{value:0,label:"Automatik"}],a=[{value:1,label:"1"},{value:3,label:"Maximum"}],r=m(()=>n.chargePointConnectedVehiclePvChargeMinCurrent(e.chargePointId)),l=m(()=>n.dcChargingEnabled),u=m(()=>n.chargePointConnectedVehiclePvDcChargePower(e.chargePointId)),c=m(()=>n.chargePointConnectedVehiclePvDcMinSocPower(e.chargePointId)),d=m(()=>n.chargePointConnectedVehiclePvChargePhases(e.chargePointId)),f=m(()=>n.chargePointConnectedVehiclePvChargePhasesMinSoc(e.chargePointId)),h=m(()=>n.chargePointConnectedVehiclePvChargeMinSoc(e.chargePointId)),g=m(()=>n.chargePointConnectedVehiclePvChargeMinSocCurrent(e.chargePointId)),p=m(()=>n.chargePointConnectedVehiclePvChargeLimit(e.chargePointId)),v=m(()=>n.chargePointConnectedVehiclePvChargeLimitSoC(e.chargePointId)),b=m(()=>n.chargePointConnectedVehiclePvChargeLimitEnergy(e.chargePointId)),w=m(()=>n.chargePointConnectedVehiclePvChargeFeedInLimit(e.chargePointId));return(_,y)=>(M(),Q(Oe,null,[C(qt,{title:"Minimaler Dauerstrom",min:-1,max:16,step:1,unit:"A","off-value-left":-1,"discrete-values":[-1,6,7,8,9,10,11,12,13,14,15,16],modelValue:r.value.value,"onUpdate:modelValue":y[0]||(y[0]=x=>r.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),K(qt,{key:0,title:"Minimaler DC-Dauerleistung",min:0,max:300,step:1,unit:"kW",modelValue:u.value.value,"onUpdate:modelValue":y[1]||(y[1]=x=>u.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),y[10]||(y[10]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",RS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(o,x=>C(Me,{key:x.value,color:d.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>d.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})]),y[11]||(y[11]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",FS,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(Oe,null,Qe(i.value,x=>(M(),K(Me,{key:x.value,color:p.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>p.value.value=x.value},null,8,["color","label","onClick"]))),128))]),_:1})]),p.value.value==="soc"?(M(),K(qt,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:v.value.value,"onUpdate:modelValue":y[2]||(y[2]=x=>v.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),p.value.value==="amount"?(M(),K(qt,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:b.value.value,"onUpdate:modelValue":y[3]||(y[3]=x=>b.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),Ce(s)!==void 0?(M(),Q("div",$S,[C(qt,{title:"Mindest-SoC für das Fahrzeug",min:0,max:100,step:5,unit:"%","off-value-left":0,modelValue:h.value.value,"onUpdate:modelValue":y[4]||(y[4]=x=>h.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),C(qt,{title:"Mindest-SoC-Strom",min:6,max:32,unit:"A",modelValue:g.value.value,"onUpdate:modelValue":y[5]||(y[5]=x=>g.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),K(qt,{key:0,title:"DC Mindest-SoC-Leistung",min:0,max:300,step:1,unit:"kW",modelValue:c.value.value,"onUpdate:modelValue":y[6]||(y[6]=x=>c.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):re("",!0),y[8]||(y[8]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen Mindest-SoC",-1)),q("div",zS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(Oe,null,Qe(a,x=>C(Me,{key:x.value,color:f.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:V=>f.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})])])):re("",!0),q("div",BS,[y[9]||(y[9]=q("div",{class:"text-subtitle2 q-mr-sm"},"Einspeisegrenze beachten",-1)),q("div",null,[C(LS,{dense:"",modelValue:w.value.value,"onUpdate:modelValue":y[7]||(y[7]=x=>w.value.value=x)},null,8,["modelValue"])])])],64))}});/*! * chartjs-plugin-annotation v3.1.0 * https://www.chartjs.org/chartjs-plugin-annotation/index * (c) 2024 chartjs-plugin-annotation Contributors diff --git a/packages/modules/web_themes/koala/web/assets/IndexPage-Ckkw4D5a.css b/packages/modules/web_themes/koala/web/assets/IndexPage-h6LZXkns.css similarity index 99% rename from packages/modules/web_themes/koala/web/assets/IndexPage-Ckkw4D5a.css rename to packages/modules/web_themes/koala/web/assets/IndexPage-h6LZXkns.css index 6f48db9830..6a9da34c11 100644 --- a/packages/modules/web_themes/koala/web/assets/IndexPage-Ckkw4D5a.css +++ b/packages/modules/web_themes/koala/web/assets/IndexPage-h6LZXkns.css @@ -1 +1 @@ -.svg-container[data-v-62f971c1]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;-webkit-user-select:none;user-select:none}svg[data-v-62f971c1]{width:100%;height:100%;object-fit:contain}path[data-v-62f971c1]{fill:none;fill-rule:evenodd;stroke:#404040;stroke-width:.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;transition:stroke .5s}path.animated[data-v-62f971c1]{stroke:var(--q-white);stroke-dasharray:5;animation:dash-62f971c1 1s linear infinite}path.animatedReverse[data-v-62f971c1]{stroke:var(--q-white);stroke-dasharray:5;animation:dashReverse-62f971c1 1s linear infinite}path.animated.grid[data-v-62f971c1]{stroke:var(--q-negative)}path.animatedReverse.grid[data-v-62f971c1]{stroke:var(--q-positive)}:root path.home[data-v-62f971c1]{stroke:var(--q-grey)}.body--dark path.home[data-v-62f971c1]{stroke:var(--q-white)}path.animated.pv[data-v-62f971c1],path.animatedReverse.pv[data-v-62f971c1]{stroke:var(--q-positive)}path.animated.battery[data-v-62f971c1],path.animatedReverse.battery[data-v-62f971c1]{stroke:var(--q-warning)}path.animated.charge-point[data-v-62f971c1],path.animatedReverse.charge-point[data-v-62f971c1]{stroke:var(--q-primary)}path.animated.vehicle[data-v-62f971c1],path.animatedReverse.vehicle[data-v-62f971c1]{stroke:var(--q-accent)}circle[data-v-62f971c1]{fill:var(--q-secondary);fill-opacity:1;stroke:var(--q-grey);stroke-width:var(--7061f1f7);stroke-miterlimit:2;stroke-opacity:1}rect[data-v-62f971c1]{stroke-width:var(--7061f1f7);fill:var(--q-secondary)}:root image[data-v-62f971c1]{filter:brightness(.4)}.body--dark image[data-v-62f971c1]{filter:brightness(1)}@keyframes dash-62f971c1{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes dashReverse-62f971c1{0%{stroke-dashoffset:0}to{stroke-dashoffset:20}}text[data-v-62f971c1]{font-size:var(--7c22ee07);line-height:1.25;font-family:Arial;fill:var(--q-white);fill-opacity:1}text .fill-success[data-v-62f971c1]{fill:var(--q-positive)}text .fill-danger[data-v-62f971c1]{fill:var(--q-negative)}text .fill-dark[data-v-62f971c1]{fill:var(--q-brown-text)}.grid text[data-v-62f971c1]{fill:var(--q-negative)}.grid circle[data-v-62f971c1],.grid rect[data-v-62f971c1]{stroke:var(--q-negative)}.grid circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-negative) 20%,transparent)}.pv text[data-v-62f971c1]{fill:var(--q-positive)}.pv circle[data-v-62f971c1],.pv rect[data-v-62f971c1]{stroke:var(--q-positive)}.pv circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-positive) 30%,transparent)}.battery text[data-v-62f971c1]{fill:var(--q-battery)}.battery circle[data-v-62f971c1],.battery rect[data-v-62f971c1]{stroke:var(--q-battery)}.battery circle[data-v-62f971c1]:not(.soc){fill:color-mix(in srgb,var(--q-battery) 50%,transparent)}:root .home text[data-v-62f971c1]{fill:var(--q-brown-text)}.body--dark .home text[data-v-62f971c1]{fill:var(--q-white)}.home circle[data-v-62f971c1],.home rect[data-v-62f971c1]{stroke:var(--q-flow-home-stroke)}.home circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-brown-text) 20%,transparent)}.charge-point text[data-v-62f971c1]{fill:var(--q-primary)}.charge-point circle[data-v-62f971c1],.charge-point rect[data-v-62f971c1]{stroke:var(--q-primary)}.charge-point circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-primary) 30%,transparent)}.background-circle[data-v-62f971c1]{fill:var(--q-secondary)!important}.vehicle text[data-v-62f971c1]{fill:var(--q-accent)}.vehicle circle[data-v-62f971c1],.vehicle rect[data-v-62f971c1]{stroke:var(--q-accent)}.vehicle circle[data-v-62f971c1]:not(.soc){fill:color-mix(in srgb,var(--q-accent) 50%,transparent)}.legend-item-hidden[data-v-32f86429]{opacity:.6!important;text-decoration:line-through!important}.q-item__section--avatar[data-v-32f86429]{min-width:5px!important;padding-right:5px!important}.legend-item-hidden[data-v-2d9f3a37]{opacity:.6!important;text-decoration:line-through!important}.q-item__section--avatar[data-v-2d9f3a37]{min-width:5px!important;padding-right:5px!important}.q-item[data-v-2d9f3a37]{min-height:22px!important;padding-left:4px!important;padding-right:4px!important}.body--dark .q-list[data-v-2d9f3a37]{background-color:transparent}.chart-container[data-v-2f0b7f99]{width:100%;height:100%;display:flex;flex-direction:column}.legend-wrapper[data-v-2f0b7f99]{flex:0 0 auto}.chart-wrapper[data-v-2f0b7f99]{flex:1;min-height:0}.chart-wrapper>canvas[data-v-2f0b7f99]{width:100%!important;height:100%!important}.carousel-height[data-v-85eaf875]{min-height:fit-content}.legend-button-text[data-v-85eaf875]{color:var(--q-carousel-control)}.carousel-slide[data-v-4432d848]{padding:0}.item-container[data-v-4432d848]{padding:.25em}.carousel-height[data-v-4432d848]{min-height:fit-content;height:100%}.search-field[data-v-d1f1dccd]{width:100%;max-width:18em}.clickable[data-v-d1f1dccd]{cursor:pointer}.custom-table-height[data-v-d1f1dccd]{height:var(--618895b2)}.slider-container[data-v-3b9697ab]{position:relative;height:40px}.current-slider[data-v-3b9697ab]{position:absolute;width:100%;z-index:1}.target-slider[data-v-3b9697ab]{position:absolute;width:100%}[data-v-674981ff] .q-btn-dropdown__arrow-container{width:0;padding:0}.flex-grow[data-v-674981ff]{flex-grow:1}[data-v-d1d2b5c9]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-d1d2b5c9]{color:var(--q-brown-text)!important}:root .deselected[data-v-d1d2b5c9]{color:var(--q-grey)!important}:root .q-header[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-tab[data-v-d1d2b5c9]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-d1d2b5c9]{color:var(--q-primary)}:root .q-tab--active[data-v-d1d2b5c9]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-d1d2b5c9]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-card[data-v-d1d2b5c9]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-d1d2b5c9]{color:var(--q-white)}:root .q-list[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-d1d2b5c9]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1d2b5c9]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-d1d2b5c9]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-d1d2b5c9]{height:310px}:root .sticky-header-table .q-table__top[data-v-d1d2b5c9],:root .sticky-header-table .q-table__bottom[data-v-d1d2b5c9],:root .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-d1d2b5c9]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1d2b5c9]{top:48px}:root .sticky-header-table tbody[data-v-d1d2b5c9]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-d1d2b5c9],:root .sticky-header-table .q-table__middle[data-v-d1d2b5c9],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-d1d2b5c9]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-d1d2b5c9]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-d1d2b5c9],:root .q-table td[data-v-d1d2b5c9]{padding:2px 6px!important}:root .q-table th[data-v-d1d2b5c9]:first-child,:root .q-table td[data-v-d1d2b5c9]:first-child{padding-left:12px!important}:root .q-table th[data-v-d1d2b5c9]:last-child,:root .q-table td[data-v-d1d2b5c9]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-d1d2b5c9]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-d1d2b5c9]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-d1d2b5c9]{color:var(--q-white)!important}.body--dark .deselected[data-v-d1d2b5c9]{color:var(--q-grey)!important}.body--dark .q-header[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-d1d2b5c9]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-d1d2b5c9]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-d1d2b5c9]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-d1d2b5c9]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-d1d2b5c9]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-d1d2b5c9]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-d1d2b5c9]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-d1d2b5c9]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-d1d2b5c9]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-d1d2b5c9]{color:var(--q-white)}.body--dark .q-list[data-v-d1d2b5c9]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-d1d2b5c9]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-d1d2b5c9]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1d2b5c9]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-d1d2b5c9]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__bottom[data-v-d1d2b5c9],.body--dark .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-d1d2b5c9]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1d2b5c9]{top:48px}.body--dark .sticky-header-table tbody[data-v-d1d2b5c9]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__middle[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__grid-content[data-v-d1d2b5c9]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-d1d2b5c9]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-d1d2b5c9]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.pending[data-v-d1d2b5c9]{color:#f44336}.flex-grow[data-v-d1d2b5c9]{flex-grow:1}.q-btn-group .q-btn[data-v-f45a6b19]{min-width:100px!important}body.mobile .q-btn-group .q-btn[data-v-f45a6b19]{padding:4px 8px;font-size:12px!important;min-height:30px}.chartContainer[data-v-9992330e]{width:100%;min-height:200px;height:min(50vh,300px);padding:.5em 0}.full-width[data-v-3743e114]{width:100%}.plan-name[data-v-3743e114]{font-weight:700}.plan-details[data-v-3743e114]{display:flex;justify-content:center}.plan-details>div[data-v-3743e114]{display:flex;align-items:center}.plan-details>div[data-v-3743e114]:not(:last-child){margin-right:.5em}body.mobile .height[data-v-3743e114]{height:2.5em}.full-width[data-v-1b9699bd],.full-width[data-v-e575064c]{width:100%}.plan-name[data-v-e575064c]{font-weight:700}.plan-details[data-v-e575064c]{display:flex;justify-content:center}.plan-details>div[data-v-e575064c]{display:flex;align-items:center}.plan-details>div[data-v-e575064c]:not(:last-child){margin-right:.5em}body.mobile .height[data-v-e575064c]{height:2.5em}.full-width[data-v-d2768b19]{width:100%}.cp-power[data-v-680da291]{white-space:nowrap}[data-v-34c2bab2]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-34c2bab2]{color:var(--q-brown-text)!important}:root .deselected[data-v-34c2bab2]{color:var(--q-grey)!important}:root .q-header[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-tab[data-v-34c2bab2]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-34c2bab2]{color:var(--q-primary)}:root .q-tab--active[data-v-34c2bab2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-34c2bab2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-card[data-v-34c2bab2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-34c2bab2]{color:var(--q-white)}:root .q-list[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-34c2bab2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-34c2bab2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-34c2bab2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-34c2bab2]{height:310px}:root .sticky-header-table .q-table__top[data-v-34c2bab2],:root .sticky-header-table .q-table__bottom[data-v-34c2bab2],:root .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-34c2bab2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-34c2bab2]{top:48px}:root .sticky-header-table tbody[data-v-34c2bab2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-34c2bab2],:root .sticky-header-table .q-table__middle[data-v-34c2bab2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-34c2bab2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-34c2bab2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-34c2bab2],:root .q-table td[data-v-34c2bab2]{padding:2px 6px!important}:root .q-table th[data-v-34c2bab2]:first-child,:root .q-table td[data-v-34c2bab2]:first-child{padding-left:12px!important}:root .q-table th[data-v-34c2bab2]:last-child,:root .q-table td[data-v-34c2bab2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-34c2bab2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-34c2bab2]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-34c2bab2]{color:var(--q-white)!important}.body--dark .deselected[data-v-34c2bab2]{color:var(--q-grey)!important}.body--dark .q-header[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-34c2bab2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-34c2bab2]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-34c2bab2]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-34c2bab2]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-34c2bab2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-34c2bab2]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-34c2bab2]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-34c2bab2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-34c2bab2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-34c2bab2]{color:var(--q-white)}.body--dark .q-list[data-v-34c2bab2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-34c2bab2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-34c2bab2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-34c2bab2]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-34c2bab2]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__bottom[data-v-34c2bab2],.body--dark .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-34c2bab2]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-34c2bab2]{top:48px}.body--dark .sticky-header-table tbody[data-v-34c2bab2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__middle[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__grid-content[data-v-34c2bab2]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-34c2bab2]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-34c2bab2]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-34c2bab2]{width:22em}.q-card__section[data-v-34c2bab2]{padding:0 16px}.q-card__section[data-v-34c2bab2]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-34c2bab2]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-34c2bab2]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}.card-width[data-v-f0308ae7]{width:22em}.q-card__section[data-v-f0308ae7]{padding:0 16px}.q-card__section[data-v-f0308ae7]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-f0308ae7]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-f0308ae7]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-3165c785]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-3165c785]{color:var(--q-brown-text)!important}:root .deselected[data-v-3165c785]{color:var(--q-grey)!important}:root .q-header[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-tab[data-v-3165c785]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-3165c785]{color:var(--q-primary)}:root .q-tab--active[data-v-3165c785]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-3165c785]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-3165c785]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-3165c785]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-card[data-v-3165c785]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-3165c785]{color:var(--q-white)}:root .q-list[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-3165c785]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-3165c785]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-3165c785]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-3165c785]{height:310px}:root .sticky-header-table .q-table__top[data-v-3165c785],:root .sticky-header-table .q-table__bottom[data-v-3165c785],:root .sticky-header-table thead tr:first-child th[data-v-3165c785]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-3165c785]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-3165c785]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-3165c785]{top:48px}:root .sticky-header-table tbody[data-v-3165c785]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-3165c785],:root .sticky-header-table .q-table__middle[data-v-3165c785],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-3165c785]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-3165c785]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-3165c785],:root .q-table td[data-v-3165c785]{padding:2px 6px!important}:root .q-table th[data-v-3165c785]:first-child,:root .q-table td[data-v-3165c785]:first-child{padding-left:12px!important}:root .q-table th[data-v-3165c785]:last-child,:root .q-table td[data-v-3165c785]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-3165c785]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-3165c785]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-3165c785]{color:var(--q-white)!important}.body--dark .deselected[data-v-3165c785]{color:var(--q-grey)!important}.body--dark .q-header[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-3165c785]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-3165c785]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-3165c785]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-3165c785]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-3165c785]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-3165c785]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-3165c785]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-3165c785]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-3165c785]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-3165c785]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-3165c785]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-3165c785]{color:var(--q-white)}.body--dark .q-list[data-v-3165c785]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-3165c785]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-3165c785]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-3165c785]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-3165c785]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-3165c785],.body--dark .sticky-header-table .q-table__bottom[data-v-3165c785],.body--dark .sticky-header-table thead tr:first-child th[data-v-3165c785]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-3165c785]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-3165c785]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-3165c785]{top:48px}.body--dark .sticky-header-table tbody[data-v-3165c785]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-3165c785],.body--dark .sticky-header-table .q-table__middle[data-v-3165c785],.body--dark .sticky-header-table .q-table__grid-content[data-v-3165c785]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-3165c785]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-3165c785]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-3165c785]{width:22em}.q-card__section[data-v-3165c785]{padding:0 16px}.q-card__section[data-v-3165c785]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-3165c785]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-3165c785]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}.chart-section[data-v-e73060e2]{height:40vh}.tab-section[data-v-e73060e2] .q-tab-panel{max-width:100vw} +.svg-container[data-v-62f971c1]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;-webkit-user-select:none;user-select:none}svg[data-v-62f971c1]{width:100%;height:100%;object-fit:contain}path[data-v-62f971c1]{fill:none;fill-rule:evenodd;stroke:#404040;stroke-width:.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;transition:stroke .5s}path.animated[data-v-62f971c1]{stroke:var(--q-white);stroke-dasharray:5;animation:dash-62f971c1 1s linear infinite}path.animatedReverse[data-v-62f971c1]{stroke:var(--q-white);stroke-dasharray:5;animation:dashReverse-62f971c1 1s linear infinite}path.animated.grid[data-v-62f971c1]{stroke:var(--q-negative)}path.animatedReverse.grid[data-v-62f971c1]{stroke:var(--q-positive)}:root path.home[data-v-62f971c1]{stroke:var(--q-grey)}.body--dark path.home[data-v-62f971c1]{stroke:var(--q-white)}path.animated.pv[data-v-62f971c1],path.animatedReverse.pv[data-v-62f971c1]{stroke:var(--q-positive)}path.animated.battery[data-v-62f971c1],path.animatedReverse.battery[data-v-62f971c1]{stroke:var(--q-warning)}path.animated.charge-point[data-v-62f971c1],path.animatedReverse.charge-point[data-v-62f971c1]{stroke:var(--q-primary)}path.animated.vehicle[data-v-62f971c1],path.animatedReverse.vehicle[data-v-62f971c1]{stroke:var(--q-accent)}circle[data-v-62f971c1]{fill:var(--q-secondary);fill-opacity:1;stroke:var(--q-grey);stroke-width:var(--7061f1f7);stroke-miterlimit:2;stroke-opacity:1}rect[data-v-62f971c1]{stroke-width:var(--7061f1f7);fill:var(--q-secondary)}:root image[data-v-62f971c1]{filter:brightness(.4)}.body--dark image[data-v-62f971c1]{filter:brightness(1)}@keyframes dash-62f971c1{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes dashReverse-62f971c1{0%{stroke-dashoffset:0}to{stroke-dashoffset:20}}text[data-v-62f971c1]{font-size:var(--7c22ee07);line-height:1.25;font-family:Arial;fill:var(--q-white);fill-opacity:1}text .fill-success[data-v-62f971c1]{fill:var(--q-positive)}text .fill-danger[data-v-62f971c1]{fill:var(--q-negative)}text .fill-dark[data-v-62f971c1]{fill:var(--q-brown-text)}.grid text[data-v-62f971c1]{fill:var(--q-negative)}.grid circle[data-v-62f971c1],.grid rect[data-v-62f971c1]{stroke:var(--q-negative)}.grid circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-negative) 20%,transparent)}.pv text[data-v-62f971c1]{fill:var(--q-positive)}.pv circle[data-v-62f971c1],.pv rect[data-v-62f971c1]{stroke:var(--q-positive)}.pv circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-positive) 30%,transparent)}.battery text[data-v-62f971c1]{fill:var(--q-battery)}.battery circle[data-v-62f971c1],.battery rect[data-v-62f971c1]{stroke:var(--q-battery)}.battery circle[data-v-62f971c1]:not(.soc){fill:color-mix(in srgb,var(--q-battery) 50%,transparent)}:root .home text[data-v-62f971c1]{fill:var(--q-brown-text)}.body--dark .home text[data-v-62f971c1]{fill:var(--q-white)}.home circle[data-v-62f971c1],.home rect[data-v-62f971c1]{stroke:var(--q-flow-home-stroke)}.home circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-brown-text) 20%,transparent)}.charge-point text[data-v-62f971c1]{fill:var(--q-primary)}.charge-point circle[data-v-62f971c1],.charge-point rect[data-v-62f971c1]{stroke:var(--q-primary)}.charge-point circle[data-v-62f971c1]{fill:color-mix(in srgb,var(--q-primary) 30%,transparent)}.background-circle[data-v-62f971c1]{fill:var(--q-secondary)!important}.vehicle text[data-v-62f971c1]{fill:var(--q-accent)}.vehicle circle[data-v-62f971c1],.vehicle rect[data-v-62f971c1]{stroke:var(--q-accent)}.vehicle circle[data-v-62f971c1]:not(.soc){fill:color-mix(in srgb,var(--q-accent) 50%,transparent)}.legend-item-hidden[data-v-32f86429]{opacity:.6!important;text-decoration:line-through!important}.q-item__section--avatar[data-v-32f86429]{min-width:5px!important;padding-right:5px!important}.legend-item-hidden[data-v-2d9f3a37]{opacity:.6!important;text-decoration:line-through!important}.q-item__section--avatar[data-v-2d9f3a37]{min-width:5px!important;padding-right:5px!important}.q-item[data-v-2d9f3a37]{min-height:22px!important;padding-left:4px!important;padding-right:4px!important}.body--dark .q-list[data-v-2d9f3a37]{background-color:transparent}.chart-container[data-v-2f0b7f99]{width:100%;height:100%;display:flex;flex-direction:column}.legend-wrapper[data-v-2f0b7f99]{flex:0 0 auto}.chart-wrapper[data-v-2f0b7f99]{flex:1;min-height:0}.chart-wrapper>canvas[data-v-2f0b7f99]{width:100%!important;height:100%!important}.carousel-height[data-v-85eaf875]{min-height:fit-content}.legend-button-text[data-v-85eaf875]{color:var(--q-carousel-control)}.carousel-slide[data-v-e2b77802]{padding:0}.item-container[data-v-e2b77802]{padding:.25em}.carousel-height[data-v-e2b77802]{min-height:fit-content;height:100%}.search-field[data-v-d1f1dccd]{width:100%;max-width:18em}.clickable[data-v-d1f1dccd]{cursor:pointer}.custom-table-height[data-v-d1f1dccd]{height:var(--618895b2)}.slider-container[data-v-3b9697ab]{position:relative;height:40px}.current-slider[data-v-3b9697ab]{position:absolute;width:100%;z-index:1}.target-slider[data-v-3b9697ab]{position:absolute;width:100%}[data-v-674981ff] .q-btn-dropdown__arrow-container{width:0;padding:0}.flex-grow[data-v-674981ff]{flex-grow:1}[data-v-d1d2b5c9]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-d1d2b5c9]{color:var(--q-brown-text)!important}:root .deselected[data-v-d1d2b5c9]{color:var(--q-grey)!important}:root .q-header[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-tab[data-v-d1d2b5c9]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-d1d2b5c9]{color:var(--q-primary)}:root .q-tab--active[data-v-d1d2b5c9]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-d1d2b5c9]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-card[data-v-d1d2b5c9]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-d1d2b5c9]{color:var(--q-white)}:root .q-list[data-v-d1d2b5c9]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-d1d2b5c9]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1d2b5c9]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-d1d2b5c9]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-d1d2b5c9]{height:310px}:root .sticky-header-table .q-table__top[data-v-d1d2b5c9],:root .sticky-header-table .q-table__bottom[data-v-d1d2b5c9],:root .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-d1d2b5c9]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1d2b5c9]{top:48px}:root .sticky-header-table tbody[data-v-d1d2b5c9]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-d1d2b5c9],:root .sticky-header-table .q-table__middle[data-v-d1d2b5c9],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-d1d2b5c9]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-d1d2b5c9]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-d1d2b5c9],:root .q-table td[data-v-d1d2b5c9]{padding:2px 6px!important}:root .q-table th[data-v-d1d2b5c9]:first-child,:root .q-table td[data-v-d1d2b5c9]:first-child{padding-left:12px!important}:root .q-table th[data-v-d1d2b5c9]:last-child,:root .q-table td[data-v-d1d2b5c9]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-d1d2b5c9]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-d1d2b5c9]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-d1d2b5c9]{color:var(--q-white)!important}.body--dark .deselected[data-v-d1d2b5c9]{color:var(--q-grey)!important}.body--dark .q-header[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-d1d2b5c9]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-d1d2b5c9]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-d1d2b5c9]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-d1d2b5c9]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-d1d2b5c9]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-d1d2b5c9]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1d2b5c9]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-d1d2b5c9]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-d1d2b5c9]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-d1d2b5c9]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-d1d2b5c9]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-d1d2b5c9]{color:var(--q-white)}.body--dark .q-list[data-v-d1d2b5c9]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-d1d2b5c9]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-d1d2b5c9]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1d2b5c9]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-d1d2b5c9]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__bottom[data-v-d1d2b5c9],.body--dark .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-d1d2b5c9]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-d1d2b5c9]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1d2b5c9]{top:48px}.body--dark .sticky-header-table tbody[data-v-d1d2b5c9]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__middle[data-v-d1d2b5c9],.body--dark .sticky-header-table .q-table__grid-content[data-v-d1d2b5c9]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-d1d2b5c9]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-d1d2b5c9]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-d1d2b5c9]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.pending[data-v-d1d2b5c9]{color:#f44336}.flex-grow[data-v-d1d2b5c9]{flex-grow:1}.q-btn-group .q-btn[data-v-f45a6b19]{min-width:100px!important}body.mobile .q-btn-group .q-btn[data-v-f45a6b19]{padding:4px 8px;font-size:12px!important;min-height:30px}.chartContainer[data-v-9992330e]{width:100%;min-height:200px;height:min(50vh,300px);padding:.5em 0}.full-width[data-v-3743e114]{width:100%}.plan-name[data-v-3743e114]{font-weight:700}.plan-details[data-v-3743e114]{display:flex;justify-content:center}.plan-details>div[data-v-3743e114]{display:flex;align-items:center}.plan-details>div[data-v-3743e114]:not(:last-child){margin-right:.5em}body.mobile .height[data-v-3743e114]{height:2.5em}.full-width[data-v-1b9699bd],.full-width[data-v-e575064c]{width:100%}.plan-name[data-v-e575064c]{font-weight:700}.plan-details[data-v-e575064c]{display:flex;justify-content:center}.plan-details>div[data-v-e575064c]{display:flex;align-items:center}.plan-details>div[data-v-e575064c]:not(:last-child){margin-right:.5em}body.mobile .height[data-v-e575064c]{height:2.5em}.full-width[data-v-d2768b19]{width:100%}.cp-power[data-v-680da291]{white-space:nowrap}[data-v-34c2bab2]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-34c2bab2]{color:var(--q-brown-text)!important}:root .deselected[data-v-34c2bab2]{color:var(--q-grey)!important}:root .q-header[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-tab[data-v-34c2bab2]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-34c2bab2]{color:var(--q-primary)}:root .q-tab--active[data-v-34c2bab2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-34c2bab2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-card[data-v-34c2bab2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-34c2bab2]{color:var(--q-white)}:root .q-list[data-v-34c2bab2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-34c2bab2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-34c2bab2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-34c2bab2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-34c2bab2]{height:310px}:root .sticky-header-table .q-table__top[data-v-34c2bab2],:root .sticky-header-table .q-table__bottom[data-v-34c2bab2],:root .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-34c2bab2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-34c2bab2]{top:48px}:root .sticky-header-table tbody[data-v-34c2bab2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-34c2bab2],:root .sticky-header-table .q-table__middle[data-v-34c2bab2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-34c2bab2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-34c2bab2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-34c2bab2],:root .q-table td[data-v-34c2bab2]{padding:2px 6px!important}:root .q-table th[data-v-34c2bab2]:first-child,:root .q-table td[data-v-34c2bab2]:first-child{padding-left:12px!important}:root .q-table th[data-v-34c2bab2]:last-child,:root .q-table td[data-v-34c2bab2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-34c2bab2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-34c2bab2]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-34c2bab2]{color:var(--q-white)!important}.body--dark .deselected[data-v-34c2bab2]{color:var(--q-grey)!important}.body--dark .q-header[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-34c2bab2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-34c2bab2]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-34c2bab2]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-34c2bab2]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-34c2bab2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-34c2bab2]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-34c2bab2]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-34c2bab2]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-34c2bab2]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-34c2bab2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-34c2bab2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-34c2bab2]{color:var(--q-white)}.body--dark .q-list[data-v-34c2bab2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-34c2bab2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-34c2bab2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-34c2bab2]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-34c2bab2]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__bottom[data-v-34c2bab2],.body--dark .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-34c2bab2]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-34c2bab2]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-34c2bab2]{top:48px}.body--dark .sticky-header-table tbody[data-v-34c2bab2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__middle[data-v-34c2bab2],.body--dark .sticky-header-table .q-table__grid-content[data-v-34c2bab2]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-34c2bab2]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-34c2bab2]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-34c2bab2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-34c2bab2]{width:22em}.q-card__section[data-v-34c2bab2]{padding:0 16px}.q-card__section[data-v-34c2bab2]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-34c2bab2]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-34c2bab2]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}.card-width[data-v-f0308ae7]{width:22em}.q-card__section[data-v-f0308ae7]{padding:0 16px}.q-card__section[data-v-f0308ae7]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-f0308ae7]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-f0308ae7]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-3165c785]:root{--q-primary: #5c93d1;--q-secondary: #d2d2d7;--q-accent: #546e7a;--q-positive: #66bd7a;--q-negative: #db4f5f;--q-info: #7dc5d4;--q-warning: #d98e44;--q-background-1: #e3e3ec;--q-background-2: #eeeef3;--q-brown-text: #524f57;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #5c93d1;--q-toggle-off: #e0e0e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #ba7128;background-color:var(--q-background-1);color:var(--q-brown-text)}:root .theme-text[data-v-3165c785]{color:var(--q-brown-text)!important}:root .deselected[data-v-3165c785]{color:var(--q-grey)!important}:root .q-header[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-tab[data-v-3165c785]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}:root .q-tab-icon[data-v-3165c785]{color:var(--q-primary)}:root .q-tab--active[data-v-3165c785]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-3165c785]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-3165c785]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-3165c785]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-card[data-v-3165c785]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-3165c785]{color:var(--q-white)}:root .q-list[data-v-3165c785]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-3165c785]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-3165c785]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-3165c785]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-3165c785]{height:310px}:root .sticky-header-table .q-table__top[data-v-3165c785],:root .sticky-header-table .q-table__bottom[data-v-3165c785],:root .sticky-header-table thead tr:first-child th[data-v-3165c785]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-3165c785]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-3165c785]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-3165c785]{top:48px}:root .sticky-header-table tbody[data-v-3165c785]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-3165c785],:root .sticky-header-table .q-table__middle[data-v-3165c785],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-3165c785]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-3165c785]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-3165c785],:root .q-table td[data-v-3165c785]{padding:2px 6px!important}:root .q-table th[data-v-3165c785]:first-child,:root .q-table td[data-v-3165c785]:first-child{padding-left:12px!important}:root .q-table th[data-v-3165c785]:last-child,:root .q-table td[data-v-3165c785]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-3165c785]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-3165c785]{--q-primary: #3874db;--q-secondary: #28293d;--q-accent: #546e7a;--q-positive: #3e8f5e;--q-negative: #c54d57;--q-info: #4b89aa;--q-warning: #d98e44;--q-background-1: #030627;--q-background-2: #010322;--q-white: #ffffff;--q-grey: #9e9e9e;--q-carousel-control: #8b8f9f;--q-toggle-off: #e0e0e0;--q-list: rgb(40, 42, 62);--q-tab-icon: #d7d9e0;--q-flow-home-stroke: #9e9e9e;--q-battery: #d98e44;background-color:#000;color:var(--q-white)}.body--dark .theme-text[data-v-3165c785]{color:var(--q-white)!important}.body--dark .deselected[data-v-3165c785]{color:var(--q-grey)!important}.body--dark .q-header[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-drawer[data-v-3165c785]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-3165c785]{color:var(--q-tab-icon)!important}.body--dark .q-tab-panels[data-v-3165c785]{background-color:var(--q-background-2)}.body--dark .q-tab[data-v-3165c785]{background-color:var(--q-background-2);border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid var(--q-secondary)}.body--dark .q-tab--active[data-v-3165c785]{background-color:#383a56}.body--dark .q-carousel__control .q-btn[data-v-3165c785]:before{box-shadow:none}.body--dark .q-carousel__control .q-btn .q-icon[data-v-3165c785]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-3165c785]:before{color:var(--q-carousel-control);box-shadow:none}.body--dark .q-carousel__slide[data-v-3165c785]{background-color:var(--q-background-2);color:var(--q-white)}.body--dark .q-card[data-v-3165c785]{background-color:var(--q-secondary);color:var(--q-white)}.body--dark .q-field__label[data-v-3165c785]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-3165c785]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-3165c785]{color:var(--q-white)}.body--dark .q-list[data-v-3165c785]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-3165c785]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-3165c785]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-3165c785]:after{background-color:currentColor}.body--dark .sticky-header-table[data-v-3165c785]{height:310px}.body--dark .sticky-header-table .q-table__top[data-v-3165c785],.body--dark .sticky-header-table .q-table__bottom[data-v-3165c785],.body--dark .sticky-header-table thead tr:first-child th[data-v-3165c785]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}.body--dark .sticky-header-table thead tr th[data-v-3165c785]{position:sticky;z-index:1}.body--dark .sticky-header-table thead tr:first-child th[data-v-3165c785]{top:0}.body--dark .sticky-header-table.q-table--loading thead tr:last-child th[data-v-3165c785]{top:48px}.body--dark .sticky-header-table tbody[data-v-3165c785]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-3165c785],.body--dark .sticky-header-table .q-table__middle[data-v-3165c785],.body--dark .sticky-header-table .q-table__grid-content[data-v-3165c785]{background-color:var(--q-secondary)}.body--dark .sticky-header-table tbody tr[data-v-3165c785]:hover{background-color:#ffffff12}.body--dark .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}.body--dark .q-scrollarea[data-v-3165c785]{border:1px solid var(--q-secondary)!important}.body--dark .q-list[data-v-3165c785]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-3165c785]{width:22em}.q-card__section[data-v-3165c785]{padding:0 16px}.q-card__section[data-v-3165c785]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-3165c785]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-3165c785]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}.chart-section[data-v-e73060e2]{height:40vh}.tab-section[data-v-e73060e2] .q-tab-panel{max-width:100vw} diff --git a/packages/modules/web_themes/koala/web/assets/MainLayout-GpfoR3E8.css b/packages/modules/web_themes/koala/web/assets/MainLayout-GpfoR3E8.css new file mode 100644 index 0000000000..7e740dd0c9 --- /dev/null +++ b/packages/modules/web_themes/koala/web/assets/MainLayout-GpfoR3E8.css @@ -0,0 +1 @@ +.centered-container[data-v-8d9d321f]{max-width:1500px;margin-left:auto;margin-right:auto} diff --git a/packages/modules/web_themes/koala/web/assets/MainLayout-BMuAZADJ.js b/packages/modules/web_themes/koala/web/assets/MainLayout-jx0u-kTA.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/MainLayout-BMuAZADJ.js rename to packages/modules/web_themes/koala/web/assets/MainLayout-jx0u-kTA.js index 476e649fe3..e9890d330b 100644 --- a/packages/modules/web_themes/koala/web/assets/MainLayout-BMuAZADJ.js +++ b/packages/modules/web_themes/koala/web/assets/MainLayout-jx0u-kTA.js @@ -1 +1 @@ -import{c as N,a as r,h as _,d as de,g as ee,i as Ce,e as E,l as fe,r as w,w as k,o as he,f as tt,j as Z,k as lt,m as $e,n as at,p as ot,q as nt,s as rt,t as Ae,u as xe,v as Me,x as De,y as it,z as ut,A as se,B as st,C as ct,D as vt,E as le,F as ae,G as h,H as f,Q as ce,I as D,J as oe,R as ve}from"./index-DQS_YrrO.js";import{Q as ie,s as dt,g as ft,a as ht,b as mt,u as Ve,c as We,d as j,e as Se,T as re,f as Pe,h as bt,i as gt,j as yt,k as zt,l as St,m as wt,n as we,o as _t,p as qt,q as ne,r as V,t as _e,v as qe,w as Tt,x as Te,_ as kt}from"./_plugin-vue_export-helper-aCm0_6bg.js";const Ct=N({name:"QToolbarTitle",props:{shrink:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar__title ellipsis"+(e.shrink===!0?" col-shrink":""));return()=>_("div",{class:d.value},de(C.default))}}),$t=N({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>_("div",{class:d.value,role:"toolbar"},de(C.default))}}),Bt=N({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=Ce(fe,E);if(i===E)return console.error("QHeader needs to be child of QLayout"),E;const c=w(parseInt(e.heightHint,10)),t=w(!0),a=r(()=>e.reveal===!0||i.view.value.indexOf("H")!==-1||u.platform.is.ios&&i.isContainer.value===!0),q=r(()=>{if(e.modelValue!==!0)return 0;if(a.value===!0)return t.value===!0?c.value:0;const v=c.value-i.scroll.value.position;return v>0?v:0}),$=r(()=>e.modelValue!==!0||a.value===!0&&t.value!==!0),o=r(()=>e.modelValue===!0&&$.value===!0&&e.reveal===!0),L=r(()=>"q-header q-layout__section--marginal "+(a.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+($.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),T=r(()=>{const v=i.rows.value.top,P={};return v[0]==="l"&&i.left.space===!0&&(P[u.lang.rtl===!0?"right":"left"]=`${i.left.size}px`),v[2]==="r"&&i.right.space===!0&&(P[u.lang.rtl===!0?"left":"right"]=`${i.right.size}px`),P});function S(v,P){i.update("header",v,P)}function z(v,P){v.value!==P&&(v.value=P)}function Q({height:v}){z(c,v),S("size",v)}function O(v){o.value===!0&&z(t,!0),d("focusin",v)}k(()=>e.modelValue,v=>{S("space",v),z(t,!0),i.animate()}),k(q,v=>{S("offset",v)}),k(()=>e.reveal,v=>{v===!1&&z(t,e.modelValue)}),k(t,v=>{i.animate(),d("reveal",v)}),k(i.scroll,v=>{e.reveal===!0&&z(t,v.direction==="up"||v.position<=e.revealOffset||v.position-v.inflectionPoint<100)});const b={};return i.instances.header=b,e.modelValue===!0&&S("size",c.value),S("space",e.modelValue),S("offset",q.value),he(()=>{i.instances.header===b&&(i.instances.header=void 0,S("size",0),S("offset",0),S("space",!1))}),()=>{const v=tt(C.default,[]);return e.elevated===!0&&v.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),v.push(_(ie,{debounce:0,onResize:Q})),_("header",{class:L.value,style:T.value,onFocusin:O},v)}}}),Ot=N({props:["store","barStyle","verticalBarStyle","horizontalBarStyle"],setup(e){return()=>[_("div",{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":"true",onMousedown:e.store.onVerticalMousedown}),_("div",{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":"true",onMousedown:e.store.onHorizontalMousedown}),Z(_("div",{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":"true"}),e.store.thumbVertDir),Z(_("div",{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":"true"}),e.store.thumbHorizDir)]}}),{passive:Le}=lt,xt=["both","horizontal","vertical"],Re=N({name:"QScrollObserver",props:{axis:{type:String,validator:e=>xt.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:dt},emits:["scroll"],setup(e,{emit:C}){const d={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let u=null,i,c;k(()=>e.scrollTarget,()=>{q(),a()});function t(){u?.();const L=Math.max(0,ht(i)),T=mt(i),S={top:L-d.position.top,left:T-d.position.left};if(e.axis==="vertical"&&S.top===0||e.axis==="horizontal"&&S.left===0)return;const z=Math.abs(S.top)>=Math.abs(S.left)?S.top<0?"up":"down":S.left<0?"left":"right";d.position={top:L,left:T},d.directionChanged=d.direction!==z,d.delta=S,d.directionChanged===!0&&(d.direction=z,d.inflectionPoint=d.position),C("scroll",{...d})}function a(){i=ft(c,e.scrollTarget),i.addEventListener("scroll",$,Le),$(!0)}function q(){i!==void 0&&(i.removeEventListener("scroll",$,Le),i=void 0)}function $(L){if(L===!0||e.debounce===0||e.debounce==="0")t();else if(u===null){const[T,S]=e.debounce?[setTimeout(t,e.debounce),clearTimeout]:[requestAnimationFrame(t),cancelAnimationFrame];u=()=>{S(T),u=null}}}const{proxy:o}=ee();return k(()=>o.$q.lang.rtl,t),$e(()=>{c=o.$el.parentNode,a()}),he(()=>{u?.(),q()}),Object.assign(o,{trigger:$,getPosition:()=>d}),at}}),pe=["vertical","horizontal"],ke={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},He={prevent:!0,mouse:!0,mouseAllDir:!0},Qe=e=>e>=250?50:Math.ceil(e/5),Mt=N({name:"QScrollArea",props:{...Ve,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(e,{slots:C,emit:d}){const u=w(!1),i=w(!1),c=w(!1),t={vertical:w(0),horizontal:w(0)},a={vertical:{ref:w(null),position:w(0),size:w(0)},horizontal:{ref:w(null),position:w(0),size:w(0)}},{proxy:q}=ee(),$=We(e,q.$q);let o=null,L;const T=w(null),S=r(()=>"q-scrollarea"+($.value===!0?" q-scrollarea--dark":""));Object.assign(t,{verticalInner:r(()=>t.vertical.value-e.verticalOffset[0]-e.verticalOffset[1]),horizontalInner:r(()=>t.horizontal.value-e.horizontalOffset[0]-e.horizontalOffset[1])}),a.vertical.percentage=r(()=>{const n=a.vertical.size.value-t.vertical.value;if(n<=0)return 0;const s=j(a.vertical.position.value/n,0,1);return Math.round(s*1e4)/1e4}),a.vertical.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.vertical.size.value<=t.vertical.value+1),a.vertical.thumbStart=r(()=>e.verticalOffset[0]+a.vertical.percentage.value*(t.verticalInner.value-a.vertical.thumbSize.value)),a.vertical.thumbSize=r(()=>Math.round(j(t.verticalInner.value*t.verticalInner.value/a.vertical.size.value,Qe(t.verticalInner.value),t.verticalInner.value))),a.vertical.style=r(()=>({...e.thumbStyle,...e.verticalThumbStyle,top:`${a.vertical.thumbStart.value}px`,height:`${a.vertical.thumbSize.value}px`,right:`${e.horizontalOffset[1]}px`})),a.vertical.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.vertical.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),a.horizontal.percentage=r(()=>{const n=a.horizontal.size.value-t.horizontal.value;if(n<=0)return 0;const s=j(Math.abs(a.horizontal.position.value)/n,0,1);return Math.round(s*1e4)/1e4}),a.horizontal.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.horizontal.size.value<=t.horizontal.value+1),a.horizontal.thumbStart=r(()=>e.horizontalOffset[0]+a.horizontal.percentage.value*(t.horizontalInner.value-a.horizontal.thumbSize.value)),a.horizontal.thumbSize=r(()=>Math.round(j(t.horizontalInner.value*t.horizontalInner.value/a.horizontal.size.value,Qe(t.horizontalInner.value),t.horizontalInner.value))),a.horizontal.style=r(()=>({...e.thumbStyle,...e.horizontalThumbStyle,[q.$q.lang.rtl===!0?"right":"left"]:`${a.horizontal.thumbStart.value}px`,width:`${a.horizontal.thumbSize.value}px`,bottom:`${e.verticalOffset[1]}px`})),a.horizontal.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.horizontal.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__bar--invisible":""));const z=r(()=>a.vertical.thumbHidden.value===!0&&a.horizontal.thumbHidden.value===!0?e.contentStyle:e.contentActiveStyle);function Q(){const n={};return pe.forEach(s=>{const y=a[s];Object.assign(n,{[s+"Position"]:y.position.value,[s+"Percentage"]:y.percentage.value,[s+"Size"]:y.size.value,[s+"ContainerSize"]:t[s].value,[s+"ContainerInnerSize"]:t[s+"Inner"].value})}),n}const O=ot(()=>{const n=Q();n.ref=q,d("scroll",n)},0);function b(n,s,y){if(pe.includes(n)===!1){console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");return}(n==="vertical"?Pe:Se)(T.value,s,y)}function v({height:n,width:s}){let y=!1;t.vertical.value!==n&&(t.vertical.value=n,y=!0),t.horizontal.value!==s&&(t.horizontal.value=s,y=!0),y===!0&&M()}function P({position:n}){let s=!1;a.vertical.position.value!==n.top&&(a.vertical.position.value=n.top,s=!0),a.horizontal.position.value!==n.left&&(a.horizontal.position.value=n.left,s=!0),s===!0&&M()}function g({height:n,width:s}){a.horizontal.size.value!==s&&(a.horizontal.size.value=s,M()),a.vertical.size.value!==n&&(a.vertical.size.value=n,M())}function B(n,s){const y=a[s];if(n.isFirst===!0){if(y.thumbHidden.value===!0)return;L=y.position.value,i.value=!0}else if(i.value!==!0)return;n.isFinal===!0&&(i.value=!1);const W=ke[s],F=(y.size.value-t[s].value)/(t[s+"Inner"].value-y.thumbSize.value),R=n.distance[W.dist],te=L+(n.direction===W.dir?1:-1)*R*F;U(te,s)}function x(n,s){const y=a[s];if(y.thumbHidden.value!==!0){const W=s==="vertical"?e.verticalOffset[0]:e.horizontalOffset[0],F=n[ke[s].offset]-W,R=y.thumbStart.value-W;if(FR+y.thumbSize.value){const te=F-y.thumbSize.value/2,me=j(te/(t[s+"Inner"].value-y.thumbSize.value),0,1);U(me*Math.max(0,y.size.value-t[s].value),s)}y.ref.value!==null&&y.ref.value.dispatchEvent(new MouseEvent(n.type,n))}}function M(){u.value=!0,o!==null&&clearTimeout(o),o=setTimeout(()=>{o=null,u.value=!1},e.delay),e.onScroll!==void 0&&O()}function U(n,s){T.value[ke[s].scroll]=n}let p=null;function A(){p!==null&&clearTimeout(p),p=setTimeout(()=>{p=null,c.value=!0},q.$q.platform.is.ios?50:0)}function G(){p!==null&&(clearTimeout(p),p=null),c.value=!1}let Y=null;k(()=>q.$q.lang.rtl,n=>{T.value!==null&&Se(T.value,Math.abs(a.horizontal.position.value)*(n===!0?-1:1))}),nt(()=>{Y={top:a.vertical.position.value,left:a.horizontal.position.value}}),rt(()=>{if(Y===null)return;const n=T.value;n!==null&&(Se(n,Y.left),Pe(n,Y.top))}),he(O.cancel),Object.assign(q,{getScrollTarget:()=>T.value,getScroll:Q,getScrollPosition:()=>({top:a.vertical.position.value,left:a.horizontal.position.value}),getScrollPercentage:()=>({top:a.vertical.percentage.value,left:a.horizontal.percentage.value}),setScrollPosition:b,setScrollPercentage(n,s,y){b(n,s*(a[n].size.value-t[n].value)*(n==="horizontal"&&q.$q.lang.rtl===!0?-1:1),y)}});const K={scroll:a,thumbVertDir:[[re,n=>{B(n,"vertical")},void 0,{vertical:!0,...He}]],thumbHorizDir:[[re,n=>{B(n,"horizontal")},void 0,{horizontal:!0,...He}]],onVerticalMousedown(n){x(n,"vertical")},onHorizontalMousedown(n){x(n,"horizontal")}};return()=>_("div",{class:S.value,onMouseenter:A,onMouseleave:G},[_("div",{ref:T,class:"q-scrollarea__container scroll relative-position fit hide-scrollbar",tabindex:e.tabindex!==void 0?e.tabindex:void 0},[_("div",{class:"q-scrollarea__content absolute",style:z.value},Ae(C.default,[_(ie,{debounce:0,onResize:g})])),_(Re,{axis:"both",onScroll:P})]),_(ie,{debounce:0,onResize:v}),_(Ot,{store:K,barStyle:e.barStyle,verticalBarStyle:e.verticalBarStyle,horizontalBarStyle:e.horizontalBarStyle})])}}),Ie=150,Pt=N({name:"QDrawer",inheritAttrs:!1,props:{...gt,...Ve,side:{type:String,default:"left",validator:e=>["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...bt,"onLayout","miniState"],setup(e,{slots:C,emit:d,attrs:u}){const i=ee(),{proxy:{$q:c}}=i,t=We(e,c),{preventBodyScroll:a}=wt(),{registerTimeout:q,removeTimeout:$}=yt(),o=Ce(fe,E);if(o===E)return console.error("QDrawer needs to be child of QLayout"),E;let L,T=null,S;const z=w(e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint),Q=r(()=>e.mini===!0&&z.value!==!0),O=r(()=>Q.value===!0?e.miniWidth:e.width),b=w(e.showIfAbove===!0&&z.value===!1?!0:e.modelValue===!0),v=r(()=>e.persistent!==!0&&(z.value===!0||te.value===!0));function P(l,m){if(M(),l!==!1&&o.animate(),I(0),z.value===!0){const H=o.instances[y.value];H?.belowBreakpoint===!0&&H.hide(!1),X(1),o.isContainer.value!==!0&&a(!0)}else X(0),l!==!1&&ge(!1);q(()=>{l!==!1&&ge(!0),m!==!0&&d("show",l)},Ie)}function g(l,m){U(),l!==!1&&o.animate(),X(0),I(G.value*O.value),ye(),m!==!0?q(()=>{d("hide",l)},Ie):$()}const{show:B,hide:x}=zt({showing:b,hideOnRouteChange:v,handleShow:P,handleHide:g}),{addToHistory:M,removeFromHistory:U}=St(b,x,v),p={belowBreakpoint:z,hide:x},A=r(()=>e.side==="right"),G=r(()=>(c.lang.rtl===!0?-1:1)*(A.value===!0?1:-1)),Y=w(0),K=w(!1),n=w(!1),s=w(O.value*G.value),y=r(()=>A.value===!0?"left":"right"),W=r(()=>b.value===!0&&z.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:O.value:0),F=r(()=>e.overlay===!0||e.miniToOverlay===!0||o.view.value.indexOf(A.value?"R":"L")!==-1||c.platform.is.ios===!0&&o.isContainer.value===!0),R=r(()=>e.overlay===!1&&b.value===!0&&z.value===!1),te=r(()=>e.overlay===!0&&b.value===!0&&z.value===!1),me=r(()=>"fullscreen q-drawer__backdrop"+(b.value===!1&&K.value===!1?" hidden":"")),Fe=r(()=>({backgroundColor:`rgba(0,0,0,${Y.value*.4})`})),Be=r(()=>A.value===!0?o.rows.value.top[2]==="r":o.rows.value.top[0]==="l"),je=r(()=>A.value===!0?o.rows.value.bottom[2]==="r":o.rows.value.bottom[0]==="l"),Ee=r(()=>{const l={};return o.header.space===!0&&Be.value===!1&&(F.value===!0?l.top=`${o.header.offset}px`:o.header.space===!0&&(l.top=`${o.header.size}px`)),o.footer.space===!0&&je.value===!1&&(F.value===!0?l.bottom=`${o.footer.offset}px`:o.footer.space===!0&&(l.bottom=`${o.footer.size}px`)),l}),Ne=r(()=>{const l={width:`${O.value}px`,transform:`translateX(${s.value}px)`};return z.value===!0?l:Object.assign(l,Ee.value)}),Ue=r(()=>"q-drawer__content fit "+(o.isContainer.value!==!0?"scroll":"overflow-auto")),Ge=r(()=>`q-drawer q-drawer--${e.side}`+(n.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(t.value===!0?" q-drawer--dark q-dark":"")+(K.value===!0?" no-transition":b.value===!0?"":" q-layout--prevent-focus")+(z.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${Q.value===!0?"mini":"standard"}`+(F.value===!0||R.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(Be.value===!0?" q-drawer--top-padding":""))),Ke=r(()=>{const l=c.lang.rtl===!0?e.side:y.value;return[[re,Ze,void 0,{[l]:!0,mouse:!0}]]}),Xe=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0}]]}),Je=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0,mouseAllDir:!0}]]});function be(){et(z,e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint)}k(z,l=>{l===!0?(L=b.value,b.value===!0&&x(!1)):e.overlay===!1&&e.behavior!=="mobile"&&L!==!1&&(b.value===!0?(I(0),X(0),ye()):B(!1))}),k(()=>e.side,(l,m)=>{o.instances[m]===p&&(o.instances[m]=void 0,o[m].space=!1,o[m].offset=0),o.instances[l]=p,o[l].size=O.value,o[l].space=R.value,o[l].offset=W.value}),k(o.totalWidth,()=>{(o.isContainer.value===!0||document.qScrollPrevented!==!0)&&be()}),k(()=>e.behavior+e.breakpoint,be),k(o.isContainer,l=>{b.value===!0&&a(l!==!0),l===!0&&be()}),k(o.scrollbarWidth,()=>{I(b.value===!0?0:void 0)}),k(W,l=>{J("offset",l)}),k(R,l=>{d("onLayout",l),J("space",l)}),k(A,()=>{I()}),k(O,l=>{I(),ze(e.miniToOverlay,l)}),k(()=>e.miniToOverlay,l=>{ze(l,O.value)}),k(()=>c.lang.rtl,()=>{I()}),k(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(Ye(),o.animate())}),k(Q,l=>{d("miniState",l)});function I(l){l===void 0?xe(()=>{l=b.value===!0?0:O.value,I(G.value*l)}):(o.isContainer.value===!0&&A.value===!0&&(z.value===!0||Math.abs(l)===O.value)&&(l+=G.value*o.scrollbarWidth.value),s.value=l)}function X(l){Y.value=l}function ge(l){const m=l===!0?"remove":o.isContainer.value!==!0?"add":"";m!==""&&document.body.classList[m]("q-body--drawer-toggle")}function Ye(){T!==null&&clearTimeout(T),i.proxy&&i.proxy.$el&&i.proxy.$el.classList.add("q-drawer--mini-animate"),n.value=!0,T=setTimeout(()=>{T=null,n.value=!1,i?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function Ze(l){if(b.value!==!1)return;const m=O.value,H=j(l.distance.x,0,m);if(l.isFinal===!0){H>=Math.min(75,m)===!0?B():(o.animate(),X(0),I(G.value*m)),K.value=!1;return}I((c.lang.rtl===!0?A.value!==!0:A.value)?Math.max(m-H,0):Math.min(0,H-m)),X(j(H/m,0,1)),l.isFirst===!0&&(K.value=!0)}function Oe(l){if(b.value!==!0)return;const m=O.value,H=l.direction===e.side,ue=(c.lang.rtl===!0?H!==!0:H)?j(l.distance.x,0,m):0;if(l.isFinal===!0){Math.abs(ue){d("onLayout",R.value),d("miniState",Q.value),L=e.showIfAbove===!0;const l=()=>{(b.value===!0?P:g)(!1,!0)};if(o.totalWidth.value!==0){xe(l);return}S=k(o.totalWidth,()=>{S(),S=void 0,b.value===!1&&e.showIfAbove===!0&&z.value===!1?B(!1):l()})}),he(()=>{S?.(),T!==null&&(clearTimeout(T),T=null),b.value===!0&&ye(),o.instances[e.side]===p&&(o.instances[e.side]=void 0,J("size",0),J("offset",0),J("space",!1))}),()=>{const l=[];z.value===!0&&(e.noSwipeOpen===!1&&l.push(Z(_("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),Ke.value)),l.push(Me("div",{ref:"backdrop",class:me.value,style:Fe.value,"aria-hidden":"true",onClick:x},void 0,"backdrop",e.noSwipeBackdrop!==!0&&b.value===!0,()=>Je.value)));const m=Q.value===!0&&C.mini!==void 0,H=[_("div",{...u,key:""+m,class:[Ue.value,u.class]},m===!0?C.mini():de(C.default))];return e.elevated===!0&&b.value===!0&&H.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),l.push(Me("aside",{ref:"content",class:Ge.value,style:Ne.value},H,"contentclose",e.noSwipeClose!==!0&&z.value===!0,()=>Xe.value)),_("div",{class:"q-drawer-container"},l)}}}),Lt=N({name:"QPageContainer",setup(e,{slots:C}){const{proxy:{$q:d}}=ee(),u=Ce(fe,E);if(u===E)return console.error("QPageContainer needs to be child of QLayout"),E;De(it,!0);const i=r(()=>{const c={};return u.header.space===!0&&(c.paddingTop=`${u.header.size}px`),u.right.space===!0&&(c[`padding${d.lang.rtl===!0?"Left":"Right"}`]=`${u.right.size}px`),u.footer.space===!0&&(c.paddingBottom=`${u.footer.size}px`),u.left.space===!0&&(c[`padding${d.lang.rtl===!0?"Right":"Left"}`]=`${u.left.size}px`),c});return()=>_("div",{class:"q-page-container",style:i.value},de(C.default))}}),pt=N({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=w(null),c=w(u.screen.height),t=w(e.container===!0?0:u.screen.width),a=w({position:0,direction:"down",inflectionPoint:0}),q=w(0),$=w(ut.value===!0?0:we()),o=r(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),L=r(()=>e.container===!1?{minHeight:u.screen.height+"px"}:null),T=r(()=>$.value!==0?{[u.lang.rtl===!0?"left":"right"]:`${$.value}px`}:null),S=r(()=>$.value!==0?{[u.lang.rtl===!0?"right":"left"]:0,[u.lang.rtl===!0?"left":"right"]:`-${$.value}px`,width:`calc(100% + ${$.value}px)`}:null);function z(g){if(e.container===!0||document.qScrollPrevented!==!0){const B={position:g.position.top,direction:g.direction,directionChanged:g.directionChanged,inflectionPoint:g.inflectionPoint.top,delta:g.delta.top};a.value=B,e.onScroll!==void 0&&d("scroll",B)}}function Q(g){const{height:B,width:x}=g;let M=!1;c.value!==B&&(M=!0,c.value=B,e.onScrollHeight!==void 0&&d("scrollHeight",B),b()),t.value!==x&&(M=!0,t.value=x),M===!0&&e.onResize!==void 0&&d("resize",g)}function O({height:g}){q.value!==g&&(q.value=g,b())}function b(){if(e.container===!0){const g=c.value>q.value?we():0;$.value!==g&&($.value=g)}}let v=null;const P={instances:{},view:r(()=>e.view),isContainer:r(()=>e.container),rootRef:i,height:c,containerHeight:q,scrollbarWidth:$,totalWidth:r(()=>t.value+$.value),rows:r(()=>{const g=e.view.toLowerCase().split(" ");return{top:g[0].split(""),middle:g[1].split(""),bottom:g[2].split("")}}),header:se({size:0,offset:0,space:!1}),right:se({size:300,offset:0,space:!1}),footer:se({size:0,offset:0,space:!1}),left:se({size:300,offset:0,space:!1}),scroll:a,animate(){v!==null?clearTimeout(v):document.body.classList.add("q-body--layout-animate"),v=setTimeout(()=>{v=null,document.body.classList.remove("q-body--layout-animate")},155)},update(g,B,x){P[g][B]=x}};if(De(fe,P),we()>0){let g=function(){M=null,U.classList.remove("hide-scrollbar")},B=function(){if(M===null){if(U.scrollHeight>u.screen.height)return;U.classList.add("hide-scrollbar")}else clearTimeout(M);M=setTimeout(g,300)},x=function(p){M!==null&&p==="remove"&&(clearTimeout(M),g()),window[`${p}EventListener`]("resize",B)},M=null;const U=document.body;k(()=>e.container!==!0?"add":"remove",x),e.container!==!0&&x("add"),st(()=>{x("remove")})}return()=>{const g=Ae(C.default,[_(Re,{onScroll:z}),_(ie,{onResize:Q})]),B=_("div",{class:o.value,style:L.value,ref:e.container===!0?void 0:i,tabindex:-1},g);return e.container===!0?_("div",{class:"q-layout-container overflow-hidden",ref:i},[_(ie,{onResize:O}),_("div",{class:"absolute-full",style:T.value},[_("div",{class:"scroll",style:S.value},[B])])]):B}}}),Ht=ct({name:"MainLayout",__name:"MainLayout",setup(e){const C=_t(),d=w(!1),u=w("auto"),i=c=>{u.value=c,c==="auto"?(localStorage.removeItem("theme"),C.dark.set("auto")):(C.dark.set(c==="dark"),localStorage.setItem("theme",c))};return $e(()=>{const c=localStorage.getItem("theme");c?(u.value=c,C.dark.set(c==="dark")):(u.value="auto",C.dark.set("auto"))}),(c,t)=>{const a=vt("router-view");return ae(),le(pt,{view:"hHh lpr lFf"},{default:h(()=>[f(Bt,{elevated:""},{default:h(()=>[f($t,null,{default:h(()=>[f(ce,{dense:"",flat:"",round:"",icon:"menu",onClick:t[0]||(t[0]=q=>d.value=!d.value)}),f(Ct,null,{default:h(()=>t[5]||(t[5]=[D("openWB",-1)])),_:1,__:[5]})]),_:1})]),_:1}),f(Pt,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=q=>d.value=q),side:"left",overlay:"",elevated:"",breakpoint:500},{default:h(()=>[f(Mt,{class:"fit","horizontal-thumb-style":{opacity:"0"}},{default:h(()=>[f(qt,{padding:""},{default:h(()=>[Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Status"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"dashboard"})]),_:1}),f(V,null,{default:h(()=>t[6]||(t[6]=[D(" Status ",-1)])),_:1,__:[6]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[7]||(t[7]=[D("Auswertungen",-1)])),_:1,__:[7]}),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/ChargeLog"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"table_chart"})]),_:1}),f(V,null,{default:h(()=>t[8]||(t[8]=[D(" Ladeprotokoll ",-1)])),_:1,__:[8]})]),_:1})),[[ve]]),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/Chart"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"area_chart"})]),_:1}),f(V,null,{default:h(()=>t[9]||(t[9]=[D(" Diagramme ",-1)])),_:1,__:[9]})]),_:1})),[[ve]]),f(_e),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"settings"})]),_:1}),f(V,null,{default:h(()=>t[10]||(t[10]=[D(" Einstellungen ",-1)])),_:1,__:[10]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[11]||(t[11]=[D("Anzeigeeinstellungen",-1)])),_:1,__:[11]}),f(ne,null,{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"light_mode"})]),_:1}),f(V,null,{default:h(()=>[f(qe,null,{default:h(()=>t[12]||(t[12]=[D("Darstellungsmodus",-1)])),_:1,__:[12]})]),_:1}),f(V,{side:""},{default:h(()=>[f(Tt,{flat:""},{default:h(()=>[f(ce,{flat:"",round:"",color:u.value==="light"?"primary":"",icon:"light_mode",onClick:t[1]||(t[1]=q=>i("light")),size:"sm",disable:u.value==="light","aria-label":"Light Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[13]||(t[13]=[D("Hell",-1)])),_:1,__:[13]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="dark"?"primary":"",icon:"dark_mode",onClick:t[2]||(t[2]=q=>i("dark")),size:"sm",disable:u.value==="dark","aria-label":"Dark Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[14]||(t[14]=[D("Dunkel",-1)])),_:1,__:[14]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="auto"?"primary":"",icon:"devices",onClick:t[3]||(t[3]=q=>i("auto")),size:"sm",disable:u.value==="auto","aria-label":"System Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[15]||(t[15]=[D("Systemeinstellung",-1)])),_:1,__:[15]})]),_:1},8,["color","disable"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Lt,{class:"column flex centered-container"},{default:h(()=>[f(a)]),_:1})]),_:1})}}}),Dt=kt(Ht,[["__scopeId","data-v-1a29f27d"]]);export{Dt as default}; +import{c as N,a as r,h as _,d as de,g as ee,i as Ce,e as E,l as fe,r as w,w as k,o as he,f as tt,j as Z,k as lt,m as $e,n as at,p as ot,q as nt,s as rt,t as Ae,u as xe,v as Me,x as De,y as it,z as ut,A as se,B as st,C as ct,D as vt,E as le,F as ae,G as h,H as f,Q as ce,I as D,J as oe,R as ve}from"./index-BffAdZ7B.js";import{Q as ie,s as dt,g as ft,a as ht,b as mt,u as Ve,c as We,d as j,e as Se,T as re,f as Pe,h as bt,i as gt,j as yt,k as zt,l as St,m as wt,n as we,o as _t,p as qt,q as ne,r as V,t as _e,v as qe,w as Tt,x as Te,_ as kt}from"./_plugin-vue_export-helper-UW32PSUV.js";const Ct=N({name:"QToolbarTitle",props:{shrink:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar__title ellipsis"+(e.shrink===!0?" col-shrink":""));return()=>_("div",{class:d.value},de(C.default))}}),$t=N({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>_("div",{class:d.value,role:"toolbar"},de(C.default))}}),Bt=N({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=Ce(fe,E);if(i===E)return console.error("QHeader needs to be child of QLayout"),E;const c=w(parseInt(e.heightHint,10)),t=w(!0),a=r(()=>e.reveal===!0||i.view.value.indexOf("H")!==-1||u.platform.is.ios&&i.isContainer.value===!0),q=r(()=>{if(e.modelValue!==!0)return 0;if(a.value===!0)return t.value===!0?c.value:0;const v=c.value-i.scroll.value.position;return v>0?v:0}),$=r(()=>e.modelValue!==!0||a.value===!0&&t.value!==!0),o=r(()=>e.modelValue===!0&&$.value===!0&&e.reveal===!0),L=r(()=>"q-header q-layout__section--marginal "+(a.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+($.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),T=r(()=>{const v=i.rows.value.top,P={};return v[0]==="l"&&i.left.space===!0&&(P[u.lang.rtl===!0?"right":"left"]=`${i.left.size}px`),v[2]==="r"&&i.right.space===!0&&(P[u.lang.rtl===!0?"left":"right"]=`${i.right.size}px`),P});function S(v,P){i.update("header",v,P)}function z(v,P){v.value!==P&&(v.value=P)}function Q({height:v}){z(c,v),S("size",v)}function O(v){o.value===!0&&z(t,!0),d("focusin",v)}k(()=>e.modelValue,v=>{S("space",v),z(t,!0),i.animate()}),k(q,v=>{S("offset",v)}),k(()=>e.reveal,v=>{v===!1&&z(t,e.modelValue)}),k(t,v=>{i.animate(),d("reveal",v)}),k(i.scroll,v=>{e.reveal===!0&&z(t,v.direction==="up"||v.position<=e.revealOffset||v.position-v.inflectionPoint<100)});const b={};return i.instances.header=b,e.modelValue===!0&&S("size",c.value),S("space",e.modelValue),S("offset",q.value),he(()=>{i.instances.header===b&&(i.instances.header=void 0,S("size",0),S("offset",0),S("space",!1))}),()=>{const v=tt(C.default,[]);return e.elevated===!0&&v.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),v.push(_(ie,{debounce:0,onResize:Q})),_("header",{class:L.value,style:T.value,onFocusin:O},v)}}}),Ot=N({props:["store","barStyle","verticalBarStyle","horizontalBarStyle"],setup(e){return()=>[_("div",{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":"true",onMousedown:e.store.onVerticalMousedown}),_("div",{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":"true",onMousedown:e.store.onHorizontalMousedown}),Z(_("div",{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":"true"}),e.store.thumbVertDir),Z(_("div",{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":"true"}),e.store.thumbHorizDir)]}}),{passive:Le}=lt,xt=["both","horizontal","vertical"],Re=N({name:"QScrollObserver",props:{axis:{type:String,validator:e=>xt.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:dt},emits:["scroll"],setup(e,{emit:C}){const d={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let u=null,i,c;k(()=>e.scrollTarget,()=>{q(),a()});function t(){u?.();const L=Math.max(0,ht(i)),T=mt(i),S={top:L-d.position.top,left:T-d.position.left};if(e.axis==="vertical"&&S.top===0||e.axis==="horizontal"&&S.left===0)return;const z=Math.abs(S.top)>=Math.abs(S.left)?S.top<0?"up":"down":S.left<0?"left":"right";d.position={top:L,left:T},d.directionChanged=d.direction!==z,d.delta=S,d.directionChanged===!0&&(d.direction=z,d.inflectionPoint=d.position),C("scroll",{...d})}function a(){i=ft(c,e.scrollTarget),i.addEventListener("scroll",$,Le),$(!0)}function q(){i!==void 0&&(i.removeEventListener("scroll",$,Le),i=void 0)}function $(L){if(L===!0||e.debounce===0||e.debounce==="0")t();else if(u===null){const[T,S]=e.debounce?[setTimeout(t,e.debounce),clearTimeout]:[requestAnimationFrame(t),cancelAnimationFrame];u=()=>{S(T),u=null}}}const{proxy:o}=ee();return k(()=>o.$q.lang.rtl,t),$e(()=>{c=o.$el.parentNode,a()}),he(()=>{u?.(),q()}),Object.assign(o,{trigger:$,getPosition:()=>d}),at}}),pe=["vertical","horizontal"],ke={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},He={prevent:!0,mouse:!0,mouseAllDir:!0},Qe=e=>e>=250?50:Math.ceil(e/5),Mt=N({name:"QScrollArea",props:{...Ve,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(e,{slots:C,emit:d}){const u=w(!1),i=w(!1),c=w(!1),t={vertical:w(0),horizontal:w(0)},a={vertical:{ref:w(null),position:w(0),size:w(0)},horizontal:{ref:w(null),position:w(0),size:w(0)}},{proxy:q}=ee(),$=We(e,q.$q);let o=null,L;const T=w(null),S=r(()=>"q-scrollarea"+($.value===!0?" q-scrollarea--dark":""));Object.assign(t,{verticalInner:r(()=>t.vertical.value-e.verticalOffset[0]-e.verticalOffset[1]),horizontalInner:r(()=>t.horizontal.value-e.horizontalOffset[0]-e.horizontalOffset[1])}),a.vertical.percentage=r(()=>{const n=a.vertical.size.value-t.vertical.value;if(n<=0)return 0;const s=j(a.vertical.position.value/n,0,1);return Math.round(s*1e4)/1e4}),a.vertical.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.vertical.size.value<=t.vertical.value+1),a.vertical.thumbStart=r(()=>e.verticalOffset[0]+a.vertical.percentage.value*(t.verticalInner.value-a.vertical.thumbSize.value)),a.vertical.thumbSize=r(()=>Math.round(j(t.verticalInner.value*t.verticalInner.value/a.vertical.size.value,Qe(t.verticalInner.value),t.verticalInner.value))),a.vertical.style=r(()=>({...e.thumbStyle,...e.verticalThumbStyle,top:`${a.vertical.thumbStart.value}px`,height:`${a.vertical.thumbSize.value}px`,right:`${e.horizontalOffset[1]}px`})),a.vertical.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.vertical.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),a.horizontal.percentage=r(()=>{const n=a.horizontal.size.value-t.horizontal.value;if(n<=0)return 0;const s=j(Math.abs(a.horizontal.position.value)/n,0,1);return Math.round(s*1e4)/1e4}),a.horizontal.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.horizontal.size.value<=t.horizontal.value+1),a.horizontal.thumbStart=r(()=>e.horizontalOffset[0]+a.horizontal.percentage.value*(t.horizontalInner.value-a.horizontal.thumbSize.value)),a.horizontal.thumbSize=r(()=>Math.round(j(t.horizontalInner.value*t.horizontalInner.value/a.horizontal.size.value,Qe(t.horizontalInner.value),t.horizontalInner.value))),a.horizontal.style=r(()=>({...e.thumbStyle,...e.horizontalThumbStyle,[q.$q.lang.rtl===!0?"right":"left"]:`${a.horizontal.thumbStart.value}px`,width:`${a.horizontal.thumbSize.value}px`,bottom:`${e.verticalOffset[1]}px`})),a.horizontal.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.horizontal.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__bar--invisible":""));const z=r(()=>a.vertical.thumbHidden.value===!0&&a.horizontal.thumbHidden.value===!0?e.contentStyle:e.contentActiveStyle);function Q(){const n={};return pe.forEach(s=>{const y=a[s];Object.assign(n,{[s+"Position"]:y.position.value,[s+"Percentage"]:y.percentage.value,[s+"Size"]:y.size.value,[s+"ContainerSize"]:t[s].value,[s+"ContainerInnerSize"]:t[s+"Inner"].value})}),n}const O=ot(()=>{const n=Q();n.ref=q,d("scroll",n)},0);function b(n,s,y){if(pe.includes(n)===!1){console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");return}(n==="vertical"?Pe:Se)(T.value,s,y)}function v({height:n,width:s}){let y=!1;t.vertical.value!==n&&(t.vertical.value=n,y=!0),t.horizontal.value!==s&&(t.horizontal.value=s,y=!0),y===!0&&M()}function P({position:n}){let s=!1;a.vertical.position.value!==n.top&&(a.vertical.position.value=n.top,s=!0),a.horizontal.position.value!==n.left&&(a.horizontal.position.value=n.left,s=!0),s===!0&&M()}function g({height:n,width:s}){a.horizontal.size.value!==s&&(a.horizontal.size.value=s,M()),a.vertical.size.value!==n&&(a.vertical.size.value=n,M())}function B(n,s){const y=a[s];if(n.isFirst===!0){if(y.thumbHidden.value===!0)return;L=y.position.value,i.value=!0}else if(i.value!==!0)return;n.isFinal===!0&&(i.value=!1);const W=ke[s],F=(y.size.value-t[s].value)/(t[s+"Inner"].value-y.thumbSize.value),R=n.distance[W.dist],te=L+(n.direction===W.dir?1:-1)*R*F;U(te,s)}function x(n,s){const y=a[s];if(y.thumbHidden.value!==!0){const W=s==="vertical"?e.verticalOffset[0]:e.horizontalOffset[0],F=n[ke[s].offset]-W,R=y.thumbStart.value-W;if(FR+y.thumbSize.value){const te=F-y.thumbSize.value/2,me=j(te/(t[s+"Inner"].value-y.thumbSize.value),0,1);U(me*Math.max(0,y.size.value-t[s].value),s)}y.ref.value!==null&&y.ref.value.dispatchEvent(new MouseEvent(n.type,n))}}function M(){u.value=!0,o!==null&&clearTimeout(o),o=setTimeout(()=>{o=null,u.value=!1},e.delay),e.onScroll!==void 0&&O()}function U(n,s){T.value[ke[s].scroll]=n}let p=null;function A(){p!==null&&clearTimeout(p),p=setTimeout(()=>{p=null,c.value=!0},q.$q.platform.is.ios?50:0)}function G(){p!==null&&(clearTimeout(p),p=null),c.value=!1}let Y=null;k(()=>q.$q.lang.rtl,n=>{T.value!==null&&Se(T.value,Math.abs(a.horizontal.position.value)*(n===!0?-1:1))}),nt(()=>{Y={top:a.vertical.position.value,left:a.horizontal.position.value}}),rt(()=>{if(Y===null)return;const n=T.value;n!==null&&(Se(n,Y.left),Pe(n,Y.top))}),he(O.cancel),Object.assign(q,{getScrollTarget:()=>T.value,getScroll:Q,getScrollPosition:()=>({top:a.vertical.position.value,left:a.horizontal.position.value}),getScrollPercentage:()=>({top:a.vertical.percentage.value,left:a.horizontal.percentage.value}),setScrollPosition:b,setScrollPercentage(n,s,y){b(n,s*(a[n].size.value-t[n].value)*(n==="horizontal"&&q.$q.lang.rtl===!0?-1:1),y)}});const K={scroll:a,thumbVertDir:[[re,n=>{B(n,"vertical")},void 0,{vertical:!0,...He}]],thumbHorizDir:[[re,n=>{B(n,"horizontal")},void 0,{horizontal:!0,...He}]],onVerticalMousedown(n){x(n,"vertical")},onHorizontalMousedown(n){x(n,"horizontal")}};return()=>_("div",{class:S.value,onMouseenter:A,onMouseleave:G},[_("div",{ref:T,class:"q-scrollarea__container scroll relative-position fit hide-scrollbar",tabindex:e.tabindex!==void 0?e.tabindex:void 0},[_("div",{class:"q-scrollarea__content absolute",style:z.value},Ae(C.default,[_(ie,{debounce:0,onResize:g})])),_(Re,{axis:"both",onScroll:P})]),_(ie,{debounce:0,onResize:v}),_(Ot,{store:K,barStyle:e.barStyle,verticalBarStyle:e.verticalBarStyle,horizontalBarStyle:e.horizontalBarStyle})])}}),Ie=150,Pt=N({name:"QDrawer",inheritAttrs:!1,props:{...gt,...Ve,side:{type:String,default:"left",validator:e=>["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...bt,"onLayout","miniState"],setup(e,{slots:C,emit:d,attrs:u}){const i=ee(),{proxy:{$q:c}}=i,t=We(e,c),{preventBodyScroll:a}=wt(),{registerTimeout:q,removeTimeout:$}=yt(),o=Ce(fe,E);if(o===E)return console.error("QDrawer needs to be child of QLayout"),E;let L,T=null,S;const z=w(e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint),Q=r(()=>e.mini===!0&&z.value!==!0),O=r(()=>Q.value===!0?e.miniWidth:e.width),b=w(e.showIfAbove===!0&&z.value===!1?!0:e.modelValue===!0),v=r(()=>e.persistent!==!0&&(z.value===!0||te.value===!0));function P(l,m){if(M(),l!==!1&&o.animate(),I(0),z.value===!0){const H=o.instances[y.value];H?.belowBreakpoint===!0&&H.hide(!1),X(1),o.isContainer.value!==!0&&a(!0)}else X(0),l!==!1&&ge(!1);q(()=>{l!==!1&&ge(!0),m!==!0&&d("show",l)},Ie)}function g(l,m){U(),l!==!1&&o.animate(),X(0),I(G.value*O.value),ye(),m!==!0?q(()=>{d("hide",l)},Ie):$()}const{show:B,hide:x}=zt({showing:b,hideOnRouteChange:v,handleShow:P,handleHide:g}),{addToHistory:M,removeFromHistory:U}=St(b,x,v),p={belowBreakpoint:z,hide:x},A=r(()=>e.side==="right"),G=r(()=>(c.lang.rtl===!0?-1:1)*(A.value===!0?1:-1)),Y=w(0),K=w(!1),n=w(!1),s=w(O.value*G.value),y=r(()=>A.value===!0?"left":"right"),W=r(()=>b.value===!0&&z.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:O.value:0),F=r(()=>e.overlay===!0||e.miniToOverlay===!0||o.view.value.indexOf(A.value?"R":"L")!==-1||c.platform.is.ios===!0&&o.isContainer.value===!0),R=r(()=>e.overlay===!1&&b.value===!0&&z.value===!1),te=r(()=>e.overlay===!0&&b.value===!0&&z.value===!1),me=r(()=>"fullscreen q-drawer__backdrop"+(b.value===!1&&K.value===!1?" hidden":"")),Fe=r(()=>({backgroundColor:`rgba(0,0,0,${Y.value*.4})`})),Be=r(()=>A.value===!0?o.rows.value.top[2]==="r":o.rows.value.top[0]==="l"),je=r(()=>A.value===!0?o.rows.value.bottom[2]==="r":o.rows.value.bottom[0]==="l"),Ee=r(()=>{const l={};return o.header.space===!0&&Be.value===!1&&(F.value===!0?l.top=`${o.header.offset}px`:o.header.space===!0&&(l.top=`${o.header.size}px`)),o.footer.space===!0&&je.value===!1&&(F.value===!0?l.bottom=`${o.footer.offset}px`:o.footer.space===!0&&(l.bottom=`${o.footer.size}px`)),l}),Ne=r(()=>{const l={width:`${O.value}px`,transform:`translateX(${s.value}px)`};return z.value===!0?l:Object.assign(l,Ee.value)}),Ue=r(()=>"q-drawer__content fit "+(o.isContainer.value!==!0?"scroll":"overflow-auto")),Ge=r(()=>`q-drawer q-drawer--${e.side}`+(n.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(t.value===!0?" q-drawer--dark q-dark":"")+(K.value===!0?" no-transition":b.value===!0?"":" q-layout--prevent-focus")+(z.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${Q.value===!0?"mini":"standard"}`+(F.value===!0||R.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(Be.value===!0?" q-drawer--top-padding":""))),Ke=r(()=>{const l=c.lang.rtl===!0?e.side:y.value;return[[re,Ze,void 0,{[l]:!0,mouse:!0}]]}),Xe=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0}]]}),Je=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0,mouseAllDir:!0}]]});function be(){et(z,e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint)}k(z,l=>{l===!0?(L=b.value,b.value===!0&&x(!1)):e.overlay===!1&&e.behavior!=="mobile"&&L!==!1&&(b.value===!0?(I(0),X(0),ye()):B(!1))}),k(()=>e.side,(l,m)=>{o.instances[m]===p&&(o.instances[m]=void 0,o[m].space=!1,o[m].offset=0),o.instances[l]=p,o[l].size=O.value,o[l].space=R.value,o[l].offset=W.value}),k(o.totalWidth,()=>{(o.isContainer.value===!0||document.qScrollPrevented!==!0)&&be()}),k(()=>e.behavior+e.breakpoint,be),k(o.isContainer,l=>{b.value===!0&&a(l!==!0),l===!0&&be()}),k(o.scrollbarWidth,()=>{I(b.value===!0?0:void 0)}),k(W,l=>{J("offset",l)}),k(R,l=>{d("onLayout",l),J("space",l)}),k(A,()=>{I()}),k(O,l=>{I(),ze(e.miniToOverlay,l)}),k(()=>e.miniToOverlay,l=>{ze(l,O.value)}),k(()=>c.lang.rtl,()=>{I()}),k(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(Ye(),o.animate())}),k(Q,l=>{d("miniState",l)});function I(l){l===void 0?xe(()=>{l=b.value===!0?0:O.value,I(G.value*l)}):(o.isContainer.value===!0&&A.value===!0&&(z.value===!0||Math.abs(l)===O.value)&&(l+=G.value*o.scrollbarWidth.value),s.value=l)}function X(l){Y.value=l}function ge(l){const m=l===!0?"remove":o.isContainer.value!==!0?"add":"";m!==""&&document.body.classList[m]("q-body--drawer-toggle")}function Ye(){T!==null&&clearTimeout(T),i.proxy&&i.proxy.$el&&i.proxy.$el.classList.add("q-drawer--mini-animate"),n.value=!0,T=setTimeout(()=>{T=null,n.value=!1,i?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function Ze(l){if(b.value!==!1)return;const m=O.value,H=j(l.distance.x,0,m);if(l.isFinal===!0){H>=Math.min(75,m)===!0?B():(o.animate(),X(0),I(G.value*m)),K.value=!1;return}I((c.lang.rtl===!0?A.value!==!0:A.value)?Math.max(m-H,0):Math.min(0,H-m)),X(j(H/m,0,1)),l.isFirst===!0&&(K.value=!0)}function Oe(l){if(b.value!==!0)return;const m=O.value,H=l.direction===e.side,ue=(c.lang.rtl===!0?H!==!0:H)?j(l.distance.x,0,m):0;if(l.isFinal===!0){Math.abs(ue){d("onLayout",R.value),d("miniState",Q.value),L=e.showIfAbove===!0;const l=()=>{(b.value===!0?P:g)(!1,!0)};if(o.totalWidth.value!==0){xe(l);return}S=k(o.totalWidth,()=>{S(),S=void 0,b.value===!1&&e.showIfAbove===!0&&z.value===!1?B(!1):l()})}),he(()=>{S?.(),T!==null&&(clearTimeout(T),T=null),b.value===!0&&ye(),o.instances[e.side]===p&&(o.instances[e.side]=void 0,J("size",0),J("offset",0),J("space",!1))}),()=>{const l=[];z.value===!0&&(e.noSwipeOpen===!1&&l.push(Z(_("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),Ke.value)),l.push(Me("div",{ref:"backdrop",class:me.value,style:Fe.value,"aria-hidden":"true",onClick:x},void 0,"backdrop",e.noSwipeBackdrop!==!0&&b.value===!0,()=>Je.value)));const m=Q.value===!0&&C.mini!==void 0,H=[_("div",{...u,key:""+m,class:[Ue.value,u.class]},m===!0?C.mini():de(C.default))];return e.elevated===!0&&b.value===!0&&H.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),l.push(Me("aside",{ref:"content",class:Ge.value,style:Ne.value},H,"contentclose",e.noSwipeClose!==!0&&z.value===!0,()=>Xe.value)),_("div",{class:"q-drawer-container"},l)}}}),Lt=N({name:"QPageContainer",setup(e,{slots:C}){const{proxy:{$q:d}}=ee(),u=Ce(fe,E);if(u===E)return console.error("QPageContainer needs to be child of QLayout"),E;De(it,!0);const i=r(()=>{const c={};return u.header.space===!0&&(c.paddingTop=`${u.header.size}px`),u.right.space===!0&&(c[`padding${d.lang.rtl===!0?"Left":"Right"}`]=`${u.right.size}px`),u.footer.space===!0&&(c.paddingBottom=`${u.footer.size}px`),u.left.space===!0&&(c[`padding${d.lang.rtl===!0?"Right":"Left"}`]=`${u.left.size}px`),c});return()=>_("div",{class:"q-page-container",style:i.value},de(C.default))}}),pt=N({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=w(null),c=w(u.screen.height),t=w(e.container===!0?0:u.screen.width),a=w({position:0,direction:"down",inflectionPoint:0}),q=w(0),$=w(ut.value===!0?0:we()),o=r(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),L=r(()=>e.container===!1?{minHeight:u.screen.height+"px"}:null),T=r(()=>$.value!==0?{[u.lang.rtl===!0?"left":"right"]:`${$.value}px`}:null),S=r(()=>$.value!==0?{[u.lang.rtl===!0?"right":"left"]:0,[u.lang.rtl===!0?"left":"right"]:`-${$.value}px`,width:`calc(100% + ${$.value}px)`}:null);function z(g){if(e.container===!0||document.qScrollPrevented!==!0){const B={position:g.position.top,direction:g.direction,directionChanged:g.directionChanged,inflectionPoint:g.inflectionPoint.top,delta:g.delta.top};a.value=B,e.onScroll!==void 0&&d("scroll",B)}}function Q(g){const{height:B,width:x}=g;let M=!1;c.value!==B&&(M=!0,c.value=B,e.onScrollHeight!==void 0&&d("scrollHeight",B),b()),t.value!==x&&(M=!0,t.value=x),M===!0&&e.onResize!==void 0&&d("resize",g)}function O({height:g}){q.value!==g&&(q.value=g,b())}function b(){if(e.container===!0){const g=c.value>q.value?we():0;$.value!==g&&($.value=g)}}let v=null;const P={instances:{},view:r(()=>e.view),isContainer:r(()=>e.container),rootRef:i,height:c,containerHeight:q,scrollbarWidth:$,totalWidth:r(()=>t.value+$.value),rows:r(()=>{const g=e.view.toLowerCase().split(" ");return{top:g[0].split(""),middle:g[1].split(""),bottom:g[2].split("")}}),header:se({size:0,offset:0,space:!1}),right:se({size:300,offset:0,space:!1}),footer:se({size:0,offset:0,space:!1}),left:se({size:300,offset:0,space:!1}),scroll:a,animate(){v!==null?clearTimeout(v):document.body.classList.add("q-body--layout-animate"),v=setTimeout(()=>{v=null,document.body.classList.remove("q-body--layout-animate")},155)},update(g,B,x){P[g][B]=x}};if(De(fe,P),we()>0){let g=function(){M=null,U.classList.remove("hide-scrollbar")},B=function(){if(M===null){if(U.scrollHeight>u.screen.height)return;U.classList.add("hide-scrollbar")}else clearTimeout(M);M=setTimeout(g,300)},x=function(p){M!==null&&p==="remove"&&(clearTimeout(M),g()),window[`${p}EventListener`]("resize",B)},M=null;const U=document.body;k(()=>e.container!==!0?"add":"remove",x),e.container!==!0&&x("add"),st(()=>{x("remove")})}return()=>{const g=Ae(C.default,[_(Re,{onScroll:z}),_(ie,{onResize:Q})]),B=_("div",{class:o.value,style:L.value,ref:e.container===!0?void 0:i,tabindex:-1},g);return e.container===!0?_("div",{class:"q-layout-container overflow-hidden",ref:i},[_(ie,{onResize:O}),_("div",{class:"absolute-full",style:T.value},[_("div",{class:"scroll",style:S.value},[B])])]):B}}}),Ht=ct({name:"MainLayout",__name:"MainLayout",setup(e){const C=_t(),d=w(!1),u=w("auto"),i=c=>{u.value=c,c==="auto"?(localStorage.removeItem("theme"),C.dark.set("auto")):(C.dark.set(c==="dark"),localStorage.setItem("theme",c))};return $e(()=>{const c=localStorage.getItem("theme");c?(u.value=c,C.dark.set(c==="dark")):(u.value="auto",C.dark.set("auto"))}),(c,t)=>{const a=vt("router-view");return ae(),le(pt,{view:"hHh lpr lFf"},{default:h(()=>[f(Bt,{elevated:""},{default:h(()=>[f($t,null,{default:h(()=>[f(ce,{dense:"",flat:"",round:"",icon:"menu",onClick:t[0]||(t[0]=q=>d.value=!d.value)}),f(Ct,null,{default:h(()=>t[5]||(t[5]=[D("openWB",-1)])),_:1,__:[5]})]),_:1})]),_:1}),f(Pt,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=q=>d.value=q),side:"left",overlay:"",elevated:"",breakpoint:500},{default:h(()=>[f(Mt,{class:"fit","horizontal-thumb-style":{opacity:"0"}},{default:h(()=>[f(qt,{padding:""},{default:h(()=>[Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Status"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"dashboard"})]),_:1}),f(V,null,{default:h(()=>t[6]||(t[6]=[D(" Status ",-1)])),_:1,__:[6]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[7]||(t[7]=[D("Auswertungen",-1)])),_:1,__:[7]}),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/ChargeLog"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"table_chart"})]),_:1}),f(V,null,{default:h(()=>t[8]||(t[8]=[D(" Ladeprotokoll ",-1)])),_:1,__:[8]})]),_:1})),[[ve]]),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/Chart"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"area_chart"})]),_:1}),f(V,null,{default:h(()=>t[9]||(t[9]=[D(" Diagramme ",-1)])),_:1,__:[9]})]),_:1})),[[ve]]),f(_e),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"settings"})]),_:1}),f(V,null,{default:h(()=>t[10]||(t[10]=[D(" Einstellungen ",-1)])),_:1,__:[10]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[11]||(t[11]=[D("Anzeigeeinstellungen",-1)])),_:1,__:[11]}),f(ne,null,{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"light_mode"})]),_:1}),f(V,null,{default:h(()=>[f(qe,null,{default:h(()=>t[12]||(t[12]=[D("Darstellungsmodus",-1)])),_:1,__:[12]})]),_:1}),f(V,{side:""},{default:h(()=>[f(Tt,{flat:""},{default:h(()=>[f(ce,{flat:"",round:"",color:u.value==="light"?"primary":"",icon:"light_mode",onClick:t[1]||(t[1]=q=>i("light")),size:"sm",disable:u.value==="light","aria-label":"Light Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[13]||(t[13]=[D("Hell",-1)])),_:1,__:[13]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="dark"?"primary":"",icon:"dark_mode",onClick:t[2]||(t[2]=q=>i("dark")),size:"sm",disable:u.value==="dark","aria-label":"Dark Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[14]||(t[14]=[D("Dunkel",-1)])),_:1,__:[14]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="auto"?"primary":"",icon:"devices",onClick:t[3]||(t[3]=q=>i("auto")),size:"sm",disable:u.value==="auto","aria-label":"System Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[15]||(t[15]=[D("Systemeinstellung",-1)])),_:1,__:[15]})]),_:1},8,["color","disable"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Lt,{class:"column flex centered-container"},{default:h(()=>[f(a)]),_:1})]),_:1})}}}),Dt=kt(Ht,[["__scopeId","data-v-8d9d321f"]]);export{Dt as default}; diff --git a/packages/modules/web_themes/koala/web/assets/MainLayout-laRNFXea.css b/packages/modules/web_themes/koala/web/assets/MainLayout-laRNFXea.css deleted file mode 100644 index 752f55116e..0000000000 --- a/packages/modules/web_themes/koala/web/assets/MainLayout-laRNFXea.css +++ /dev/null @@ -1 +0,0 @@ -.centered-container[data-v-1a29f27d]{max-width:1000px;margin-left:auto;margin-right:auto}@media (min-width: 1400px){.centered-container[data-v-1a29f27d]{max-width:1400px}} diff --git a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-aCm0_6bg.js b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-UW32PSUV.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-aCm0_6bg.js rename to packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-UW32PSUV.js index 841f08b58f..4ac3acf311 100644 --- a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-aCm0_6bg.js +++ b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-UW32PSUV.js @@ -1 +1 @@ -import{r as k,z as ut,m as Y,c as M,g as $,o as H,n as Re,u as R,h as T,k as q,a as b,d as U,aL as ct,aM as dt,L as je,N as oe,f as ft,aJ as vt,aq as Z,U as z,w as _,P as F,_ as mt,aN as J,B as ht,ap as pt,aO as gt,aP as bt,aQ as wt,q as Ne,aR as Xe,aS as yt,aT as Ce,S as E,X as qt,O as Et,T as le,V as me,ai as re,W as Tt,$ as Le,aU as xt,i as St,aV as Ct}from"./index-DQS_YrrO.js";function Lt(){const e=k(!ut.value);return e.value===!1&&Y(()=>{e.value=!0}),{isHydrated:e}}const Ye=typeof ResizeObserver<"u",Pe=Ye===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"},an=M({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:t}){let o=null,i,n={width:-1,height:-1};function l(s){s===!0||e.debounce===0||e.debounce==="0"?r():o===null&&(o=setTimeout(r,e.debounce))}function r(){if(o!==null&&(clearTimeout(o),o=null),i){const{offsetWidth:s,offsetHeight:u}=i;(s!==n.width||u!==n.height)&&(n={width:s,height:u},t("resize",n))}}const{proxy:a}=$();if(a.trigger=l,Ye===!0){let s;const u=d=>{i=a.$el.parentNode,i?(s=new ResizeObserver(l),s.observe(i),r()):d!==!0&&R(()=>{u(!0)})};return Y(()=>{u()}),H(()=>{o!==null&&clearTimeout(o),s!==void 0&&(s.disconnect!==void 0?s.disconnect():i&&s.unobserve(i))}),Re}else{let s=function(){o!==null&&(clearTimeout(o),o=null),m!==void 0&&(m.removeEventListener!==void 0&&m.removeEventListener("resize",l,q.passive),m=void 0)},u=function(){s(),i?.contentDocument&&(m=i.contentDocument.defaultView,m.addEventListener("resize",l,q.passive),r())};const{isHydrated:d}=Lt();let m;return Y(()=>{R(()=>{i=a.$el,i&&u()})}),H(s),()=>{if(d.value===!0)return T("object",{class:"q--avoid-card-border",style:Pe.style,tabindex:-1,type:"text/html",data:Pe.url,"aria-hidden":"true",onLoad:u})}}}}),sn=M({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){const o=b(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>T("div",{class:o.value},U(t.default))}}),be={dark:{type:Boolean,default:null}};function we(e,t){return b(()=>e.dark===null?t.dark.isActive:e.dark)}const un=M({name:"QItem",props:{...be,...ct,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:t,emit:o}){const{proxy:{$q:i}}=$(),n=we(e,i),{hasLink:l,linkAttrs:r,linkClass:a,linkTag:s,navigateOnClick:u}=dt(),d=k(null),m=k(null),g=b(()=>e.clickable===!0||l.value===!0||e.tag==="label"),c=b(()=>e.disable!==!0&&g.value===!0),f=b(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(n.value===!0?" q-item--dark":"")+(l.value===!0&&e.active===null?a.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(c.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),w=b(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function S(v){c.value===!0&&(m.value!==null&&v.qAvoidFocus!==!0&&(v.qKeyEvent!==!0&&document.activeElement===d.value?m.value.focus():document.activeElement===m.value&&d.value.focus()),u(v))}function B(v){if(c.value===!0&&je(v,[13,32])===!0){oe(v),v.qKeyEvent=!0;const C=new MouseEvent("click",v);C.qKeyEvent=!0,d.value.dispatchEvent(C)}o("keyup",v)}function h(){const v=ft(t.default,[]);return c.value===!0&&v.unshift(T("div",{class:"q-focus-helper",tabindex:-1,ref:m})),v}return()=>{const v={ref:d,class:f.value,style:w.value,role:"listitem",onClick:S,onKeyup:B};return c.value===!0?(v.tabindex=e.tabindex||"0",Object.assign(v,r.value)):g.value===!0&&(v["aria-disabled"]="true"),T(s.value,v,h())}}}),Pt={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},ae={xs:2,sm:4,md:8,lg:16,xl:24},cn=M({name:"QSeparator",props:{...be,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=$(),o=we(e,t.proxy.$q),i=b(()=>e.vertical===!0?"vertical":"horizontal"),n=b(()=>` q-separator--${i.value}`),l=b(()=>e.inset!==!1?`${n.value}-${Pt[e.inset]}`:""),r=b(()=>`q-separator${n.value}${l.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(o.value===!0?" q-separator--dark":"")),a=b(()=>{const s={};if(e.size!==void 0&&(s[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const u=e.spaced===!0?`${ae.md}px`:e.spaced in ae?`${ae[e.spaced]}px`:e.spaced,d=e.vertical===!0?["Left","Right"]:["Top","Bottom"];s[`margin${d[0]}`]=s[`margin${d[1]}`]=u}return s});return()=>T("hr",{class:r.value,style:a.value,"aria-orientation":i.value})}}),dn=M({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:t}){const o=b(()=>parseInt(e.lines,10)),i=b(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(o.value===1?" ellipsis":"")),n=b(()=>e.lines!==void 0&&o.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":o.value}:null);return()=>T("div",{style:n.value,class:i.value},U(t.default))}});function ee(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),vt.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}const Ie={target:{type:[Boolean,String,Element],default:!0},noParentEvent:Boolean},fn={...Ie,contextMenu:Boolean};function kt({showing:e,avoidEmit:t,configureAnchorEl:o}){const{props:i,proxy:n,emit:l}=$(),r=k(null);let a=null;function s(c){return r.value===null?!1:c===void 0||c.touches===void 0||c.touches.length<=1}const u={};o===void 0&&(Object.assign(u,{hide(c){n.hide(c)},toggle(c){n.toggle(c),c.qAnchorHandled=!0},toggleKey(c){je(c,13)===!0&&u.toggle(c)},contextClick(c){n.hide(c),Z(c),R(()=>{n.show(c),c.qAnchorHandled=!0})},prevent:Z,mobileTouch(c){if(u.mobileCleanup(c),s(c)!==!0)return;n.hide(c),r.value.classList.add("non-selectable");const f=c.target;z(u,"anchor",[[f,"touchmove","mobileCleanup","passive"],[f,"touchend","mobileCleanup","passive"],[f,"touchcancel","mobileCleanup","passive"],[r.value,"contextmenu","prevent","notPassive"]]),a=setTimeout(()=>{a=null,n.show(c),c.qAnchorHandled=!0},300)},mobileCleanup(c){r.value.classList.remove("non-selectable"),a!==null&&(clearTimeout(a),a=null),e.value===!0&&c!==void 0&&ee()}}),o=function(c=i.contextMenu){if(i.noParentEvent===!0||r.value===null)return;let f;c===!0?n.$q.platform.is.mobile===!0?f=[[r.value,"touchstart","mobileTouch","passive"]]:f=[[r.value,"mousedown","hide","passive"],[r.value,"contextmenu","contextClick","notPassive"]]:f=[[r.value,"click","toggle","passive"],[r.value,"keyup","toggleKey","passive"]],z(u,"anchor",f)});function d(){F(u,"anchor")}function m(c){for(r.value=c;r.value.classList.contains("q-anchor--skip");)r.value=r.value.parentNode;o()}function g(){if(i.target===!1||i.target===""||n.$el.parentNode===null)r.value=null;else if(i.target===!0)m(n.$el.parentNode);else{let c=i.target;if(typeof i.target=="string")try{c=document.querySelector(i.target)}catch{c=void 0}c!=null?(r.value=c.$el||c,o()):(r.value=null,console.error(`Anchor: target "${i.target}" not found`))}}return _(()=>i.contextMenu,c=>{r.value!==null&&(d(),o(c))}),_(()=>i.target,()=>{r.value!==null&&d(),g()}),_(()=>i.noParentEvent,c=>{r.value!==null&&(c===!0?d():o())}),Y(()=>{g(),t!==!0&&i.modelValue===!0&&r.value===null&&l("update:modelValue",!1)}),H(()=>{a!==null&&clearTimeout(a),d()}),{anchorEl:r,canShow:s,anchorEvents:u}}function Ht(e,t){const o=k(null);let i;function n(a,s){const u=`${s!==void 0?"add":"remove"}EventListener`,d=s!==void 0?s:i;a!==window&&a[u]("scroll",d,q.passive),window[u]("scroll",d,q.passive),i=s}function l(){o.value!==null&&(n(o.value),o.value=null)}const r=_(()=>e.noParentEvent,()=>{o.value!==null&&(l(),t())});return H(r),{localScrollTarget:o,unconfigureScrollTarget:l,changeScrollEvent:n}}const Mt={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},$t=["beforeShow","show","beforeHide","hide"];function Bt({showing:e,canShow:t,hideOnRouteChange:o,handleShow:i,handleHide:n,processOnMount:l}){const r=$(),{props:a,emit:s,proxy:u}=r;let d;function m(h){e.value===!0?f(h):g(h)}function g(h){if(a.disable===!0||h?.qAnchorHandled===!0||t!==void 0&&t(h)!==!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!0),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&c(h)}function c(h){e.value!==!0&&(e.value=!0,s("beforeShow",h),i!==void 0?i(h):s("show",h))}function f(h){if(a.disable===!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!1),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&w(h)}function w(h){e.value!==!1&&(e.value=!1,s("beforeHide",h),n!==void 0?n(h):s("hide",h))}function S(h){a.disable===!0&&h===!0?a["onUpdate:modelValue"]!==void 0&&s("update:modelValue",!1):h===!0!==e.value&&(h===!0?c:w)(d)}_(()=>a.modelValue,S),o!==void 0&&mt(r)===!0&&_(()=>u.$route.fullPath,()=>{o.value===!0&&e.value===!0&&f()}),l===!0&&Y(()=>{S(a.modelValue)});const B={show:g,hide:f,toggle:m};return Object.assign(u,B),B}let O=[],I=[];function Ue(e){I=I.filter(t=>t!==e)}function zt(e){Ue(e),I.push(e)}function ke(e){Ue(e),I.length===0&&O.length!==0&&(O[O.length-1](),O=[])}function vn(e){I.length===0?e():O.push(e)}function mn(e){O=O.filter(t=>t!==e)}const Q=[];function hn(e){return Q.find(t=>t.contentEl!==null&&t.contentEl.contains(e))}function _t(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return J(e)}else if(e.__qPortal===!0){const o=J(e);return o?.$options.name==="QPopupProxy"?(e.hide(t),o):e}e=J(e)}while(e!=null)}function pn(e,t,o){for(;o!==0&&e!==void 0&&e!==null;){if(e.__qPortal===!0){if(o--,e.$options.name==="QMenu"){e=_t(e,t);continue}e.hide(t)}e=J(e)}}const Wt=M({name:"QPortal",setup(e,{slots:t}){return()=>t.default()}});function At(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function Ot(e,t,o,i){const n=k(!1),l=k(!1);let r=null;const a={},s=i==="dialog"&&At(e);function u(m){if(m===!0){ke(a),l.value=!0;return}l.value=!1,n.value===!1&&(s===!1&&r===null&&(r=bt(!1,i)),n.value=!0,Q.push(e.proxy),zt(a))}function d(m){if(l.value=!1,m!==!0)return;ke(a),n.value=!1;const g=Q.indexOf(e.proxy);g!==-1&&Q.splice(g,1),r!==null&&(wt(r),r=null)}return ht(()=>{d(!0)}),e.proxy.__qPortal=!0,pt(e.proxy,"contentEl",()=>t.value),{showPortal:u,hidePortal:d,portalIsActive:n,portalIsAccessible:l,renderPortal:()=>s===!0?o():n.value===!0?[T(gt,{to:r},T(Wt,o))]:void 0}}const se={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Vt(e,t=()=>{},o=()=>{}){return{transitionProps:b(()=>{const i=`q-transition--${e.transitionShow||t()}`,n=`q-transition--${e.transitionHide||o()}`;return{appear:!0,enterFromClass:`${i}-enter-from`,enterActiveClass:`${i}-enter-active`,enterToClass:`${i}-enter-to`,leaveFromClass:`${n}-leave-from`,leaveActiveClass:`${n}-leave-active`,leaveToClass:`${n}-leave-to`}}),transitionStyle:b(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}function Dt(){let e;const t=$();function o(){e=void 0}return Ne(o),H(o),{removeTick:o,registerTick(i){e=i,R(()=>{e===i&&(Xe(t)===!1&&e(),e=void 0)})}}}function Ft(){let e=null;const t=$();function o(){e!==null&&(clearTimeout(e),e=null)}return Ne(o),H(o),{removeTimeout:o,registerTimeout(i,n){o(),Xe(t)===!1&&(e=setTimeout(()=>{e=null,i()},n))}}}const Qt=[Element,String],Rt=[null,document,document.body,document.scrollingElement,document.documentElement];function jt(e,t){let o=yt(t);if(o===void 0){if(e==null)return window;o=e.closest(".scroll,.scroll-y,.overflow-auto")}return Rt.includes(o)?window:o}function Ke(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function Ge(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}function Je(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ke(e);if(o<=0){n!==t&&he(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;he(e,a),a!==t&&Je(e,t,o-r,l)})}function Ze(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ge(e);if(o<=0){n!==t&&pe(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;pe(e,a),a!==t&&Ze(e,t,o-r,l)})}function he(e,t){if(e===window){window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t);return}e.scrollTop=t}function pe(e,t){if(e===window){window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0);return}e.scrollLeft=t}function gn(e,t,o){if(o){Je(e,t,o);return}he(e,t)}function bn(e,t,o){if(o){Ze(e,t,o);return}pe(e,t)}let K;function Nt(){if(K!==void 0)return K;const e=document.createElement("p"),t=document.createElement("div");Ce(e,{width:"100%",height:"200px"}),Ce(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const o=e.offsetWidth;t.style.overflow="scroll";let i=e.offsetWidth;return o===i&&(i=t.clientWidth),t.remove(),K=o-i,K}function Xt(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}const{notPassiveCapture:te}=q,V=[];function ne(e){const t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains("no-pointer-events")===!0)return;let o=Q.length-1;for(;o>=0;){const i=Q[o].$;if(i.type.name==="QTooltip"){o--;continue}if(i.type.name!=="QDialog")break;if(i.props.seamless!==!0)return;o--}for(let i=V.length-1;i>=0;i--){const n=V[i];if((n.anchorEl.value===null||n.anchorEl.value.contains(t)===!1)&&(t===document.body||n.innerRef.value!==null&&n.innerRef.value.contains(t)===!1))e.qClickOutside=!0,n.onClickOutside(e);else return}}function Yt(e){V.push(e),V.length===1&&(document.addEventListener("mousedown",ne,te),document.addEventListener("touchstart",ne,te))}function He(e){const t=V.findIndex(o=>o===e);t!==-1&&(V.splice(t,1),V.length===0&&(document.removeEventListener("mousedown",ne,te),document.removeEventListener("touchstart",ne,te)))}let Me,$e;function Be(e){const t=e.split(" ");return t.length!==2?!1:["top","center","bottom"].includes(t[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(t[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function It(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const ge={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{ge[`${e}#ltr`]=e,ge[`${e}#rtl`]=e});function ze(e,t){const o=e.split(" ");return{vertical:o[0],horizontal:ge[`${o[1]}#${t===!0?"rtl":"ltr"}`]}}function Ut(e,t){let{top:o,left:i,right:n,bottom:l,width:r,height:a}=e.getBoundingClientRect();return t!==void 0&&(o-=t[1],i-=t[0],l+=t[1],n+=t[0],r+=t[0],a+=t[1]),{top:o,bottom:l,height:a,left:i,right:n,width:r,middle:i+(n-i)/2,center:o+(l-o)/2}}function Kt(e,t,o){let{top:i,left:n}=e.getBoundingClientRect();return i+=t.top,n+=t.left,o!==void 0&&(i+=o[1],n+=o[0]),{top:i,bottom:i+1,height:1,left:n,right:n+1,width:1,middle:n,center:i}}function Gt(e,t){return{top:0,center:t/2,bottom:t,left:0,middle:e/2,right:e}}function _e(e,t,o,i){return{top:e[o.vertical]-t[i.vertical],left:e[o.horizontal]-t[i.horizontal]}}function et(e,t=0){if(e.targetEl===null||e.anchorEl===null||t>5)return;if(e.targetEl.offsetHeight===0||e.targetEl.offsetWidth===0){setTimeout(()=>{et(e,t+1)},10);return}const{targetEl:o,offset:i,anchorEl:n,anchorOrigin:l,selfOrigin:r,absoluteOffset:a,fit:s,cover:u,maxHeight:d,maxWidth:m}=e;if(E.is.ios===!0&&window.visualViewport!==void 0){const D=document.body.style,{offsetLeft:x,offsetTop:L}=window.visualViewport;x!==Me&&(D.setProperty("--q-pe-left",x+"px"),Me=x),L!==$e&&(D.setProperty("--q-pe-top",L+"px"),$e=L)}const{scrollLeft:g,scrollTop:c}=o,f=a===void 0?Ut(n,u===!0?[0,0]:i):Kt(n,a,i);Object.assign(o.style,{top:0,left:0,minWidth:null,minHeight:null,maxWidth:m,maxHeight:d,visibility:"visible"});const{offsetWidth:w,offsetHeight:S}=o,{elWidth:B,elHeight:h}=s===!0||u===!0?{elWidth:Math.max(f.width,w),elHeight:u===!0?Math.max(f.height,S):S}:{elWidth:w,elHeight:S};let v={maxWidth:m,maxHeight:d};(s===!0||u===!0)&&(v.minWidth=f.width+"px",u===!0&&(v.minHeight=f.height+"px")),Object.assign(o.style,v);const C=Gt(B,h);let p=_e(f,C,l,r);if(a===void 0||i===void 0)ue(p,f,C,l,r);else{const{top:D,left:x}=p;ue(p,f,C,l,r);let L=!1;if(p.top!==D){L=!0;const P=2*i[1];f.center=f.top-=P,f.bottom-=P+2}if(p.left!==x){L=!0;const P=2*i[0];f.middle=f.left-=P,f.right-=P+2}L===!0&&(p=_e(f,C,l,r),ue(p,f,C,l,r))}v={top:p.top+"px",left:p.left+"px"},p.maxHeight!==void 0&&(v.maxHeight=p.maxHeight+"px",f.height>p.maxHeight&&(v.minHeight=v.maxHeight)),p.maxWidth!==void 0&&(v.maxWidth=p.maxWidth+"px",f.width>p.maxWidth&&(v.minWidth=v.maxWidth)),Object.assign(o.style,v),o.scrollTop!==c&&(o.scrollTop=c),o.scrollLeft!==g&&(o.scrollLeft=g)}function ue(e,t,o,i,n){const l=o.bottom,r=o.right,a=Nt(),s=window.innerHeight-a,u=document.body.clientWidth;if(e.top<0||e.top+l>s)if(n.vertical==="center")e.top=t[i.vertical]>s/2?Math.max(0,s-l):0,e.maxHeight=Math.min(l,s);else if(t[i.vertical]>s/2){const d=Math.min(s,i.vertical==="center"?t.center:i.vertical===n.vertical?t.bottom:t.top);e.maxHeight=Math.min(l,d),e.top=Math.max(0,d-l)}else e.top=Math.max(0,i.vertical==="center"?t.center:i.vertical===n.vertical?t.top:t.bottom),e.maxHeight=Math.min(l,s-e.top);if(e.left<0||e.left+r>u)if(e.maxWidth=Math.min(r,u),n.horizontal==="middle")e.left=t[i.horizontal]>u/2?Math.max(0,u-r):0;else if(t[i.horizontal]>u/2){const d=Math.min(u,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.right:t.left);e.maxWidth=Math.min(r,d),e.left=Math.max(0,d-e.maxWidth)}else e.left=Math.max(0,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.left:t.right),e.maxWidth=Math.min(r,u-e.left)}const wn=M({name:"QTooltip",inheritAttrs:!1,props:{...Ie,...Mt,...se,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...se.transitionShow,default:"jump-down"},transitionHide:{...se.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:Be},self:{type:String,default:"top middle",validator:Be},offset:{type:Array,default:()=>[14,14],validator:It},scrollTarget:Qt,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...$t],setup(e,{slots:t,emit:o,attrs:i}){let n,l;const r=$(),{proxy:{$q:a}}=r,s=k(null),u=k(!1),d=b(()=>ze(e.anchor,a.lang.rtl)),m=b(()=>ze(e.self,a.lang.rtl)),g=b(()=>e.persistent!==!0),{registerTick:c,removeTick:f}=Dt(),{registerTimeout:w}=Ft(),{transitionProps:S,transitionStyle:B}=Vt(e),{localScrollTarget:h,changeScrollEvent:v,unconfigureScrollTarget:C}=Ht(e,xe),{anchorEl:p,canShow:D,anchorEvents:x}=kt({showing:u,configureAnchorEl:rt}),{show:L,hide:P}=Bt({showing:u,canShow:D,handleShow:nt,handleHide:ot,hideOnRouteChange:g,processOnMount:!0});Object.assign(x,{delayShow:it,delayHide:lt});const{showPortal:qe,hidePortal:Ee,renderPortal:tt}=Ot(r,s,st,"tooltip");if(a.platform.is.mobile===!0){const y={anchorEl:p,innerRef:s,onClickOutside(W){return P(W),W.target.classList.contains("q-dialog__backdrop")&&oe(W),!0}},ie=b(()=>e.modelValue===null&&e.persistent!==!0&&u.value===!0);_(ie,W=>{(W===!0?Yt:He)(y)}),H(()=>{He(y)})}function nt(y){qe(),c(()=>{l=new MutationObserver(()=>j()),l.observe(s.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),j(),xe()}),n===void 0&&(n=_(()=>a.screen.width+"|"+a.screen.height+"|"+e.self+"|"+e.anchor+"|"+a.lang.rtl,j)),w(()=>{qe(!0),o("show",y)},e.transitionDuration)}function ot(y){f(),Ee(),Te(),w(()=>{Ee(!0),o("hide",y)},e.transitionDuration)}function Te(){l!==void 0&&(l.disconnect(),l=void 0),n!==void 0&&(n(),n=void 0),C(),F(x,"tooltipTemp")}function j(){et({targetEl:s.value,offset:e.offset,anchorEl:p.value,anchorOrigin:d.value,selfOrigin:m.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function it(y){if(a.platform.is.mobile===!0){ee(),document.body.classList.add("non-selectable");const ie=p.value,W=["touchmove","touchcancel","touchend","click"].map(Se=>[ie,Se,"delayHide","passiveCapture"]);z(x,"tooltipTemp",W)}w(()=>{L(y)},e.delay)}function lt(y){a.platform.is.mobile===!0&&(F(x,"tooltipTemp"),ee(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),w(()=>{P(y)},e.hideDelay)}function rt(){if(e.noParentEvent===!0||p.value===null)return;const y=a.platform.is.mobile===!0?[[p.value,"touchstart","delayShow","passive"]]:[[p.value,"mouseenter","delayShow","passive"],[p.value,"mouseleave","delayHide","passive"]];z(x,"anchor",y)}function xe(){if(p.value!==null||e.scrollTarget!==void 0){h.value=jt(p.value,e.scrollTarget);const y=e.noParentEvent===!0?j:P;v(h.value,y)}}function at(){return u.value===!0?T("div",{...i,ref:s,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",i.class],style:[i.style,B.value],role:"tooltip"},U(t.default)):null}function st(){return T(qt,S.value,at)}return H(Te),Object.assign(r.proxy,{updatePosition:j}),tt}}),yn=M({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const o=b(()=>{const i=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(n=>e[n]===!0).map(n=>`q-btn-group--${n}`).join(" ");return`q-btn-group row no-wrap${i.length!==0?" "+i:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>T("div",{class:o.value},U(t.default))}}),Jt=["ul","ol"],qn=M({name:"QList",props:{...be,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:t}){const o=$(),i=we(e,o.proxy.$q),n=b(()=>Jt.includes(e.tag)?null:"list"),l=b(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>T(e.tag,{class:l.value,role:n.value},U(t.default))}}),ye={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Zt=Object.keys(ye);ye.all=!0;function We(e){const t={};for(const o of Zt)e[o]===!0&&(t[o]=!0);return Object.keys(t).length===0?ye:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}const en=["INPUT","TEXTAREA"];function Ae(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler=="function"&&en.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}function ce(e,t,o){const i=me(e);let n,l=i.left-t.event.x,r=i.top-t.event.y,a=Math.abs(l),s=Math.abs(r);const u=t.direction;u.horizontal===!0&&u.vertical!==!0?n=l<0?"left":"right":u.horizontal!==!0&&u.vertical===!0?n=r<0?"up":"down":u.up===!0&&r<0?(n="up",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.down===!0&&r>0?(n="down",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.left===!0&&l<0?(n="left",a0&&(n="down"))):u.right===!0&&l>0&&(n="right",a0&&(n="down")));let d=!1;if(n===void 0&&o===!1){if(t.event.isFirst===!0||t.event.lastDir===void 0)return{};n=t.event.lastDir,d=!0,n==="left"||n==="right"?(i.left-=l,a=0,l=0):(i.top-=r,s=0,r=0)}return{synthetic:d,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:i,direction:n,isFirst:t.event.isFirst,isFinal:o===!0,duration:Date.now()-t.event.time,distance:{x:a,y:s},offset:{x:l,y:r},delta:{x:i.left-t.event.lastX,y:i.top-t.event.lastY}}}}let tn=0;const En=Et({name:"touch-pan",beforeMount(e,{value:t,modifiers:o}){if(o.mouse!==!0&&E.has.touch!==!0)return;function i(l,r){o.mouse===!0&&r===!0?oe(l):(o.stop===!0&&re(l),o.prevent===!0&&Z(l))}const n={uid:"qvtp_"+tn++,handler:t,modifiers:o,direction:We(o),noop:Re,mouseStart(l){Ae(l,n)&&Tt(l)&&(z(n,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),n.start(l,!0))},touchStart(l){if(Ae(l,n)){const r=l.target;z(n,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","passiveCapture"],[r,"touchend","end","passiveCapture"]]),n.start(l)}},start(l,r){if(E.is.firefox===!0&&le(e,!0),n.lastEvt=l,r===!0||o.stop===!0){if(n.direction.all!==!0&&(r!==!0||n.modifiers.mouseAllDir!==!0&&n.modifiers.mousealldir!==!0)){const u=l.type.indexOf("mouse")!==-1?new MouseEvent(l.type,l):new TouchEvent(l.type,l);l.defaultPrevented===!0&&Z(u),l.cancelBubble===!0&&re(u),Object.assign(u,{qKeyEvent:l.qKeyEvent,qClickOutside:l.qClickOutside,qAnchorHandled:l.qAnchorHandled,qClonedBy:l.qClonedBy===void 0?[n.uid]:l.qClonedBy.concat(n.uid)}),n.initialEvent={target:l.target,event:u}}re(l)}const{left:a,top:s}=me(l);n.event={x:a,y:s,time:Date.now(),mouse:r===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:s}},move(l){if(n.event===void 0)return;const r=me(l),a=r.left-n.event.x,s=r.top-n.event.y;if(a===0&&s===0)return;n.lastEvt=l;const u=n.event.mouse===!0,d=()=>{i(l,u);let c;o.preserveCursor!==!0&&o.preservecursor!==!0&&(c=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),u===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ee(),n.styleCleanup=f=>{if(n.styleCleanup=void 0,c!==void 0&&(document.documentElement.style.cursor=c),document.body.classList.remove("non-selectable"),u===!0){const w=()=>{document.body.classList.remove("no-pointer-events--children")};f!==void 0?setTimeout(()=>{w(),f()},50):w()}else f!==void 0&&f()}};if(n.event.detected===!0){n.event.isFirst!==!0&&i(l,n.event.mouse);const{payload:c,synthetic:f}=ce(l,n,!1);c!==void 0&&(n.handler(c)===!1?n.end(l):(n.styleCleanup===void 0&&n.event.isFirst===!0&&d(),n.event.lastX=c.position.left,n.event.lastY=c.position.top,n.event.lastDir=f===!0?void 0:c.direction,n.event.isFirst=!1));return}if(n.direction.all===!0||u===!0&&(n.modifiers.mouseAllDir===!0||n.modifiers.mousealldir===!0)){d(),n.event.detected=!0,n.move(l);return}const m=Math.abs(a),g=Math.abs(s);m!==g&&(n.direction.horizontal===!0&&m>g||n.direction.vertical===!0&&m0||n.direction.left===!0&&m>g&&a<0||n.direction.right===!0&&m>g&&a>0?(n.event.detected=!0,n.move(l)):n.end(l,!0))},end(l,r){if(n.event!==void 0){if(F(n,"temp"),E.is.firefox===!0&&le(e,!1),r===!0)n.styleCleanup?.(),n.event.detected!==!0&&n.initialEvent!==void 0&&n.initialEvent.target.dispatchEvent(n.initialEvent.event);else if(n.event.detected===!0){n.event.isFirst===!0&&n.handler(ce(l===void 0?n.lastEvt:l,n).payload);const{payload:a}=ce(l===void 0?n.lastEvt:l,n,!0),s=()=>{n.handler(a)};n.styleCleanup!==void 0?n.styleCleanup(s):s()}n.event=void 0,n.initialEvent=void 0,n.lastEvt=void 0}}};if(e.__qtouchpan=n,o.mouse===!0){const l=o.mouseCapture===!0||o.mousecapture===!0?"Capture":"";z(n,"main",[[e,"mousedown","mouseStart",`passive${l}`]])}E.has.touch===!0&&z(n,"main",[[e,"touchstart","touchStart",`passive${o.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,t){const o=e.__qtouchpan;o!==void 0&&(t.oldValue!==t.value&&(typeof value!="function"&&o.end(),o.handler=t.value),o.direction=We(t.modifiers))},beforeUnmount(e){const t=e.__qtouchpan;t!==void 0&&(t.event!==void 0&&t.end(),F(t,"main"),F(t,"temp"),E.is.firefox===!0&&le(e,!1),t.styleCleanup?.(),delete e.__qtouchpan)}});function Tn(e,t,o){return o<=t?t:Math.min(o,Math.max(t,e))}function xn(e,t,o){if(o<=t)return t;const i=o-t+1;let n=t+(e-t)%i;return n{e.value===!0&&n()}),{removeFromHistory:n,addToHistory(){i={condition:()=>o.value===!0,handler:t},Le.add(i)}}}let N=0,de,fe,X,ve=!1,Oe,Ve,De,A=null;function nn(e){on(e)&&oe(e)}function on(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=xt(e),o=e.shiftKey&&!e.deltaX,i=!o&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),n=o||i?e.deltaY:e.deltaX;for(let l=0;l0&&r.scrollTop+r.clientHeight===r.scrollHeight:n<0&&r.scrollLeft===0?!0:n>0&&r.scrollLeft+r.clientWidth===r.scrollWidth}return!0}function Fe(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function G(e){ve!==!0&&(ve=!0,requestAnimationFrame(()=>{ve=!1;const{height:t}=e.target,{clientHeight:o,scrollTop:i}=document.scrollingElement;(X===void 0||t!==window.innerHeight)&&(X=o-t,document.scrollingElement.scrollTop=i),i>X&&(document.scrollingElement.scrollTop-=Math.ceil((i-X)/8))}))}function Qe(e){const t=document.body,o=window.visualViewport!==void 0;if(e==="add"){const{overflowY:i,overflowX:n}=window.getComputedStyle(t);de=Ge(window),fe=Ke(window),Oe=t.style.left,Ve=t.style.top,De=window.location.href,t.style.left=`-${de}px`,t.style.top=`-${fe}px`,n!=="hidden"&&(n==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),i!=="hidden"&&(i==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,E.is.ios===!0&&(o===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",G,q.passiveCapture),window.visualViewport.addEventListener("scroll",G,q.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Fe,q.passiveCapture))}E.is.desktop===!0&&E.is.mac===!0&&window[`${e}EventListener`]("wheel",nn,q.notPassive),e==="remove"&&(E.is.ios===!0&&(o===!0?(window.visualViewport.removeEventListener("resize",G,q.passiveCapture),window.visualViewport.removeEventListener("scroll",G,q.passiveCapture)):window.removeEventListener("scroll",Fe,q.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=Oe,t.style.top=Ve,window.location.href===De&&window.scrollTo(de,fe),X=void 0)}function ln(e){let t="add";if(e===!0){if(N++,A!==null){clearTimeout(A),A=null;return}if(N>1)return}else{if(N===0||(N--,N>0))return;if(t="remove",E.is.ios===!0&&E.is.nativeMobile===!0){A!==null&&clearTimeout(A),A=setTimeout(()=>{Qe(t),A=null},100);return}}Qe(t)}function Cn(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,ln(t))}}}function Ln(){return St(Ct)}const Pn=(e,t)=>{const o=e.__vccOpts||e;for(const[i,n]of t)o[i]=n;return o};export{ee as A,Ae as B,It as C,Be as D,se as E,fn as F,Vt as G,Ht as H,kt as I,Ot as J,ze as K,Yt as L,He as M,_t as N,et as O,vn as P,an as Q,hn as R,pn as S,En as T,mn as U,xn as V,Pn as _,Ke as a,Ge as b,we as c,Tn as d,bn as e,gn as f,jt as g,$t as h,Mt as i,Ft as j,Bt as k,Sn as l,Cn as m,Nt as n,Ln as o,qn as p,un as q,sn as r,Qt as s,cn as t,be as u,dn as v,yn as w,wn as x,Dt as y,We as z}; +import{r as k,z as ut,m as Y,c as M,g as $,o as H,n as Re,u as R,h as T,k as q,a as b,d as U,aL as ct,aM as dt,L as je,N as oe,f as ft,aJ as vt,aq as Z,U as z,w as _,P as F,_ as mt,aN as J,B as ht,ap as pt,aO as gt,aP as bt,aQ as wt,q as Ne,aR as Xe,aS as yt,aT as Ce,S as E,X as qt,O as Et,T as le,V as me,ai as re,W as Tt,$ as Le,aU as xt,i as St,aV as Ct}from"./index-BffAdZ7B.js";function Lt(){const e=k(!ut.value);return e.value===!1&&Y(()=>{e.value=!0}),{isHydrated:e}}const Ye=typeof ResizeObserver<"u",Pe=Ye===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"},an=M({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:t}){let o=null,i,n={width:-1,height:-1};function l(s){s===!0||e.debounce===0||e.debounce==="0"?r():o===null&&(o=setTimeout(r,e.debounce))}function r(){if(o!==null&&(clearTimeout(o),o=null),i){const{offsetWidth:s,offsetHeight:u}=i;(s!==n.width||u!==n.height)&&(n={width:s,height:u},t("resize",n))}}const{proxy:a}=$();if(a.trigger=l,Ye===!0){let s;const u=d=>{i=a.$el.parentNode,i?(s=new ResizeObserver(l),s.observe(i),r()):d!==!0&&R(()=>{u(!0)})};return Y(()=>{u()}),H(()=>{o!==null&&clearTimeout(o),s!==void 0&&(s.disconnect!==void 0?s.disconnect():i&&s.unobserve(i))}),Re}else{let s=function(){o!==null&&(clearTimeout(o),o=null),m!==void 0&&(m.removeEventListener!==void 0&&m.removeEventListener("resize",l,q.passive),m=void 0)},u=function(){s(),i?.contentDocument&&(m=i.contentDocument.defaultView,m.addEventListener("resize",l,q.passive),r())};const{isHydrated:d}=Lt();let m;return Y(()=>{R(()=>{i=a.$el,i&&u()})}),H(s),()=>{if(d.value===!0)return T("object",{class:"q--avoid-card-border",style:Pe.style,tabindex:-1,type:"text/html",data:Pe.url,"aria-hidden":"true",onLoad:u})}}}}),sn=M({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){const o=b(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>T("div",{class:o.value},U(t.default))}}),be={dark:{type:Boolean,default:null}};function we(e,t){return b(()=>e.dark===null?t.dark.isActive:e.dark)}const un=M({name:"QItem",props:{...be,...ct,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:t,emit:o}){const{proxy:{$q:i}}=$(),n=we(e,i),{hasLink:l,linkAttrs:r,linkClass:a,linkTag:s,navigateOnClick:u}=dt(),d=k(null),m=k(null),g=b(()=>e.clickable===!0||l.value===!0||e.tag==="label"),c=b(()=>e.disable!==!0&&g.value===!0),f=b(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(n.value===!0?" q-item--dark":"")+(l.value===!0&&e.active===null?a.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(c.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),w=b(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function S(v){c.value===!0&&(m.value!==null&&v.qAvoidFocus!==!0&&(v.qKeyEvent!==!0&&document.activeElement===d.value?m.value.focus():document.activeElement===m.value&&d.value.focus()),u(v))}function B(v){if(c.value===!0&&je(v,[13,32])===!0){oe(v),v.qKeyEvent=!0;const C=new MouseEvent("click",v);C.qKeyEvent=!0,d.value.dispatchEvent(C)}o("keyup",v)}function h(){const v=ft(t.default,[]);return c.value===!0&&v.unshift(T("div",{class:"q-focus-helper",tabindex:-1,ref:m})),v}return()=>{const v={ref:d,class:f.value,style:w.value,role:"listitem",onClick:S,onKeyup:B};return c.value===!0?(v.tabindex=e.tabindex||"0",Object.assign(v,r.value)):g.value===!0&&(v["aria-disabled"]="true"),T(s.value,v,h())}}}),Pt={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},ae={xs:2,sm:4,md:8,lg:16,xl:24},cn=M({name:"QSeparator",props:{...be,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=$(),o=we(e,t.proxy.$q),i=b(()=>e.vertical===!0?"vertical":"horizontal"),n=b(()=>` q-separator--${i.value}`),l=b(()=>e.inset!==!1?`${n.value}-${Pt[e.inset]}`:""),r=b(()=>`q-separator${n.value}${l.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(o.value===!0?" q-separator--dark":"")),a=b(()=>{const s={};if(e.size!==void 0&&(s[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const u=e.spaced===!0?`${ae.md}px`:e.spaced in ae?`${ae[e.spaced]}px`:e.spaced,d=e.vertical===!0?["Left","Right"]:["Top","Bottom"];s[`margin${d[0]}`]=s[`margin${d[1]}`]=u}return s});return()=>T("hr",{class:r.value,style:a.value,"aria-orientation":i.value})}}),dn=M({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:t}){const o=b(()=>parseInt(e.lines,10)),i=b(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(o.value===1?" ellipsis":"")),n=b(()=>e.lines!==void 0&&o.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":o.value}:null);return()=>T("div",{style:n.value,class:i.value},U(t.default))}});function ee(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),vt.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}const Ie={target:{type:[Boolean,String,Element],default:!0},noParentEvent:Boolean},fn={...Ie,contextMenu:Boolean};function kt({showing:e,avoidEmit:t,configureAnchorEl:o}){const{props:i,proxy:n,emit:l}=$(),r=k(null);let a=null;function s(c){return r.value===null?!1:c===void 0||c.touches===void 0||c.touches.length<=1}const u={};o===void 0&&(Object.assign(u,{hide(c){n.hide(c)},toggle(c){n.toggle(c),c.qAnchorHandled=!0},toggleKey(c){je(c,13)===!0&&u.toggle(c)},contextClick(c){n.hide(c),Z(c),R(()=>{n.show(c),c.qAnchorHandled=!0})},prevent:Z,mobileTouch(c){if(u.mobileCleanup(c),s(c)!==!0)return;n.hide(c),r.value.classList.add("non-selectable");const f=c.target;z(u,"anchor",[[f,"touchmove","mobileCleanup","passive"],[f,"touchend","mobileCleanup","passive"],[f,"touchcancel","mobileCleanup","passive"],[r.value,"contextmenu","prevent","notPassive"]]),a=setTimeout(()=>{a=null,n.show(c),c.qAnchorHandled=!0},300)},mobileCleanup(c){r.value.classList.remove("non-selectable"),a!==null&&(clearTimeout(a),a=null),e.value===!0&&c!==void 0&&ee()}}),o=function(c=i.contextMenu){if(i.noParentEvent===!0||r.value===null)return;let f;c===!0?n.$q.platform.is.mobile===!0?f=[[r.value,"touchstart","mobileTouch","passive"]]:f=[[r.value,"mousedown","hide","passive"],[r.value,"contextmenu","contextClick","notPassive"]]:f=[[r.value,"click","toggle","passive"],[r.value,"keyup","toggleKey","passive"]],z(u,"anchor",f)});function d(){F(u,"anchor")}function m(c){for(r.value=c;r.value.classList.contains("q-anchor--skip");)r.value=r.value.parentNode;o()}function g(){if(i.target===!1||i.target===""||n.$el.parentNode===null)r.value=null;else if(i.target===!0)m(n.$el.parentNode);else{let c=i.target;if(typeof i.target=="string")try{c=document.querySelector(i.target)}catch{c=void 0}c!=null?(r.value=c.$el||c,o()):(r.value=null,console.error(`Anchor: target "${i.target}" not found`))}}return _(()=>i.contextMenu,c=>{r.value!==null&&(d(),o(c))}),_(()=>i.target,()=>{r.value!==null&&d(),g()}),_(()=>i.noParentEvent,c=>{r.value!==null&&(c===!0?d():o())}),Y(()=>{g(),t!==!0&&i.modelValue===!0&&r.value===null&&l("update:modelValue",!1)}),H(()=>{a!==null&&clearTimeout(a),d()}),{anchorEl:r,canShow:s,anchorEvents:u}}function Ht(e,t){const o=k(null);let i;function n(a,s){const u=`${s!==void 0?"add":"remove"}EventListener`,d=s!==void 0?s:i;a!==window&&a[u]("scroll",d,q.passive),window[u]("scroll",d,q.passive),i=s}function l(){o.value!==null&&(n(o.value),o.value=null)}const r=_(()=>e.noParentEvent,()=>{o.value!==null&&(l(),t())});return H(r),{localScrollTarget:o,unconfigureScrollTarget:l,changeScrollEvent:n}}const Mt={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},$t=["beforeShow","show","beforeHide","hide"];function Bt({showing:e,canShow:t,hideOnRouteChange:o,handleShow:i,handleHide:n,processOnMount:l}){const r=$(),{props:a,emit:s,proxy:u}=r;let d;function m(h){e.value===!0?f(h):g(h)}function g(h){if(a.disable===!0||h?.qAnchorHandled===!0||t!==void 0&&t(h)!==!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!0),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&c(h)}function c(h){e.value!==!0&&(e.value=!0,s("beforeShow",h),i!==void 0?i(h):s("show",h))}function f(h){if(a.disable===!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!1),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&w(h)}function w(h){e.value!==!1&&(e.value=!1,s("beforeHide",h),n!==void 0?n(h):s("hide",h))}function S(h){a.disable===!0&&h===!0?a["onUpdate:modelValue"]!==void 0&&s("update:modelValue",!1):h===!0!==e.value&&(h===!0?c:w)(d)}_(()=>a.modelValue,S),o!==void 0&&mt(r)===!0&&_(()=>u.$route.fullPath,()=>{o.value===!0&&e.value===!0&&f()}),l===!0&&Y(()=>{S(a.modelValue)});const B={show:g,hide:f,toggle:m};return Object.assign(u,B),B}let O=[],I=[];function Ue(e){I=I.filter(t=>t!==e)}function zt(e){Ue(e),I.push(e)}function ke(e){Ue(e),I.length===0&&O.length!==0&&(O[O.length-1](),O=[])}function vn(e){I.length===0?e():O.push(e)}function mn(e){O=O.filter(t=>t!==e)}const Q=[];function hn(e){return Q.find(t=>t.contentEl!==null&&t.contentEl.contains(e))}function _t(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return J(e)}else if(e.__qPortal===!0){const o=J(e);return o?.$options.name==="QPopupProxy"?(e.hide(t),o):e}e=J(e)}while(e!=null)}function pn(e,t,o){for(;o!==0&&e!==void 0&&e!==null;){if(e.__qPortal===!0){if(o--,e.$options.name==="QMenu"){e=_t(e,t);continue}e.hide(t)}e=J(e)}}const Wt=M({name:"QPortal",setup(e,{slots:t}){return()=>t.default()}});function At(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function Ot(e,t,o,i){const n=k(!1),l=k(!1);let r=null;const a={},s=i==="dialog"&&At(e);function u(m){if(m===!0){ke(a),l.value=!0;return}l.value=!1,n.value===!1&&(s===!1&&r===null&&(r=bt(!1,i)),n.value=!0,Q.push(e.proxy),zt(a))}function d(m){if(l.value=!1,m!==!0)return;ke(a),n.value=!1;const g=Q.indexOf(e.proxy);g!==-1&&Q.splice(g,1),r!==null&&(wt(r),r=null)}return ht(()=>{d(!0)}),e.proxy.__qPortal=!0,pt(e.proxy,"contentEl",()=>t.value),{showPortal:u,hidePortal:d,portalIsActive:n,portalIsAccessible:l,renderPortal:()=>s===!0?o():n.value===!0?[T(gt,{to:r},T(Wt,o))]:void 0}}const se={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Vt(e,t=()=>{},o=()=>{}){return{transitionProps:b(()=>{const i=`q-transition--${e.transitionShow||t()}`,n=`q-transition--${e.transitionHide||o()}`;return{appear:!0,enterFromClass:`${i}-enter-from`,enterActiveClass:`${i}-enter-active`,enterToClass:`${i}-enter-to`,leaveFromClass:`${n}-leave-from`,leaveActiveClass:`${n}-leave-active`,leaveToClass:`${n}-leave-to`}}),transitionStyle:b(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}function Dt(){let e;const t=$();function o(){e=void 0}return Ne(o),H(o),{removeTick:o,registerTick(i){e=i,R(()=>{e===i&&(Xe(t)===!1&&e(),e=void 0)})}}}function Ft(){let e=null;const t=$();function o(){e!==null&&(clearTimeout(e),e=null)}return Ne(o),H(o),{removeTimeout:o,registerTimeout(i,n){o(),Xe(t)===!1&&(e=setTimeout(()=>{e=null,i()},n))}}}const Qt=[Element,String],Rt=[null,document,document.body,document.scrollingElement,document.documentElement];function jt(e,t){let o=yt(t);if(o===void 0){if(e==null)return window;o=e.closest(".scroll,.scroll-y,.overflow-auto")}return Rt.includes(o)?window:o}function Ke(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function Ge(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}function Je(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ke(e);if(o<=0){n!==t&&he(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;he(e,a),a!==t&&Je(e,t,o-r,l)})}function Ze(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ge(e);if(o<=0){n!==t&&pe(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;pe(e,a),a!==t&&Ze(e,t,o-r,l)})}function he(e,t){if(e===window){window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t);return}e.scrollTop=t}function pe(e,t){if(e===window){window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0);return}e.scrollLeft=t}function gn(e,t,o){if(o){Je(e,t,o);return}he(e,t)}function bn(e,t,o){if(o){Ze(e,t,o);return}pe(e,t)}let K;function Nt(){if(K!==void 0)return K;const e=document.createElement("p"),t=document.createElement("div");Ce(e,{width:"100%",height:"200px"}),Ce(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const o=e.offsetWidth;t.style.overflow="scroll";let i=e.offsetWidth;return o===i&&(i=t.clientWidth),t.remove(),K=o-i,K}function Xt(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}const{notPassiveCapture:te}=q,V=[];function ne(e){const t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains("no-pointer-events")===!0)return;let o=Q.length-1;for(;o>=0;){const i=Q[o].$;if(i.type.name==="QTooltip"){o--;continue}if(i.type.name!=="QDialog")break;if(i.props.seamless!==!0)return;o--}for(let i=V.length-1;i>=0;i--){const n=V[i];if((n.anchorEl.value===null||n.anchorEl.value.contains(t)===!1)&&(t===document.body||n.innerRef.value!==null&&n.innerRef.value.contains(t)===!1))e.qClickOutside=!0,n.onClickOutside(e);else return}}function Yt(e){V.push(e),V.length===1&&(document.addEventListener("mousedown",ne,te),document.addEventListener("touchstart",ne,te))}function He(e){const t=V.findIndex(o=>o===e);t!==-1&&(V.splice(t,1),V.length===0&&(document.removeEventListener("mousedown",ne,te),document.removeEventListener("touchstart",ne,te)))}let Me,$e;function Be(e){const t=e.split(" ");return t.length!==2?!1:["top","center","bottom"].includes(t[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(t[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function It(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const ge={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{ge[`${e}#ltr`]=e,ge[`${e}#rtl`]=e});function ze(e,t){const o=e.split(" ");return{vertical:o[0],horizontal:ge[`${o[1]}#${t===!0?"rtl":"ltr"}`]}}function Ut(e,t){let{top:o,left:i,right:n,bottom:l,width:r,height:a}=e.getBoundingClientRect();return t!==void 0&&(o-=t[1],i-=t[0],l+=t[1],n+=t[0],r+=t[0],a+=t[1]),{top:o,bottom:l,height:a,left:i,right:n,width:r,middle:i+(n-i)/2,center:o+(l-o)/2}}function Kt(e,t,o){let{top:i,left:n}=e.getBoundingClientRect();return i+=t.top,n+=t.left,o!==void 0&&(i+=o[1],n+=o[0]),{top:i,bottom:i+1,height:1,left:n,right:n+1,width:1,middle:n,center:i}}function Gt(e,t){return{top:0,center:t/2,bottom:t,left:0,middle:e/2,right:e}}function _e(e,t,o,i){return{top:e[o.vertical]-t[i.vertical],left:e[o.horizontal]-t[i.horizontal]}}function et(e,t=0){if(e.targetEl===null||e.anchorEl===null||t>5)return;if(e.targetEl.offsetHeight===0||e.targetEl.offsetWidth===0){setTimeout(()=>{et(e,t+1)},10);return}const{targetEl:o,offset:i,anchorEl:n,anchorOrigin:l,selfOrigin:r,absoluteOffset:a,fit:s,cover:u,maxHeight:d,maxWidth:m}=e;if(E.is.ios===!0&&window.visualViewport!==void 0){const D=document.body.style,{offsetLeft:x,offsetTop:L}=window.visualViewport;x!==Me&&(D.setProperty("--q-pe-left",x+"px"),Me=x),L!==$e&&(D.setProperty("--q-pe-top",L+"px"),$e=L)}const{scrollLeft:g,scrollTop:c}=o,f=a===void 0?Ut(n,u===!0?[0,0]:i):Kt(n,a,i);Object.assign(o.style,{top:0,left:0,minWidth:null,minHeight:null,maxWidth:m,maxHeight:d,visibility:"visible"});const{offsetWidth:w,offsetHeight:S}=o,{elWidth:B,elHeight:h}=s===!0||u===!0?{elWidth:Math.max(f.width,w),elHeight:u===!0?Math.max(f.height,S):S}:{elWidth:w,elHeight:S};let v={maxWidth:m,maxHeight:d};(s===!0||u===!0)&&(v.minWidth=f.width+"px",u===!0&&(v.minHeight=f.height+"px")),Object.assign(o.style,v);const C=Gt(B,h);let p=_e(f,C,l,r);if(a===void 0||i===void 0)ue(p,f,C,l,r);else{const{top:D,left:x}=p;ue(p,f,C,l,r);let L=!1;if(p.top!==D){L=!0;const P=2*i[1];f.center=f.top-=P,f.bottom-=P+2}if(p.left!==x){L=!0;const P=2*i[0];f.middle=f.left-=P,f.right-=P+2}L===!0&&(p=_e(f,C,l,r),ue(p,f,C,l,r))}v={top:p.top+"px",left:p.left+"px"},p.maxHeight!==void 0&&(v.maxHeight=p.maxHeight+"px",f.height>p.maxHeight&&(v.minHeight=v.maxHeight)),p.maxWidth!==void 0&&(v.maxWidth=p.maxWidth+"px",f.width>p.maxWidth&&(v.minWidth=v.maxWidth)),Object.assign(o.style,v),o.scrollTop!==c&&(o.scrollTop=c),o.scrollLeft!==g&&(o.scrollLeft=g)}function ue(e,t,o,i,n){const l=o.bottom,r=o.right,a=Nt(),s=window.innerHeight-a,u=document.body.clientWidth;if(e.top<0||e.top+l>s)if(n.vertical==="center")e.top=t[i.vertical]>s/2?Math.max(0,s-l):0,e.maxHeight=Math.min(l,s);else if(t[i.vertical]>s/2){const d=Math.min(s,i.vertical==="center"?t.center:i.vertical===n.vertical?t.bottom:t.top);e.maxHeight=Math.min(l,d),e.top=Math.max(0,d-l)}else e.top=Math.max(0,i.vertical==="center"?t.center:i.vertical===n.vertical?t.top:t.bottom),e.maxHeight=Math.min(l,s-e.top);if(e.left<0||e.left+r>u)if(e.maxWidth=Math.min(r,u),n.horizontal==="middle")e.left=t[i.horizontal]>u/2?Math.max(0,u-r):0;else if(t[i.horizontal]>u/2){const d=Math.min(u,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.right:t.left);e.maxWidth=Math.min(r,d),e.left=Math.max(0,d-e.maxWidth)}else e.left=Math.max(0,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.left:t.right),e.maxWidth=Math.min(r,u-e.left)}const wn=M({name:"QTooltip",inheritAttrs:!1,props:{...Ie,...Mt,...se,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...se.transitionShow,default:"jump-down"},transitionHide:{...se.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:Be},self:{type:String,default:"top middle",validator:Be},offset:{type:Array,default:()=>[14,14],validator:It},scrollTarget:Qt,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...$t],setup(e,{slots:t,emit:o,attrs:i}){let n,l;const r=$(),{proxy:{$q:a}}=r,s=k(null),u=k(!1),d=b(()=>ze(e.anchor,a.lang.rtl)),m=b(()=>ze(e.self,a.lang.rtl)),g=b(()=>e.persistent!==!0),{registerTick:c,removeTick:f}=Dt(),{registerTimeout:w}=Ft(),{transitionProps:S,transitionStyle:B}=Vt(e),{localScrollTarget:h,changeScrollEvent:v,unconfigureScrollTarget:C}=Ht(e,xe),{anchorEl:p,canShow:D,anchorEvents:x}=kt({showing:u,configureAnchorEl:rt}),{show:L,hide:P}=Bt({showing:u,canShow:D,handleShow:nt,handleHide:ot,hideOnRouteChange:g,processOnMount:!0});Object.assign(x,{delayShow:it,delayHide:lt});const{showPortal:qe,hidePortal:Ee,renderPortal:tt}=Ot(r,s,st,"tooltip");if(a.platform.is.mobile===!0){const y={anchorEl:p,innerRef:s,onClickOutside(W){return P(W),W.target.classList.contains("q-dialog__backdrop")&&oe(W),!0}},ie=b(()=>e.modelValue===null&&e.persistent!==!0&&u.value===!0);_(ie,W=>{(W===!0?Yt:He)(y)}),H(()=>{He(y)})}function nt(y){qe(),c(()=>{l=new MutationObserver(()=>j()),l.observe(s.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),j(),xe()}),n===void 0&&(n=_(()=>a.screen.width+"|"+a.screen.height+"|"+e.self+"|"+e.anchor+"|"+a.lang.rtl,j)),w(()=>{qe(!0),o("show",y)},e.transitionDuration)}function ot(y){f(),Ee(),Te(),w(()=>{Ee(!0),o("hide",y)},e.transitionDuration)}function Te(){l!==void 0&&(l.disconnect(),l=void 0),n!==void 0&&(n(),n=void 0),C(),F(x,"tooltipTemp")}function j(){et({targetEl:s.value,offset:e.offset,anchorEl:p.value,anchorOrigin:d.value,selfOrigin:m.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function it(y){if(a.platform.is.mobile===!0){ee(),document.body.classList.add("non-selectable");const ie=p.value,W=["touchmove","touchcancel","touchend","click"].map(Se=>[ie,Se,"delayHide","passiveCapture"]);z(x,"tooltipTemp",W)}w(()=>{L(y)},e.delay)}function lt(y){a.platform.is.mobile===!0&&(F(x,"tooltipTemp"),ee(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),w(()=>{P(y)},e.hideDelay)}function rt(){if(e.noParentEvent===!0||p.value===null)return;const y=a.platform.is.mobile===!0?[[p.value,"touchstart","delayShow","passive"]]:[[p.value,"mouseenter","delayShow","passive"],[p.value,"mouseleave","delayHide","passive"]];z(x,"anchor",y)}function xe(){if(p.value!==null||e.scrollTarget!==void 0){h.value=jt(p.value,e.scrollTarget);const y=e.noParentEvent===!0?j:P;v(h.value,y)}}function at(){return u.value===!0?T("div",{...i,ref:s,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",i.class],style:[i.style,B.value],role:"tooltip"},U(t.default)):null}function st(){return T(qt,S.value,at)}return H(Te),Object.assign(r.proxy,{updatePosition:j}),tt}}),yn=M({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const o=b(()=>{const i=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(n=>e[n]===!0).map(n=>`q-btn-group--${n}`).join(" ");return`q-btn-group row no-wrap${i.length!==0?" "+i:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>T("div",{class:o.value},U(t.default))}}),Jt=["ul","ol"],qn=M({name:"QList",props:{...be,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:t}){const o=$(),i=we(e,o.proxy.$q),n=b(()=>Jt.includes(e.tag)?null:"list"),l=b(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>T(e.tag,{class:l.value,role:n.value},U(t.default))}}),ye={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Zt=Object.keys(ye);ye.all=!0;function We(e){const t={};for(const o of Zt)e[o]===!0&&(t[o]=!0);return Object.keys(t).length===0?ye:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}const en=["INPUT","TEXTAREA"];function Ae(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler=="function"&&en.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}function ce(e,t,o){const i=me(e);let n,l=i.left-t.event.x,r=i.top-t.event.y,a=Math.abs(l),s=Math.abs(r);const u=t.direction;u.horizontal===!0&&u.vertical!==!0?n=l<0?"left":"right":u.horizontal!==!0&&u.vertical===!0?n=r<0?"up":"down":u.up===!0&&r<0?(n="up",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.down===!0&&r>0?(n="down",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.left===!0&&l<0?(n="left",a0&&(n="down"))):u.right===!0&&l>0&&(n="right",a0&&(n="down")));let d=!1;if(n===void 0&&o===!1){if(t.event.isFirst===!0||t.event.lastDir===void 0)return{};n=t.event.lastDir,d=!0,n==="left"||n==="right"?(i.left-=l,a=0,l=0):(i.top-=r,s=0,r=0)}return{synthetic:d,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:i,direction:n,isFirst:t.event.isFirst,isFinal:o===!0,duration:Date.now()-t.event.time,distance:{x:a,y:s},offset:{x:l,y:r},delta:{x:i.left-t.event.lastX,y:i.top-t.event.lastY}}}}let tn=0;const En=Et({name:"touch-pan",beforeMount(e,{value:t,modifiers:o}){if(o.mouse!==!0&&E.has.touch!==!0)return;function i(l,r){o.mouse===!0&&r===!0?oe(l):(o.stop===!0&&re(l),o.prevent===!0&&Z(l))}const n={uid:"qvtp_"+tn++,handler:t,modifiers:o,direction:We(o),noop:Re,mouseStart(l){Ae(l,n)&&Tt(l)&&(z(n,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),n.start(l,!0))},touchStart(l){if(Ae(l,n)){const r=l.target;z(n,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","passiveCapture"],[r,"touchend","end","passiveCapture"]]),n.start(l)}},start(l,r){if(E.is.firefox===!0&&le(e,!0),n.lastEvt=l,r===!0||o.stop===!0){if(n.direction.all!==!0&&(r!==!0||n.modifiers.mouseAllDir!==!0&&n.modifiers.mousealldir!==!0)){const u=l.type.indexOf("mouse")!==-1?new MouseEvent(l.type,l):new TouchEvent(l.type,l);l.defaultPrevented===!0&&Z(u),l.cancelBubble===!0&&re(u),Object.assign(u,{qKeyEvent:l.qKeyEvent,qClickOutside:l.qClickOutside,qAnchorHandled:l.qAnchorHandled,qClonedBy:l.qClonedBy===void 0?[n.uid]:l.qClonedBy.concat(n.uid)}),n.initialEvent={target:l.target,event:u}}re(l)}const{left:a,top:s}=me(l);n.event={x:a,y:s,time:Date.now(),mouse:r===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:s}},move(l){if(n.event===void 0)return;const r=me(l),a=r.left-n.event.x,s=r.top-n.event.y;if(a===0&&s===0)return;n.lastEvt=l;const u=n.event.mouse===!0,d=()=>{i(l,u);let c;o.preserveCursor!==!0&&o.preservecursor!==!0&&(c=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),u===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ee(),n.styleCleanup=f=>{if(n.styleCleanup=void 0,c!==void 0&&(document.documentElement.style.cursor=c),document.body.classList.remove("non-selectable"),u===!0){const w=()=>{document.body.classList.remove("no-pointer-events--children")};f!==void 0?setTimeout(()=>{w(),f()},50):w()}else f!==void 0&&f()}};if(n.event.detected===!0){n.event.isFirst!==!0&&i(l,n.event.mouse);const{payload:c,synthetic:f}=ce(l,n,!1);c!==void 0&&(n.handler(c)===!1?n.end(l):(n.styleCleanup===void 0&&n.event.isFirst===!0&&d(),n.event.lastX=c.position.left,n.event.lastY=c.position.top,n.event.lastDir=f===!0?void 0:c.direction,n.event.isFirst=!1));return}if(n.direction.all===!0||u===!0&&(n.modifiers.mouseAllDir===!0||n.modifiers.mousealldir===!0)){d(),n.event.detected=!0,n.move(l);return}const m=Math.abs(a),g=Math.abs(s);m!==g&&(n.direction.horizontal===!0&&m>g||n.direction.vertical===!0&&m0||n.direction.left===!0&&m>g&&a<0||n.direction.right===!0&&m>g&&a>0?(n.event.detected=!0,n.move(l)):n.end(l,!0))},end(l,r){if(n.event!==void 0){if(F(n,"temp"),E.is.firefox===!0&&le(e,!1),r===!0)n.styleCleanup?.(),n.event.detected!==!0&&n.initialEvent!==void 0&&n.initialEvent.target.dispatchEvent(n.initialEvent.event);else if(n.event.detected===!0){n.event.isFirst===!0&&n.handler(ce(l===void 0?n.lastEvt:l,n).payload);const{payload:a}=ce(l===void 0?n.lastEvt:l,n,!0),s=()=>{n.handler(a)};n.styleCleanup!==void 0?n.styleCleanup(s):s()}n.event=void 0,n.initialEvent=void 0,n.lastEvt=void 0}}};if(e.__qtouchpan=n,o.mouse===!0){const l=o.mouseCapture===!0||o.mousecapture===!0?"Capture":"";z(n,"main",[[e,"mousedown","mouseStart",`passive${l}`]])}E.has.touch===!0&&z(n,"main",[[e,"touchstart","touchStart",`passive${o.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,t){const o=e.__qtouchpan;o!==void 0&&(t.oldValue!==t.value&&(typeof value!="function"&&o.end(),o.handler=t.value),o.direction=We(t.modifiers))},beforeUnmount(e){const t=e.__qtouchpan;t!==void 0&&(t.event!==void 0&&t.end(),F(t,"main"),F(t,"temp"),E.is.firefox===!0&&le(e,!1),t.styleCleanup?.(),delete e.__qtouchpan)}});function Tn(e,t,o){return o<=t?t:Math.min(o,Math.max(t,e))}function xn(e,t,o){if(o<=t)return t;const i=o-t+1;let n=t+(e-t)%i;return n{e.value===!0&&n()}),{removeFromHistory:n,addToHistory(){i={condition:()=>o.value===!0,handler:t},Le.add(i)}}}let N=0,de,fe,X,ve=!1,Oe,Ve,De,A=null;function nn(e){on(e)&&oe(e)}function on(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=xt(e),o=e.shiftKey&&!e.deltaX,i=!o&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),n=o||i?e.deltaY:e.deltaX;for(let l=0;l0&&r.scrollTop+r.clientHeight===r.scrollHeight:n<0&&r.scrollLeft===0?!0:n>0&&r.scrollLeft+r.clientWidth===r.scrollWidth}return!0}function Fe(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function G(e){ve!==!0&&(ve=!0,requestAnimationFrame(()=>{ve=!1;const{height:t}=e.target,{clientHeight:o,scrollTop:i}=document.scrollingElement;(X===void 0||t!==window.innerHeight)&&(X=o-t,document.scrollingElement.scrollTop=i),i>X&&(document.scrollingElement.scrollTop-=Math.ceil((i-X)/8))}))}function Qe(e){const t=document.body,o=window.visualViewport!==void 0;if(e==="add"){const{overflowY:i,overflowX:n}=window.getComputedStyle(t);de=Ge(window),fe=Ke(window),Oe=t.style.left,Ve=t.style.top,De=window.location.href,t.style.left=`-${de}px`,t.style.top=`-${fe}px`,n!=="hidden"&&(n==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),i!=="hidden"&&(i==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,E.is.ios===!0&&(o===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",G,q.passiveCapture),window.visualViewport.addEventListener("scroll",G,q.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Fe,q.passiveCapture))}E.is.desktop===!0&&E.is.mac===!0&&window[`${e}EventListener`]("wheel",nn,q.notPassive),e==="remove"&&(E.is.ios===!0&&(o===!0?(window.visualViewport.removeEventListener("resize",G,q.passiveCapture),window.visualViewport.removeEventListener("scroll",G,q.passiveCapture)):window.removeEventListener("scroll",Fe,q.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=Oe,t.style.top=Ve,window.location.href===De&&window.scrollTo(de,fe),X=void 0)}function ln(e){let t="add";if(e===!0){if(N++,A!==null){clearTimeout(A),A=null;return}if(N>1)return}else{if(N===0||(N--,N>0))return;if(t="remove",E.is.ios===!0&&E.is.nativeMobile===!0){A!==null&&clearTimeout(A),A=setTimeout(()=>{Qe(t),A=null},100);return}}Qe(t)}function Cn(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,ln(t))}}}function Ln(){return St(Ct)}const Pn=(e,t)=>{const o=e.__vccOpts||e;for(const[i,n]of t)o[i]=n;return o};export{ee as A,Ae as B,It as C,Be as D,se as E,fn as F,Vt as G,Ht as H,kt as I,Ot as J,ze as K,Yt as L,He as M,_t as N,et as O,vn as P,an as Q,hn as R,pn as S,En as T,mn as U,xn as V,Pn as _,Ke as a,Ge as b,we as c,Tn as d,bn as e,gn as f,jt as g,$t as h,Mt as i,Ft as j,Bt as k,Sn as l,Cn as m,Nt as n,Ln as o,qn as p,un as q,sn as r,Qt as s,cn as t,be as u,dn as v,yn as w,wn as x,Dt as y,We as z}; diff --git a/packages/modules/web_themes/koala/web/assets/index-DQS_YrrO.js b/packages/modules/web_themes/koala/web/assets/index-BffAdZ7B.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/index-DQS_YrrO.js rename to packages/modules/web_themes/koala/web/assets/index-BffAdZ7B.js index 3de36f4e9c..704255b194 100644 --- a/packages/modules/web_themes/koala/web/assets/index-DQS_YrrO.js +++ b/packages/modules/web_themes/koala/web/assets/index-BffAdZ7B.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-BMuAZADJ.js","assets/_plugin-vue_export-helper-aCm0_6bg.js","assets/MainLayout-laRNFXea.css","assets/IndexPage-Bex5YD_j.js","assets/mqtt-store-N-bUJWDJ.js","assets/IndexPage-Ckkw4D5a.css","assets/store-init-WQ5XFokr.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-jx0u-kTA.js","assets/_plugin-vue_export-helper-UW32PSUV.js","assets/MainLayout-GpfoR3E8.css","assets/IndexPage-DZdkjiJs.js","assets/mqtt-store-2RAlxljy.js","assets/IndexPage-h6LZXkns.css","assets/store-init-B2y2b7C6.js"])))=>i.map(i=>d[i]); const Oa=(function(){const t=typeof document<"u"&&document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"})(),Ma=function(e){return"/openWB/web/themes/koala/"+e},si={},Wn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(c=>Promise.resolve(c).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),a=l?.nonce||l?.getAttribute("nonce");s=o(n.map(u=>{if(u=Ma(u),u in si)return;si[u]=!0;const c=u.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Oa,c||(d.as="script"),d.crossOrigin="",d.href=u,a&&d.setAttribute("nonce",a),document.head.appendChild(d),c)return new Promise((g,v)=>{d.addEventListener("load",g),d.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};/** * @vue/shared v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -23,4 +23,4 @@ const Oa=(function(){const t=typeof document<"u"&&document.createElement("link") * vue-router v4.5.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */const Jt=typeof document<"u";function la(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Kf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&la(e.default)}const ie=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ve(s)?s.map(e):e(s)}return n}const En=()=>{},Ve=Array.isArray,aa=/#/g,Uf=/&/g,Wf=/\//g,Gf=/=/g,Qf=/\?/g,ca=/\+/g,Jf=/%5B/g,Yf=/%5D/g,ua=/%5E/g,Zf=/%60/g,fa=/%7B/g,Xf=/%7C/g,da=/%7D/g,ed=/%20/g;function Js(e){return encodeURI(""+e).replace(Xf,"|").replace(Jf,"[").replace(Yf,"]")}function td(e){return Js(e).replace(fa,"{").replace(da,"}").replace(ua,"^")}function Rs(e){return Js(e).replace(ca,"%2B").replace(ed,"+").replace(aa,"%23").replace(Uf,"%26").replace(Zf,"`").replace(fa,"{").replace(da,"}").replace(ua,"^")}function nd(e){return Rs(e).replace(Gf,"%3D")}function rd(e){return Js(e).replace(aa,"%23").replace(Qf,"%3F")}function sd(e){return e==null?"":rd(e).replace(Wf,"%2F")}function $n(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const id=/\/$/,od=e=>e.replace(id,"");function ts(e,t,n="/"){let r,s={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),i=t.slice(a+1,l>-1?l:t.length),s=e(i)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=ud(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:$n(o)}}function ld(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ad(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&nn(t.matched[r],n.matched[s])&&ha(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function nn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ha(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!cd(e[n],t[n]))return!1;return!0}function cd(e,t){return Ve(e)?Ji(e,t):Ve(t)?Ji(t,e):e===t}function Ji(e,t){return Ve(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function ud(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Nn;(function(e){e.pop="pop",e.push="push"})(Nn||(Nn={}));var Cn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Cn||(Cn={}));function fd(e){if(!e)if(Jt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),od(e)}const dd=/^[^#]+#/;function hd(e,t){return e.replace(dd,"#")+t}function pd(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const jr=()=>({left:window.scrollX,top:window.scrollY});function gd(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=pd(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}const Ps=new Map;function md(e,t){Ps.set(e,t)}function vd(e){const t=Ps.get(e);return Ps.delete(e),t}let yd=()=>location.protocol+"//"+location.host;function pa(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let l=s.includes(e.slice(i))?e.slice(i).length:1,a=s.slice(l);return a[0]!=="/"&&(a="/"+a),Qi(a,"")}return Qi(n,e)+r+s}function _d(e,t,n,r){let s=[],i=[],o=null;const l=({state:d})=>{const g=pa(e,location),v=n.value,S=t.value;let k=0;if(d){if(n.value=g,t.value=d,o&&o===v){o=null;return}k=S?d.position-S.position:0}else r(g);s.forEach(O=>{O(n.value,v,{delta:k,type:Nn.pop,direction:k?k>0?Cn.forward:Cn.back:Cn.unknown})})};function a(){o=n.value}function u(d){s.push(d);const g=()=>{const v=s.indexOf(d);v>-1&&s.splice(v,1)};return i.push(g),g}function c(){const{history:d}=window;d.state&&d.replaceState(ie({},d.state,{scroll:jr()}),"")}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:a,listen:u,destroy:f}}function Zi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?jr():null}}function bd(e){const{history:t,location:n}=window,r={value:pa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:yd()+e+a;try{t[c?"replaceState":"pushState"](u,"",d),s.value=u}catch(g){console.error(g),n[c?"replace":"assign"](d)}}function o(a,u){const c=ie({},t.state,Zi(s.value.back,a,s.value.forward,!0),u,{position:s.value.position});i(a,c,!0),r.value=a}function l(a,u){const c=ie({},s.value,t.state,{forward:a,scroll:jr()});i(c.current,c,!0);const f=ie({},Zi(r.value,a,null),{position:c.position+1},u);i(a,f,!1),r.value=a}return{location:r,state:s,push:l,replace:o}}function wd(e){e=fd(e);const t=bd(e),n=_d(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=ie({location:"",base:e,go:r,createHref:hd.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function xd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),wd(e)}function Sd(e){return typeof e=="string"||e&&typeof e=="object"}function ga(e){return typeof e=="string"||typeof e=="symbol"}const ma=Symbol("");var Xi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Xi||(Xi={}));function rn(e,t){return ie(new Error,{type:e,[ma]:!0},t)}function nt(e,t){return e instanceof Error&&ma in e&&(t==null||!!(e.type&t))}const eo="[^/]+?",Ed={sensitive:!1,strict:!1,start:!0,end:!0},Cd=/[.+*?^${}()[\]/\\]/g;function Rd(e,t){const n=ie({},Ed,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function va(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Td={type:0,value:""},kd=/[a-zA-Z0-9_]/;function Ad(e){if(!e)return[[]];if(e==="/")return[[Td]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${u}": ${g}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let l=0,a,u="",c="";function f(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=a}for(;l{o(C)}:En}function o(f){if(ga(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const d=Nd(f,n);n.splice(d,0,f),f.record.name&&!so(f)&&r.set(f.record.name,f)}function u(f,d){let g,v={},S,k;if("name"in f&&f.name){if(g=r.get(f.name),!g)throw rn(1,{location:f});k=g.record.name,v=ie(no(d.params,g.keys.filter(C=>!C.optional).concat(g.parent?g.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&no(f.params,g.keys.map(C=>C.name))),S=g.stringify(v)}else if(f.path!=null)S=f.path,g=n.find(C=>C.re.test(S)),g&&(v=g.parse(S),k=g.record.name);else{if(g=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!g)throw rn(1,{location:f,currentLocation:d});k=g.record.name,v=ie({},d.params,f.params),S=g.stringify(v)}const O=[];let x=g;for(;x;)O.unshift(x.record),x=x.parent;return{name:k,path:S,params:v,matched:O,meta:$d(O)}}e.forEach(f=>i(f));function c(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function no(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ro(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ld(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ld(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function so(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function $d(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function io(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Nd(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;va(e,t[i])<0?r=i:n=i+1}const s=Id(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Id(e){let t=e;for(;t=t.parent;)if(ya(t)&&va(e,t)===0)return t}function ya({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jd(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;si&&Rs(i)):[r&&Rs(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Fd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ve(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Dd=Symbol(""),lo=Symbol(""),Ys=Symbol(""),_a=Symbol(""),Ts=Symbol("");function cn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function bt(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const u=d=>{d===!1?a(rn(4,{from:n,to:t})):d instanceof Error?a(d):Sd(d)?a(rn(2,{from:t,to:d})):(o&&r.enterCallbacks[s]===o&&typeof d=="function"&&o.push(d),l())},c=i(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>a(d))})}function ns(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(la(a)){const c=(a.__vccOpts||a)[t];c&&i.push(bt(c,n,r,o,l,s))}else{let u=a();i.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Kf(c)?c.default:c;o.mods[l]=c,o.components[l]=f;const g=(f.__vccOpts||f)[t];return g&&bt(g,n,r,o,l,s)()}))}}return i}function ao(e){const t=Ze(Ys),n=Ze(_a),r=Q(()=>{const a=Ot(e.to);return t.resolve(a)}),s=Q(()=>{const{matched:a}=r.value,{length:u}=a,c=a[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(nn.bind(null,c));if(d>-1)return d;const g=co(a[u-2]);return u>1&&co(c)===g&&f[f.length-1].path!==g?f.findIndex(nn.bind(null,a[u-2])):d}),i=Q(()=>s.value>-1&&zd(n.params,r.value.params)),o=Q(()=>s.value>-1&&s.value===n.matched.length-1&&ha(n.params,r.value.params));function l(a={}){if(Vd(a)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(En);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Q(()=>r.value.href),isActive:i,isExactActive:o,navigate:l}}function qd(e){return e.length===1?e[0]:e}const Bd=Rr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ao,setup(e,{slots:t}){const n=Dt(ao(e)),{options:r}=Ze(Ys),s=Q(()=>({[uo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&qd(t.default(n));return e.custom?i:G("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),Hd=Bd;function Vd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function zd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Ve(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function co(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uo=(e,t,n)=>e??t??n,Kd=Rr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ze(Ts),s=Q(()=>e.route||r.value),i=Ze(lo,0),o=Q(()=>{let u=Ot(i);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),l=Q(()=>s.value.matched[o.value]);Qn(lo,Q(()=>o.value+1)),Qn(Dd,l),Qn(Ts,s);const a=Nt();return $t(()=>[a.value,l.value,e.name],([u,c,f],[d,g,v])=>{c&&(c.instances[f]=u,g&&g!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=g.leaveGuards),c.updateGuards.size||(c.updateGuards=g.updateGuards))),u&&c&&(!g||!nn(c,g)||!d)&&(c.enterCallbacks[f]||[]).forEach(S=>S(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=l.value,d=f&&f.components[c];if(!d)return fo(n.default,{Component:d,route:u});const g=f.props[c],v=g?g===!0?u.params:typeof g=="function"?g(u):g:null,k=G(d,ie({},v,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[c]=null)},ref:a}));return fo(n.default,{Component:k,route:u})||k}}});function fo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ud=Kd;function Wd(e){const t=Md(e.routes,e),n=e.parseQuery||jd,r=e.stringifyQuery||oo,s=e.history,i=cn(),o=cn(),l=cn(),a=Go(ht);let u=ht;Jt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=es.bind(null,b=>""+b),f=es.bind(null,sd),d=es.bind(null,$n);function g(b,D){let N,V;return ga(b)?(N=t.getRecordMatcher(b),V=D):V=b,t.addRoute(V,N)}function v(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function S(){return t.getRoutes().map(b=>b.record)}function k(b){return!!t.getRecordMatcher(b)}function O(b,D){if(D=ie({},D||a.value),typeof b=="string"){const m=ts(n,b,D.path),_=t.resolve({path:m.path},D),E=s.createHref(m.fullPath);return ie(m,_,{params:d(_.params),hash:$n(m.hash),redirectedFrom:void 0,href:E})}let N;if(b.path!=null)N=ie({},b,{path:ts(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];N=ie({},b,{params:f(m)}),D.params=f(D.params)}const V=t.resolve(N,D),ce=b.hash||"";V.params=c(d(V.params));const h=ld(r,ie({},b,{hash:td(ce),path:V.path})),p=s.createHref(h);return ie({fullPath:h,hash:ce,query:r===oo?Fd(b.query):b.query||{}},V,{redirectedFrom:void 0,href:p})}function x(b){return typeof b=="string"?ts(n,b,a.value.path):ie({},b)}function C(b,D){if(u!==b)return rn(8,{from:D,to:b})}function y(b){return q(b)}function T(b){return y(ie(x(b),{replace:!0}))}function H(b){const D=b.matched[b.matched.length-1];if(D&&D.redirect){const{redirect:N}=D;let V=typeof N=="function"?N(b):N;return typeof V=="string"&&(V=V.includes("?")||V.includes("#")?V=x(V):{path:V},V.params={}),ie({query:b.query,hash:b.hash,params:V.path!=null?{}:b.params},V)}}function q(b,D){const N=u=O(b),V=a.value,ce=b.state,h=b.force,p=b.replace===!0,m=H(N);if(m)return q(ie(x(m),{state:typeof m=="object"?ie({},ce,m.state):ce,force:h,replace:p}),D||N);const _=N;_.redirectedFrom=D;let E;return!h&&ad(r,V,N)&&(E=rn(16,{to:_,from:V}),Ke(V,V,!0,!1)),(E?Promise.resolve(E):B(_,V)).catch(w=>nt(w)?nt(w,2)?w:ft(w):se(w,_,V)).then(w=>{if(w){if(nt(w,2))return q(ie({replace:p},x(w.to),{state:typeof w.to=="object"?ie({},ce,w.to.state):ce,force:h}),D||_)}else w=L(_,V,!0,p,ce);return U(_,V,w),w})}function F(b,D){const N=C(b,D);return N?Promise.reject(N):Promise.resolve()}function R(b){const D=Ht.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function B(b,D){let N;const[V,ce,h]=Gd(b,D);N=ns(V.reverse(),"beforeRouteLeave",b,D);for(const m of V)m.leaveGuards.forEach(_=>{N.push(bt(_,b,D))});const p=F.bind(null,b,D);return N.push(p),Le(N).then(()=>{N=[];for(const m of i.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).then(()=>{N=ns(ce,"beforeRouteUpdate",b,D);for(const m of ce)m.updateGuards.forEach(_=>{N.push(bt(_,b,D))});return N.push(p),Le(N)}).then(()=>{N=[];for(const m of h)if(m.beforeEnter)if(Ve(m.beforeEnter))for(const _ of m.beforeEnter)N.push(bt(_,b,D));else N.push(bt(m.beforeEnter,b,D));return N.push(p),Le(N)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),N=ns(h,"beforeRouteEnter",b,D,R),N.push(p),Le(N))).then(()=>{N=[];for(const m of o.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).catch(m=>nt(m,8)?m:Promise.reject(m))}function U(b,D,N){l.list().forEach(V=>R(()=>V(b,D,N)))}function L(b,D,N,V,ce){const h=C(b,D);if(h)return h;const p=D===ht,m=Jt?history.state:{};N&&(V||p?s.replace(b.fullPath,ie({scroll:p&&m&&m.scroll},ce)):s.push(b.fullPath,ce)),a.value=b,Ke(b,D,N,p),ft()}let X;function j(){X||(X=s.listen((b,D,N)=>{if(!qn.listening)return;const V=O(b),ce=H(V);if(ce){q(ie(ce,{replace:!0,force:!0}),V).catch(En);return}u=V;const h=a.value;Jt&&md(Yi(h.fullPath,N.delta),jr()),B(V,h).catch(p=>nt(p,12)?p:nt(p,2)?(q(ie(x(p.to),{force:!0}),V).then(m=>{nt(m,20)&&!N.delta&&N.type===Nn.pop&&s.go(-1,!1)}).catch(En),Promise.reject()):(N.delta&&s.go(-N.delta,!1),se(p,V,h))).then(p=>{p=p||L(V,h,!1),p&&(N.delta&&!nt(p,8)?s.go(-N.delta,!1):N.type===Nn.pop&&nt(p,20)&&s.go(-1,!1)),U(V,h,p)}).catch(En)}))}let ee=cn(),re=cn(),Z;function se(b,D,N){ft(b);const V=re.list();return V.length?V.forEach(ce=>ce(b,D,N)):console.error(b),Promise.reject(b)}function et(){return Z&&a.value!==ht?Promise.resolve():new Promise((b,D)=>{ee.add([b,D])})}function ft(b){return Z||(Z=!b,j(),ee.list().forEach(([D,N])=>b?N(b):D()),ee.reset()),b}function Ke(b,D,N,V){const{scrollBehavior:ce}=e;if(!Jt||!ce)return Promise.resolve();const h=!N&&vd(Yi(b.fullPath,0))||(V||!N)&&history.state&&history.state.scroll||null;return Bs().then(()=>ce(b,D,h)).then(p=>p&&gd(p)).catch(p=>se(p,b,D))}const Te=b=>s.go(b);let Bt;const Ht=new Set,qn={currentRoute:a,listening:!0,addRoute:g,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:S,resolve:O,options:e,push:y,replace:T,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:re.add,isReady:et,install(b){const D=this;b.component("RouterLink",Hd),b.component("RouterView",Ud),b.config.globalProperties.$router=D,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(a)}),Jt&&!Bt&&a.value===ht&&(Bt=!0,y(s.location).catch(ce=>{}));const N={};for(const ce in ht)Object.defineProperty(N,ce,{get:()=>a.value[ce],enumerable:!0});b.provide(Ys,D),b.provide(_a,Uo(N)),b.provide(Ts,a);const V=b.unmount;Ht.add(b),b.unmount=function(){Ht.delete(b),Ht.size<1&&(u=ht,X&&X(),X=null,a.value=ht,Bt=!1,Z=!1),V()}}};function Le(b){return b.reduce((D,N)=>D.then(()=>R(N)),Promise.resolve())}return qn}function Gd(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;onn(u,l))?r.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(u=>nn(u,a))||s.push(a))}return[n,r,s]}const Qd=[{path:"/",component:()=>Wn(()=>import("./MainLayout-BMuAZADJ.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-Bex5YD_j.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-Bhkm54zb.js"),[])}],rs=function(){return Wd({scrollBehavior:()=>({left:0,top:0}),routes:Qd,history:xd("/openWB/web/themes/koala/")})};async function Jd(e,t){const n=e(Ff);n.use(jf,t);const r=typeof Xr=="function"?await Xr({}):Xr;n.use(r);const s=qt(typeof rs=="function"?await rs({store:r}):rs);return r.use(({store:i})=>{i.router=s}),{app:n,store:r,router:s}}const Yd={isoName:"de-DE",nativeName:"Deutsch (DE)",label:{clear:"Leeren",ok:"Ok",cancel:"Abbrechen",close:"Schließen",set:"Setzen",select:"Auswählen",reset:"Zurücksetzen",remove:"Löschen",update:"Aktualisieren",create:"Erstellen",search:"Suche",filter:"Filter",refresh:"Aktualisieren",expand:e=>e?`Erweitern Sie "${e}"`:"Erweitern",collapse:e=>e?`"${e}" minimieren`:"Zusammenbruch"},date:{days:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),daysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan_Feb_März_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez".split("_"),firstDayOfWeek:1,format24h:!0,pluralDay:"Tage",prevMonth:"Vorheriger Monat",nextMonth:"Nächster Monat",prevYear:"Vorheriges Jahr",nextYear:"Nächstes Jahr",today:"Heute",prevRangeYears:e=>`Vorherige ${e} Jahre`,nextRangeYears:e=>`Nächste ${e} Jahre`},table:{noData:"Keine Daten vorhanden.",noResults:"Keine Einträge gefunden",loading:"Lade...",selectedRecords:e=>e>1?e+" ausgewählte Zeilen":(e===0?"Keine":"1")+" ausgewählt.",recordsPerPage:"Zeilen pro Seite",allRows:"Alle",pagination:(e,t,n)=>e+"-"+t+" von "+n,columns:"Spalten"},pagination:{first:"Erste Seite",prev:"Vorherige Seite",next:"Nächste Seite",last:"Letzte Seite"},editor:{url:"URL",bold:"Fett",italic:"Kursiv",strikethrough:"Durchgestrichen",underline:"Unterstrichen",unorderedList:"Ungeordnete Liste",orderedList:"Geordnete Liste",subscript:"tiefgestellt",superscript:"hochgestellt",hyperlink:"Link",toggleFullscreen:"Vollbild umschalten",quote:"Zitat",left:"linksbündig",center:"zentriert",right:"rechtsbündig",justify:"Ausrichten",print:"Drucken",outdent:"ausrücken",indent:"einrücken",removeFormat:"Entferne Formatierung",formatting:"Formatiere",fontSize:"Schriftgröße",align:"Ausrichten",hr:"Horizontale Linie einfügen",undo:"Rückgänging",redo:"Wiederherstellen",heading1:"Überschrift 1",heading2:"Überschrift 2",heading3:"Überschrift 3",heading4:"Überschrift 4",heading5:"Überschrift 5",heading6:"Überschrift 6",paragraph:"Absatz",code:"Code",size1:"Sehr klein",size2:"klein",size3:"Normal",size4:"Groß",size5:"Größer",size6:"Sehr groß",size7:"Maximum",defaultFont:"Standard Schrift",viewSource:"Quelltext anzeigen"},tree:{noNodes:"Keine Knoten verfügbar",noResults:"Keine passenden Knoten gefunden"}},ks={xs:18,sm:24,md:32,lg:38,xl:46},Zs={size:String};function Xs(e,t=ks){return Q(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}function Zd(e,t){return e!==void 0&&e()||t}function gp(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function hn(e,t){return e!==void 0?t.concat(e()):t}function Xd(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function mp(e,t,n,r,s,i){t.key=r+s;const o=G(e,t,n);return s===!0?rl(o,i()):o}const ho="0 0 24 24",ss=e=>e,is=e=>`ionicons ${e}`,ba={"mdi-":e=>`mdi ${e}`,"icon-":ss,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":is,"ion-ios":is,"ion-logo":is,"iconfont ":ss,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":ss},wa={o_:"-outlined",r_:"-round",s_:"-sharp"},xa={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},eh=new RegExp("^("+Object.keys(ba).join("|")+")"),th=new RegExp("^("+Object.keys(wa).join("|")+")"),po=new RegExp("^("+Object.keys(xa).join("|")+")"),nh=/^[Mm]\s?[-+]?\.?\d/,rh=/^img:/,sh=/^svguse:/,ih=/^ion-/,oh=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,vr=Dn({name:"QIcon",props:{...Zs,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=ze(),r=Xs(e),s=Q(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=Q(()=>{let o,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const c=n.iconMapFn(l);if(c!==void 0)if(c.icon!==void 0){if(l=c.icon,l==="none"||!l)return{none:!0}}else return{cls:c.cls,content:c.content!==void 0?c.content:" "}}if(nh.test(l)===!0){const[c,f=ho]=l.split("|");return{svg:!0,viewBox:f,nodes:c.split("&&").map(d=>{const[g,v,S]=d.split("@@");return G("path",{style:v,d:g,transform:S})})}}if(rh.test(l)===!0)return{img:!0,src:l.substring(4)};if(sh.test(l)===!0){const[c,f=ho]=l.split("|");return{svguse:!0,src:c.substring(7),viewBox:f}}let a=" ";const u=l.match(eh);if(u!==null)o=ba[u[1]](l);else if(oh.test(l)===!0)o=l;else if(ih.test(l)===!0)o=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(po.test(l)===!0){o="notranslate material-symbols";const c=l.match(po);c!==null&&(l=l.substring(6),o+=xa[c[1]]),a=l}else{o="notranslate material-icons";const c=l.match(th);c!==null&&(l=l.substring(2),o+=wa[c[1]]),a=l}return{cls:o,content:a}});return()=>{const o={class:s.value,style:r.value,"aria-hidden":"true"};return i.value.none===!0?G(e.tag,o,Zd(t.default)):i.value.img===!0?G(e.tag,o,hn(t.default,[G("img",{src:i.value.src})])):i.value.svg===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox},[G("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(o.class+=" "+i.value.cls),G(e.tag,o,hn(t.default,[i.value.content])))}}}),lh=Dn({name:"QAvatar",props:{...Zs,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=Xs(e),r=Q(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),s=Q(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[G(vr,{name:e.icon})]:void 0;return G("div",{class:r.value,style:n.value},[G("div",{class:"q-avatar__content row flex-center overflow-hidden",style:s.value},Xd(t.default,i))])}}}),ah={size:{type:[String,Number],default:"1em"},color:String};function ch(e){return{cSize:Q(()=>e.size in ks?`${ks[e.size]}px`:e.size),classes:Q(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}const Sa=Dn({name:"QSpinner",props:{...ah,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=ch(e);return()=>G("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[G("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function uh(e,t){const n=e.style;for(const r in t)n[r]=t[r]}function vp(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=Ot(e);if(t)return t.$el||t}function yp(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}function fh(e,t=250){let n=!1,r;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),r=e.apply(this,arguments)),r}}function go(e,t,n,r){n.modifiers.stop===!0&&Zl(e);const s=n.modifiers.color;let i=n.modifiers.center;i=i===!0||r===!0;const o=document.createElement("span"),l=document.createElement("span"),a=gf(e),{left:u,top:c,width:f,height:d}=t.getBoundingClientRect(),g=Math.sqrt(f*f+d*d),v=g/2,S=`${(f-g)/2}px`,k=i?S:`${a.left-u-v}px`,O=`${(d-g)/2}px`,x=i?O:`${a.top-c-v}px`;l.className="q-ripple__inner",uh(l,{height:`${g}px`,width:`${g}px`,transform:`translate3d(${k},${x},0) scale3d(.2,.2,1)`,opacity:0}),o.className=`q-ripple${s?" text-"+s:""}`,o.setAttribute("dir","ltr"),o.appendChild(l),t.appendChild(o);const C=()=>{o.remove(),clearTimeout(y)};n.abort.push(C);let y=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${S},${O},0) scale3d(1,1,1)`,l.style.opacity=.2,y=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,y=setTimeout(()=>{o.remove(),n.abort.splice(n.abort.indexOf(C),1)},275)},250)},50)}function mo(e,{modifiers:t,value:n,arg:r}){const s=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:s.early===!0,stop:s.stop===!0,center:s.center===!0,color:s.color||r,keyCodes:[].concat(s.keyCodes||13)}}const dh=pf({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const r={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(s){r.enabled===!0&&s.qSkipRipple!==!0&&s.type===(r.modifiers.early===!0?"pointerdown":"click")&&go(s,e,r,s.qKeyEvent===!0)},keystart:fh(s=>{r.enabled===!0&&s.qSkipRipple!==!0&&Ss(s,r.modifiers.keyCodes)===!0&&s.type===`key${r.modifiers.early===!0?"down":"up"}`&&go(s,e,r,!0)},300)};mo(r,t),e.__qripple=r,mf(r,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&mo(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),vf(t,"main"),delete e._qripple)}}),Ea={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},hh=Object.keys(Ea),ph={align:{type:String,validator:e=>hh.includes(e)}};function gh(e){return Q(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${Ea[t]}`})}function _p(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ca(e,t){typeof t.type=="symbol"?Array.isArray(t.children)===!0&&t.children.forEach(n=>{Ca(e,n)}):e.add(t)}function bp(e){const t=new Set;return e.forEach(n=>{Ca(t,n)}),Array.from(t)}function mh(e){return e.appContext.config.globalProperties.$router!==void 0}function wp(e){return e.isUnmounted===!0||e.isDeactivated===!0}function vo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function yo(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(Array.isArray(s)===!1||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function _o(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function yh(e,t){return Array.isArray(e)===!0?_o(e,t):Array.isArray(t)===!0?_o(t,e):e===t}function _h(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(yh(e[n],t[n])===!1)return!1;return!0}const Ra={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},xp={...Ra,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"}};function bh({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=ze(),{props:r,proxy:s,emit:i}=n,o=mh(n),l=Q(()=>r.disable!==!0&&r.href!==void 0),a=Q(t===!0?()=>o===!0&&r.disable!==!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!=="":()=>o===!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!==""),u=Q(()=>a.value===!0?x(r.to):null),c=Q(()=>u.value!==null),f=Q(()=>l.value===!0||c.value===!0),d=Q(()=>r.type==="a"||f.value===!0?"a":r.tag||e||"div"),g=Q(()=>l.value===!0?{href:r.href,target:r.target}:c.value===!0?{href:u.value.href,target:r.target}:{}),v=Q(()=>{if(c.value===!1)return-1;const{matched:T}=u.value,{length:H}=T,q=T[H-1];if(q===void 0)return-1;const F=s.$route.matched;if(F.length===0)return-1;const R=F.findIndex(yo.bind(null,q));if(R!==-1)return R;const B=vo(T[H-2]);return H>1&&vo(q)===B&&F[F.length-1].path!==B?F.findIndex(yo.bind(null,T[H-2])):R}),S=Q(()=>c.value===!0&&v.value!==-1&&vh(s.$route.params,u.value.params)),k=Q(()=>S.value===!0&&v.value===s.$route.matched.length-1&&_h(s.$route.params,u.value.params)),O=Q(()=>c.value===!0?k.value===!0?` ${r.exactActiveClass} ${r.activeClass}`:r.exact===!0?"":S.value===!0?` ${r.activeClass}`:"":"");function x(T){try{return s.$router.resolve(T)}catch{}return null}function C(T,{returnRouterError:H,to:q=r.to,replace:F=r.replace}={}){if(r.disable===!0)return T.preventDefault(),Promise.resolve(!1);if(T.metaKey||T.altKey||T.ctrlKey||T.shiftKey||T.button!==void 0&&T.button!==0||r.target==="_blank")return Promise.resolve(!1);T.preventDefault();const R=s.$router[F===!0?"replace":"push"](q);return H===!0?R:R.then(()=>{}).catch(()=>{})}function y(T){if(c.value===!0){const H=q=>C(T,q);i("click",T,H),T.defaultPrevented!==!0&&H()}else i("click",T)}return{hasRouterLink:c,hasHrefLink:l,hasLink:f,linkTag:d,resolvedLink:u,linkIsActive:S,linkIsExactActive:k,linkClass:O,linkAttrs:g,getLink:x,navigateToRouterLink:C,navigateOnClick:y}}const bo={none:0,xs:4,sm:8,md:16,lg:24,xl:32},wh={xs:8,sm:10,md:14,lg:20,xl:24},xh=["button","submit","reset"],Sh=/[^\s]\/[^\s]/,Eh=["flat","outline","push","unelevated"];function Pa(e,t){return e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t}function Sp(e){const t=Pa(e);return t!==void 0?{[t]:!0}:{}}const Ch={...Zs,...Ra,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...Eh.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...ph.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},Rh={...Ch,round:Boolean};function Ph(e){const t=Xs(e,wh),n=gh(e),{hasRouterLink:r,hasLink:s,linkTag:i,linkAttrs:o,navigateOnClick:l}=bh({fallbackTag:"button"}),a=Q(()=>{const k=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},k,{padding:e.padding.split(/\s+/).map(O=>O in bo?bo[O]+"px":O).join(" "),minWidth:"0",minHeight:"0"}):k}),u=Q(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),c=Q(()=>e.disable!==!0&&e.loading!==!0),f=Q(()=>c.value===!0?e.tabindex||0:-1),d=Q(()=>Pa(e,"standard")),g=Q(()=>{const k={tabindex:f.value};return s.value===!0?Object.assign(k,o.value):xh.includes(e.type)===!0&&(k.type=e.type),i.value==="a"?(e.disable===!0?k["aria-disabled"]="true":k.href===void 0&&(k.role="button"),r.value!==!0&&Sh.test(e.type)===!0&&(k.type=e.type)):e.disable===!0&&(k.disabled="",k["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(k,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),k}),v=Q(()=>{let k;e.color!==void 0?e.flat===!0||e.outline===!0?k=`text-${e.textColor||e.color}`:k=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(k=`text-${e.textColor}`);const O=e.round===!0?"round":`rectangle${u.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${d.value} q-btn--${O}`+(k!==void 0?" "+k:"")+(c.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),S=Q(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:v,style:a,innerClasses:S,attributes:g,hasLink:s,linkTag:i,navigateOnClick:l,isActionable:c}}const{passiveCapture:Ne}=jt;let Ut=null,Wt=null,Gt=null;const Th=Dn({name:"QBtn",props:{...Rh,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:r}=ze(),{classes:s,style:i,innerClasses:o,attributes:l,hasLink:a,linkTag:u,navigateOnClick:c,isActionable:f}=Ph(e),d=Nt(null),g=Nt(null);let v=null,S,k=null;const O=Q(()=>e.label!==void 0&&e.label!==null&&e.label!==""),x=Q(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),C=Q(()=>({center:e.round})),y=Q(()=>{const j=Math.max(0,Math.min(100,e.percentage));return j>0?{transition:"transform 0.6s",transform:`translateX(${j-100}%)`}:{}}),T=Q(()=>{if(e.loading===!0)return{onMousedown:X,onTouchstart:X,onClick:X,onKeydown:X,onKeyup:X};if(f.value===!0){const j={onClick:q,onKeydown:F,onMousedown:B};if(r.$q.platform.has.touch===!0){const ee=e.onTouchstart!==void 0?"":"Passive";j[`onTouchstart${ee}`]=R}return j}return{onClick:zt}}),H=Q(()=>({ref:d,class:"q-btn q-btn-item non-selectable no-outline "+s.value,style:i.value,...l.value,...T.value}));function q(j){if(d.value!==null){if(j!==void 0){if(j.defaultPrevented===!0)return;const ee=document.activeElement;if(e.type==="submit"&&ee!==document.body&&d.value.contains(ee)===!1&&ee.contains(d.value)===!1){j.qAvoidFocus!==!0&&d.value.focus();const re=()=>{document.removeEventListener("keydown",zt,!0),document.removeEventListener("keyup",re,Ne),d.value?.removeEventListener("blur",re,Ne)};document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",re,Ne),d.value.addEventListener("blur",re,Ne)}}c(j)}}function F(j){d.value!==null&&(n("keydown",j),Ss(j,[13,32])===!0&&Wt!==d.value&&(Wt!==null&&L(),j.defaultPrevented!==!0&&(j.qAvoidFocus!==!0&&d.value.focus(),Wt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("keyup",U,!0),d.value.addEventListener("blur",U,Ne)),zt(j)))}function R(j){d.value!==null&&(n("touchstart",j),j.defaultPrevented!==!0&&(Ut!==d.value&&(Ut!==null&&L(),Ut=d.value,v=j.target,v.addEventListener("touchcancel",U,Ne),v.addEventListener("touchend",U,Ne)),S=!0,k!==null&&clearTimeout(k),k=setTimeout(()=>{k=null,S=!1},200)))}function B(j){d.value!==null&&(j.qSkipRipple=S===!0,n("mousedown",j),j.defaultPrevented!==!0&&Gt!==d.value&&(Gt!==null&&L(),Gt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("mouseup",U,Ne)))}function U(j){if(d.value!==null&&!(j?.type==="blur"&&document.activeElement===d.value)){if(j?.type==="keyup"){if(Wt===d.value&&Ss(j,[13,32])===!0){const ee=new MouseEvent("click",j);ee.qKeyEvent=!0,j.defaultPrevented===!0&&xs(ee),j.cancelBubble===!0&&Zl(ee),d.value.dispatchEvent(ee),zt(j),j.qKeyEvent=!0}n("keyup",j)}L()}}function L(j){const ee=g.value;j!==!0&&(Ut===d.value||Gt===d.value)&&ee!==null&&ee!==document.activeElement&&(ee.setAttribute("tabindex",-1),ee.focus()),Ut===d.value&&(v!==null&&(v.removeEventListener("touchcancel",U,Ne),v.removeEventListener("touchend",U,Ne)),Ut=v=null),Gt===d.value&&(document.removeEventListener("mouseup",U,Ne),Gt=null),Wt===d.value&&(document.removeEventListener("keyup",U,!0),d.value?.removeEventListener("blur",U,Ne),Wt=null),d.value?.classList.remove("q-btn--active")}function X(j){zt(j),j.qSkipRipple=!0}return Ar(()=>{L(!0)}),Object.assign(r,{click:j=>{f.value===!0&&q(j)}}),()=>{let j=[];e.icon!==void 0&&j.push(G(vr,{name:e.icon,left:e.stack!==!0&&O.value===!0,role:"img"})),O.value===!0&&j.push(G("span",{class:"block"},[e.label])),j=hn(t.default,j),e.iconRight!==void 0&&e.round===!1&&j.push(G(vr,{name:e.iconRight,right:e.stack!==!0&&O.value===!0,role:"img"}));const ee=[G("span",{class:"q-focus-helper",ref:g})];return e.loading===!0&&e.percentage!==void 0&&ee.push(G("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[G("span",{class:"q-btn__progress-indicator fit block",style:y.value})])),ee.push(G("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+o.value},j)),e.loading!==null&&ee.push(G(Lu,{name:"q-transition--fade"},()=>e.loading===!0?[G("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[G(Sa)])]:null)),rl(G(u.value,H.value,ee),[[dh,x.value,void 0,C.value]])}}});let kh=1,Ah=document.body;function Oh(e,t){const n=document.createElement("div");if(n.id=t!==void 0?`q-portal--${t}--${kh++}`:e,mr.globalNodes!==void 0){const r=mr.globalNodes.class;r!==void 0&&(n.className=r)}return Ah.appendChild(n),n}function Ep(e){e.remove()}let Mh=0;const Xn={},er={},De={},Ta={},Lh=/^\s*$/,ka=[],$h=[void 0,null,!0,!1,""],ei=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Nh=["top-left","top-right","bottom-left","bottom-right"],pn={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function Aa(e,t,n){if(!e)return un("parameter required");let r;const s={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(s,Xn),Ln(e)===!1&&(s.type&&Object.assign(s,pn[s.type]),e={message:e}),Object.assign(s,pn[e.type||s.type],e),typeof s.icon=="function"&&(s.icon=s.icon(t)),s.spinner?(s.spinner===!0&&(s.spinner=Sa),s.spinner=qt(s.spinner)):s.spinner=!1,s.meta={hasMedia:!!(s.spinner!==!1||s.icon||s.avatar),hasText:wo(s.message)||wo(s.caption)},s.position){if(ei.includes(s.position)===!1)return un("wrong position",e)}else s.position="bottom";if($h.includes(s.timeout)===!0)s.timeout=5e3;else{const a=Number(s.timeout);if(isNaN(a)||a<0)return un("wrong timeout",e);s.timeout=Number.isFinite(a)?a:0}s.timeout===0?s.progress=!1:s.progress===!0&&(s.meta.progressClass="q-notification__progress"+(s.progressClass?` ${s.progressClass}`:""),s.meta.progressStyle={animationDuration:`${s.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(Xn.actions)===!0?Xn.actions:[]).concat(Array.isArray(pn[e.type]?.actions)===!0?pn[e.type].actions:[]),{closeBtn:o}=s;if(o&&i.push({label:typeof o=="string"?o:t.lang.label.close}),s.actions=i.map(({handler:a,noDismiss:u,...c})=>({flat:!0,...c,onClick:typeof a=="function"?()=>{a(),u!==!0&&l()}:()=>{l()}})),s.multiLine===void 0&&(s.multiLine=s.actions.length>1),Object.assign(s.meta,{class:`q-notification row items-stretch q-notification--${s.multiLine===!0?"multi-line":"standard"}`+(s.color!==void 0?` bg-${s.color}`:"")+(s.textColor!==void 0?` text-${s.textColor}`:"")+(s.classes!==void 0?` ${s.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(s.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(s.multiLine===!0?"":" col"),leftClass:s.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...s.attrs}}),s.group===!1?(s.group=void 0,s.meta.group=void 0):((s.group===void 0||s.group===!0)&&(s.group=[s.message,s.caption,s.multiline].concat(s.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),s.meta.group=s.group+"|"+s.position),s.actions.length===0?s.actions=void 0:s.meta.actionsClass="q-notification__actions row items-center "+(s.multiLine===!0?"justify-end":"col-auto")+(s.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){n.notif.meta.timer&&(clearTimeout(n.notif.meta.timer),n.notif.meta.timer=void 0),s.meta.uid=n.notif.meta.uid;const a=De[s.position].value.indexOf(n.notif);De[s.position].value[a]=s}else{const a=er[s.meta.group];if(a===void 0){if(s.meta.uid=Mh++,s.meta.badge=1,["left","right","center"].indexOf(s.position)!==-1)De[s.position].value.splice(Math.floor(De[s.position].value.length/2),0,s);else{const u=s.position.indexOf("top")!==-1?"unshift":"push";De[s.position].value[u](s)}s.group!==void 0&&(er[s.meta.group]=s)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),s.badgePosition!==void 0){if(Nh.includes(s.badgePosition)===!1)return un("wrong badgePosition",e)}else s.badgePosition=`top-${s.position.indexOf("left")!==-1?"right":"left"}`;s.meta.uid=a.meta.uid,s.meta.badge=a.meta.badge+1,s.meta.badgeClass=`q-notification__badge q-notification__badge--${s.badgePosition}`+(s.badgeColor!==void 0?` bg-${s.badgeColor}`:"")+(s.badgeTextColor!==void 0?` text-${s.badgeTextColor}`:"")+(s.badgeClass?` ${s.badgeClass}`:"");const u=De[s.position].value.indexOf(a);De[s.position].value[u]=er[s.meta.group]=s}}const l=()=>{Ih(s),r=void 0};if(s.timeout>0&&(s.meta.timer=setTimeout(()=>{s.meta.timer=void 0,l()},s.timeout+1e3)),s.group!==void 0)return a=>{a!==void 0?un("trying to update a grouped one which is forbidden",e):l()};if(r={dismiss:l,config:e,notif:s},n!==void 0){Object.assign(n,r);return}return a=>{if(r!==void 0)if(a===void 0)r.dismiss();else{const u=Object.assign({},r.config,a,{group:!1,position:s.position});Aa(u,t,r)}}}function Ih(e){e.meta.timer&&(clearTimeout(e.meta.timer),e.meta.timer=void 0);const t=De[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete er[e.meta.group];const n=ka[""+e.meta.uid];if(n){const{width:r,height:s}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=r,n.style.height=s}De[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function wo(e){return e!=null&&Lh.test(e)!==!0}function un(e,t){return console.error(`Notify: ${e}`,t),!1}function jh(){return Dn({name:"QNotifications",devtools:{hide:!0},setup(){return()=>G("div",{class:"q-notifications"},ei.map(e=>G(Zu,{key:e,class:Ta[e],tag:"div",name:`q-notification--${e}`},()=>De[e].value.map(t=>{const n=t.meta,r=[];if(n.hasMedia===!0&&(t.spinner!==!1?r.push(G(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?r.push(G(vr,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&r.push(G(lh,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>G("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const o={class:"q-notification__message col"};if(t.html===!0)o.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[G("div",l),G("div",{class:"q-notification__caption"},[t.caption])]:l}r.push(G("div",o,i))}const s=[G("div",{class:n.contentClass},r)];return t.progress===!0&&s.push(G("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&s.push(G("div",{class:n.actionsClass},t.actions.map(i=>G(Th,i)))),n.badge>1&&s.push(G("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),G("div",{ref:i=>{ka[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[G("div",{class:n.wrapperClass},s)])}))))}})}const Fh={setDefaults(e){Ln(e)===!0&&Object.assign(Xn,e)},registerType(e,t){Ln(t)===!0&&(pn[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>Aa(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){ei.forEach(r=>{De[r]=Nt([]);const s=["left","center","right"].includes(r)===!0?"center":r.indexOf("top")!==-1?"top":"bottom",i=r.indexOf("left")!==-1?"start":r.indexOf("right")!==-1?"end":"center",o=["left","right"].includes(r)?`items-${r==="left"?"start":"end"} justify-center`:r==="center"?"flex-center":`items-${i}`;Ta[r]=`q-notifications__list q-notifications__list--${s} fixed column no-wrap ${o}`});const n=Oh("q-notify");$f(jh(),t).mount(n)}}},Dh={config:{dark:"auto"},lang:Yd,plugins:{Notify:Fh}},qh="/openWB/web/themes/koala/";async function Bh({app:e,router:t,store:n},r){let s=!1;const i=a=>{try{return t.resolve(a).href}catch{}return Object(a)===a?null:a},o=a=>{if(s=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const u=i(a);u!==null&&(window.location.href=u,window.location.reload())},l=window.location.href.replace(window.location.origin,"");for(let a=0;s===!1&&a{const[t,n]=Promise.allSettled!==void 0?["allSettled",r=>r.map(s=>{if(s.status==="rejected"){console.error("[Quasar] boot error:",s.reason);return}return s.value.default})]:["all",r=>r.map(s=>s.default)];return Promise[t]([Wn(()=>import("./store-init-WQ5XFokr.js"),__vite__mapDeps([6,4]))]).then(r=>{const s=n(r).filter(i=>typeof i=="function");Bh(e,s)})});export{Af as $,Dt as A,Ks as B,Rr as C,Dc as D,ur as E,cr as F,Rc as G,Pe as H,_u as I,vr as J,cp as K,Ss as L,xf as M,zt as N,pf as O,vf as P,Th as Q,dh as R,Xe as S,ip as T,mf as U,gf as V,rp as W,Lu as X,bp as Y,Kh as Z,mh as _,Q as a,$c as a0,dp as a1,ep as a2,Yh as a3,jl as a4,Re as a5,Wh as a6,Sr as a7,Zh as a8,Wa as a9,Jh as aA,Gh as aB,Xh as aC,Hh as aD,yu as aE,bu as aF,ph as aG,gh as aH,pe as aI,ws as aJ,zh as aK,xp as aL,bh as aM,_p as aN,Vh as aO,Oh as aP,Ep as aQ,wp as aR,vp as aS,uh as aT,sp as aU,Mf as aV,Go as aa,Tu as ab,ne as ac,qs as ad,pp as ae,yp as af,Ch as ag,Sp as ah,Zl as ai,Ot as aj,Uh as ak,tp as al,Qh as am,gl as an,ap as ao,$r as ap,xs as aq,Sa as ar,Zs as as,Xs as at,Xd as au,Yr as av,zs as aw,fp as ax,Ln as ay,np as az,hp as b,Dn as c,Zd as d,up as e,gp as f,ze as g,G as h,Ze as i,rl as j,jt as k,op as l,kr as m,Mn as n,Ar as o,yf as p,Mc as q,Nt as r,Oc as s,hn as t,Bs as u,mp as v,$t as w,Qn as x,lp as y,It as z}; + */const Jt=typeof document<"u";function la(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Kf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&la(e.default)}const ie=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ve(s)?s.map(e):e(s)}return n}const En=()=>{},Ve=Array.isArray,aa=/#/g,Uf=/&/g,Wf=/\//g,Gf=/=/g,Qf=/\?/g,ca=/\+/g,Jf=/%5B/g,Yf=/%5D/g,ua=/%5E/g,Zf=/%60/g,fa=/%7B/g,Xf=/%7C/g,da=/%7D/g,ed=/%20/g;function Js(e){return encodeURI(""+e).replace(Xf,"|").replace(Jf,"[").replace(Yf,"]")}function td(e){return Js(e).replace(fa,"{").replace(da,"}").replace(ua,"^")}function Rs(e){return Js(e).replace(ca,"%2B").replace(ed,"+").replace(aa,"%23").replace(Uf,"%26").replace(Zf,"`").replace(fa,"{").replace(da,"}").replace(ua,"^")}function nd(e){return Rs(e).replace(Gf,"%3D")}function rd(e){return Js(e).replace(aa,"%23").replace(Qf,"%3F")}function sd(e){return e==null?"":rd(e).replace(Wf,"%2F")}function $n(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const id=/\/$/,od=e=>e.replace(id,"");function ts(e,t,n="/"){let r,s={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),i=t.slice(a+1,l>-1?l:t.length),s=e(i)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=ud(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:$n(o)}}function ld(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ad(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&nn(t.matched[r],n.matched[s])&&ha(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function nn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ha(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!cd(e[n],t[n]))return!1;return!0}function cd(e,t){return Ve(e)?Ji(e,t):Ve(t)?Ji(t,e):e===t}function Ji(e,t){return Ve(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function ud(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Nn;(function(e){e.pop="pop",e.push="push"})(Nn||(Nn={}));var Cn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Cn||(Cn={}));function fd(e){if(!e)if(Jt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),od(e)}const dd=/^[^#]+#/;function hd(e,t){return e.replace(dd,"#")+t}function pd(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const jr=()=>({left:window.scrollX,top:window.scrollY});function gd(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=pd(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}const Ps=new Map;function md(e,t){Ps.set(e,t)}function vd(e){const t=Ps.get(e);return Ps.delete(e),t}let yd=()=>location.protocol+"//"+location.host;function pa(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let l=s.includes(e.slice(i))?e.slice(i).length:1,a=s.slice(l);return a[0]!=="/"&&(a="/"+a),Qi(a,"")}return Qi(n,e)+r+s}function _d(e,t,n,r){let s=[],i=[],o=null;const l=({state:d})=>{const g=pa(e,location),v=n.value,S=t.value;let k=0;if(d){if(n.value=g,t.value=d,o&&o===v){o=null;return}k=S?d.position-S.position:0}else r(g);s.forEach(O=>{O(n.value,v,{delta:k,type:Nn.pop,direction:k?k>0?Cn.forward:Cn.back:Cn.unknown})})};function a(){o=n.value}function u(d){s.push(d);const g=()=>{const v=s.indexOf(d);v>-1&&s.splice(v,1)};return i.push(g),g}function c(){const{history:d}=window;d.state&&d.replaceState(ie({},d.state,{scroll:jr()}),"")}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:a,listen:u,destroy:f}}function Zi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?jr():null}}function bd(e){const{history:t,location:n}=window,r={value:pa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:yd()+e+a;try{t[c?"replaceState":"pushState"](u,"",d),s.value=u}catch(g){console.error(g),n[c?"replace":"assign"](d)}}function o(a,u){const c=ie({},t.state,Zi(s.value.back,a,s.value.forward,!0),u,{position:s.value.position});i(a,c,!0),r.value=a}function l(a,u){const c=ie({},s.value,t.state,{forward:a,scroll:jr()});i(c.current,c,!0);const f=ie({},Zi(r.value,a,null),{position:c.position+1},u);i(a,f,!1),r.value=a}return{location:r,state:s,push:l,replace:o}}function wd(e){e=fd(e);const t=bd(e),n=_d(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=ie({location:"",base:e,go:r,createHref:hd.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function xd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),wd(e)}function Sd(e){return typeof e=="string"||e&&typeof e=="object"}function ga(e){return typeof e=="string"||typeof e=="symbol"}const ma=Symbol("");var Xi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Xi||(Xi={}));function rn(e,t){return ie(new Error,{type:e,[ma]:!0},t)}function nt(e,t){return e instanceof Error&&ma in e&&(t==null||!!(e.type&t))}const eo="[^/]+?",Ed={sensitive:!1,strict:!1,start:!0,end:!0},Cd=/[.+*?^${}()[\]/\\]/g;function Rd(e,t){const n=ie({},Ed,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function va(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Td={type:0,value:""},kd=/[a-zA-Z0-9_]/;function Ad(e){if(!e)return[[]];if(e==="/")return[[Td]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${u}": ${g}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let l=0,a,u="",c="";function f(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=a}for(;l{o(C)}:En}function o(f){if(ga(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const d=Nd(f,n);n.splice(d,0,f),f.record.name&&!so(f)&&r.set(f.record.name,f)}function u(f,d){let g,v={},S,k;if("name"in f&&f.name){if(g=r.get(f.name),!g)throw rn(1,{location:f});k=g.record.name,v=ie(no(d.params,g.keys.filter(C=>!C.optional).concat(g.parent?g.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&no(f.params,g.keys.map(C=>C.name))),S=g.stringify(v)}else if(f.path!=null)S=f.path,g=n.find(C=>C.re.test(S)),g&&(v=g.parse(S),k=g.record.name);else{if(g=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!g)throw rn(1,{location:f,currentLocation:d});k=g.record.name,v=ie({},d.params,f.params),S=g.stringify(v)}const O=[];let x=g;for(;x;)O.unshift(x.record),x=x.parent;return{name:k,path:S,params:v,matched:O,meta:$d(O)}}e.forEach(f=>i(f));function c(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function no(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ro(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ld(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ld(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function so(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function $d(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function io(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Nd(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;va(e,t[i])<0?r=i:n=i+1}const s=Id(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Id(e){let t=e;for(;t=t.parent;)if(ya(t)&&va(e,t)===0)return t}function ya({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jd(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;si&&Rs(i)):[r&&Rs(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Fd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ve(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Dd=Symbol(""),lo=Symbol(""),Ys=Symbol(""),_a=Symbol(""),Ts=Symbol("");function cn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function bt(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const u=d=>{d===!1?a(rn(4,{from:n,to:t})):d instanceof Error?a(d):Sd(d)?a(rn(2,{from:t,to:d})):(o&&r.enterCallbacks[s]===o&&typeof d=="function"&&o.push(d),l())},c=i(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>a(d))})}function ns(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(la(a)){const c=(a.__vccOpts||a)[t];c&&i.push(bt(c,n,r,o,l,s))}else{let u=a();i.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Kf(c)?c.default:c;o.mods[l]=c,o.components[l]=f;const g=(f.__vccOpts||f)[t];return g&&bt(g,n,r,o,l,s)()}))}}return i}function ao(e){const t=Ze(Ys),n=Ze(_a),r=Q(()=>{const a=Ot(e.to);return t.resolve(a)}),s=Q(()=>{const{matched:a}=r.value,{length:u}=a,c=a[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(nn.bind(null,c));if(d>-1)return d;const g=co(a[u-2]);return u>1&&co(c)===g&&f[f.length-1].path!==g?f.findIndex(nn.bind(null,a[u-2])):d}),i=Q(()=>s.value>-1&&zd(n.params,r.value.params)),o=Q(()=>s.value>-1&&s.value===n.matched.length-1&&ha(n.params,r.value.params));function l(a={}){if(Vd(a)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(En);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Q(()=>r.value.href),isActive:i,isExactActive:o,navigate:l}}function qd(e){return e.length===1?e[0]:e}const Bd=Rr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ao,setup(e,{slots:t}){const n=Dt(ao(e)),{options:r}=Ze(Ys),s=Q(()=>({[uo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&qd(t.default(n));return e.custom?i:G("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),Hd=Bd;function Vd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function zd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Ve(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function co(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uo=(e,t,n)=>e??t??n,Kd=Rr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ze(Ts),s=Q(()=>e.route||r.value),i=Ze(lo,0),o=Q(()=>{let u=Ot(i);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),l=Q(()=>s.value.matched[o.value]);Qn(lo,Q(()=>o.value+1)),Qn(Dd,l),Qn(Ts,s);const a=Nt();return $t(()=>[a.value,l.value,e.name],([u,c,f],[d,g,v])=>{c&&(c.instances[f]=u,g&&g!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=g.leaveGuards),c.updateGuards.size||(c.updateGuards=g.updateGuards))),u&&c&&(!g||!nn(c,g)||!d)&&(c.enterCallbacks[f]||[]).forEach(S=>S(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=l.value,d=f&&f.components[c];if(!d)return fo(n.default,{Component:d,route:u});const g=f.props[c],v=g?g===!0?u.params:typeof g=="function"?g(u):g:null,k=G(d,ie({},v,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[c]=null)},ref:a}));return fo(n.default,{Component:k,route:u})||k}}});function fo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ud=Kd;function Wd(e){const t=Md(e.routes,e),n=e.parseQuery||jd,r=e.stringifyQuery||oo,s=e.history,i=cn(),o=cn(),l=cn(),a=Go(ht);let u=ht;Jt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=es.bind(null,b=>""+b),f=es.bind(null,sd),d=es.bind(null,$n);function g(b,D){let N,V;return ga(b)?(N=t.getRecordMatcher(b),V=D):V=b,t.addRoute(V,N)}function v(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function S(){return t.getRoutes().map(b=>b.record)}function k(b){return!!t.getRecordMatcher(b)}function O(b,D){if(D=ie({},D||a.value),typeof b=="string"){const m=ts(n,b,D.path),_=t.resolve({path:m.path},D),E=s.createHref(m.fullPath);return ie(m,_,{params:d(_.params),hash:$n(m.hash),redirectedFrom:void 0,href:E})}let N;if(b.path!=null)N=ie({},b,{path:ts(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];N=ie({},b,{params:f(m)}),D.params=f(D.params)}const V=t.resolve(N,D),ce=b.hash||"";V.params=c(d(V.params));const h=ld(r,ie({},b,{hash:td(ce),path:V.path})),p=s.createHref(h);return ie({fullPath:h,hash:ce,query:r===oo?Fd(b.query):b.query||{}},V,{redirectedFrom:void 0,href:p})}function x(b){return typeof b=="string"?ts(n,b,a.value.path):ie({},b)}function C(b,D){if(u!==b)return rn(8,{from:D,to:b})}function y(b){return q(b)}function T(b){return y(ie(x(b),{replace:!0}))}function H(b){const D=b.matched[b.matched.length-1];if(D&&D.redirect){const{redirect:N}=D;let V=typeof N=="function"?N(b):N;return typeof V=="string"&&(V=V.includes("?")||V.includes("#")?V=x(V):{path:V},V.params={}),ie({query:b.query,hash:b.hash,params:V.path!=null?{}:b.params},V)}}function q(b,D){const N=u=O(b),V=a.value,ce=b.state,h=b.force,p=b.replace===!0,m=H(N);if(m)return q(ie(x(m),{state:typeof m=="object"?ie({},ce,m.state):ce,force:h,replace:p}),D||N);const _=N;_.redirectedFrom=D;let E;return!h&&ad(r,V,N)&&(E=rn(16,{to:_,from:V}),Ke(V,V,!0,!1)),(E?Promise.resolve(E):B(_,V)).catch(w=>nt(w)?nt(w,2)?w:ft(w):se(w,_,V)).then(w=>{if(w){if(nt(w,2))return q(ie({replace:p},x(w.to),{state:typeof w.to=="object"?ie({},ce,w.to.state):ce,force:h}),D||_)}else w=L(_,V,!0,p,ce);return U(_,V,w),w})}function F(b,D){const N=C(b,D);return N?Promise.reject(N):Promise.resolve()}function R(b){const D=Ht.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function B(b,D){let N;const[V,ce,h]=Gd(b,D);N=ns(V.reverse(),"beforeRouteLeave",b,D);for(const m of V)m.leaveGuards.forEach(_=>{N.push(bt(_,b,D))});const p=F.bind(null,b,D);return N.push(p),Le(N).then(()=>{N=[];for(const m of i.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).then(()=>{N=ns(ce,"beforeRouteUpdate",b,D);for(const m of ce)m.updateGuards.forEach(_=>{N.push(bt(_,b,D))});return N.push(p),Le(N)}).then(()=>{N=[];for(const m of h)if(m.beforeEnter)if(Ve(m.beforeEnter))for(const _ of m.beforeEnter)N.push(bt(_,b,D));else N.push(bt(m.beforeEnter,b,D));return N.push(p),Le(N)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),N=ns(h,"beforeRouteEnter",b,D,R),N.push(p),Le(N))).then(()=>{N=[];for(const m of o.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).catch(m=>nt(m,8)?m:Promise.reject(m))}function U(b,D,N){l.list().forEach(V=>R(()=>V(b,D,N)))}function L(b,D,N,V,ce){const h=C(b,D);if(h)return h;const p=D===ht,m=Jt?history.state:{};N&&(V||p?s.replace(b.fullPath,ie({scroll:p&&m&&m.scroll},ce)):s.push(b.fullPath,ce)),a.value=b,Ke(b,D,N,p),ft()}let X;function j(){X||(X=s.listen((b,D,N)=>{if(!qn.listening)return;const V=O(b),ce=H(V);if(ce){q(ie(ce,{replace:!0,force:!0}),V).catch(En);return}u=V;const h=a.value;Jt&&md(Yi(h.fullPath,N.delta),jr()),B(V,h).catch(p=>nt(p,12)?p:nt(p,2)?(q(ie(x(p.to),{force:!0}),V).then(m=>{nt(m,20)&&!N.delta&&N.type===Nn.pop&&s.go(-1,!1)}).catch(En),Promise.reject()):(N.delta&&s.go(-N.delta,!1),se(p,V,h))).then(p=>{p=p||L(V,h,!1),p&&(N.delta&&!nt(p,8)?s.go(-N.delta,!1):N.type===Nn.pop&&nt(p,20)&&s.go(-1,!1)),U(V,h,p)}).catch(En)}))}let ee=cn(),re=cn(),Z;function se(b,D,N){ft(b);const V=re.list();return V.length?V.forEach(ce=>ce(b,D,N)):console.error(b),Promise.reject(b)}function et(){return Z&&a.value!==ht?Promise.resolve():new Promise((b,D)=>{ee.add([b,D])})}function ft(b){return Z||(Z=!b,j(),ee.list().forEach(([D,N])=>b?N(b):D()),ee.reset()),b}function Ke(b,D,N,V){const{scrollBehavior:ce}=e;if(!Jt||!ce)return Promise.resolve();const h=!N&&vd(Yi(b.fullPath,0))||(V||!N)&&history.state&&history.state.scroll||null;return Bs().then(()=>ce(b,D,h)).then(p=>p&&gd(p)).catch(p=>se(p,b,D))}const Te=b=>s.go(b);let Bt;const Ht=new Set,qn={currentRoute:a,listening:!0,addRoute:g,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:S,resolve:O,options:e,push:y,replace:T,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:re.add,isReady:et,install(b){const D=this;b.component("RouterLink",Hd),b.component("RouterView",Ud),b.config.globalProperties.$router=D,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(a)}),Jt&&!Bt&&a.value===ht&&(Bt=!0,y(s.location).catch(ce=>{}));const N={};for(const ce in ht)Object.defineProperty(N,ce,{get:()=>a.value[ce],enumerable:!0});b.provide(Ys,D),b.provide(_a,Uo(N)),b.provide(Ts,a);const V=b.unmount;Ht.add(b),b.unmount=function(){Ht.delete(b),Ht.size<1&&(u=ht,X&&X(),X=null,a.value=ht,Bt=!1,Z=!1),V()}}};function Le(b){return b.reduce((D,N)=>D.then(()=>R(N)),Promise.resolve())}return qn}function Gd(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;onn(u,l))?r.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(u=>nn(u,a))||s.push(a))}return[n,r,s]}const Qd=[{path:"/",component:()=>Wn(()=>import("./MainLayout-jx0u-kTA.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-DZdkjiJs.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-DfEklPRR.js"),[])}],rs=function(){return Wd({scrollBehavior:()=>({left:0,top:0}),routes:Qd,history:xd("/openWB/web/themes/koala/")})};async function Jd(e,t){const n=e(Ff);n.use(jf,t);const r=typeof Xr=="function"?await Xr({}):Xr;n.use(r);const s=qt(typeof rs=="function"?await rs({store:r}):rs);return r.use(({store:i})=>{i.router=s}),{app:n,store:r,router:s}}const Yd={isoName:"de-DE",nativeName:"Deutsch (DE)",label:{clear:"Leeren",ok:"Ok",cancel:"Abbrechen",close:"Schließen",set:"Setzen",select:"Auswählen",reset:"Zurücksetzen",remove:"Löschen",update:"Aktualisieren",create:"Erstellen",search:"Suche",filter:"Filter",refresh:"Aktualisieren",expand:e=>e?`Erweitern Sie "${e}"`:"Erweitern",collapse:e=>e?`"${e}" minimieren`:"Zusammenbruch"},date:{days:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),daysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan_Feb_März_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez".split("_"),firstDayOfWeek:1,format24h:!0,pluralDay:"Tage",prevMonth:"Vorheriger Monat",nextMonth:"Nächster Monat",prevYear:"Vorheriges Jahr",nextYear:"Nächstes Jahr",today:"Heute",prevRangeYears:e=>`Vorherige ${e} Jahre`,nextRangeYears:e=>`Nächste ${e} Jahre`},table:{noData:"Keine Daten vorhanden.",noResults:"Keine Einträge gefunden",loading:"Lade...",selectedRecords:e=>e>1?e+" ausgewählte Zeilen":(e===0?"Keine":"1")+" ausgewählt.",recordsPerPage:"Zeilen pro Seite",allRows:"Alle",pagination:(e,t,n)=>e+"-"+t+" von "+n,columns:"Spalten"},pagination:{first:"Erste Seite",prev:"Vorherige Seite",next:"Nächste Seite",last:"Letzte Seite"},editor:{url:"URL",bold:"Fett",italic:"Kursiv",strikethrough:"Durchgestrichen",underline:"Unterstrichen",unorderedList:"Ungeordnete Liste",orderedList:"Geordnete Liste",subscript:"tiefgestellt",superscript:"hochgestellt",hyperlink:"Link",toggleFullscreen:"Vollbild umschalten",quote:"Zitat",left:"linksbündig",center:"zentriert",right:"rechtsbündig",justify:"Ausrichten",print:"Drucken",outdent:"ausrücken",indent:"einrücken",removeFormat:"Entferne Formatierung",formatting:"Formatiere",fontSize:"Schriftgröße",align:"Ausrichten",hr:"Horizontale Linie einfügen",undo:"Rückgänging",redo:"Wiederherstellen",heading1:"Überschrift 1",heading2:"Überschrift 2",heading3:"Überschrift 3",heading4:"Überschrift 4",heading5:"Überschrift 5",heading6:"Überschrift 6",paragraph:"Absatz",code:"Code",size1:"Sehr klein",size2:"klein",size3:"Normal",size4:"Groß",size5:"Größer",size6:"Sehr groß",size7:"Maximum",defaultFont:"Standard Schrift",viewSource:"Quelltext anzeigen"},tree:{noNodes:"Keine Knoten verfügbar",noResults:"Keine passenden Knoten gefunden"}},ks={xs:18,sm:24,md:32,lg:38,xl:46},Zs={size:String};function Xs(e,t=ks){return Q(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}function Zd(e,t){return e!==void 0&&e()||t}function gp(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function hn(e,t){return e!==void 0?t.concat(e()):t}function Xd(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function mp(e,t,n,r,s,i){t.key=r+s;const o=G(e,t,n);return s===!0?rl(o,i()):o}const ho="0 0 24 24",ss=e=>e,is=e=>`ionicons ${e}`,ba={"mdi-":e=>`mdi ${e}`,"icon-":ss,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":is,"ion-ios":is,"ion-logo":is,"iconfont ":ss,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":ss},wa={o_:"-outlined",r_:"-round",s_:"-sharp"},xa={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},eh=new RegExp("^("+Object.keys(ba).join("|")+")"),th=new RegExp("^("+Object.keys(wa).join("|")+")"),po=new RegExp("^("+Object.keys(xa).join("|")+")"),nh=/^[Mm]\s?[-+]?\.?\d/,rh=/^img:/,sh=/^svguse:/,ih=/^ion-/,oh=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,vr=Dn({name:"QIcon",props:{...Zs,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=ze(),r=Xs(e),s=Q(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=Q(()=>{let o,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const c=n.iconMapFn(l);if(c!==void 0)if(c.icon!==void 0){if(l=c.icon,l==="none"||!l)return{none:!0}}else return{cls:c.cls,content:c.content!==void 0?c.content:" "}}if(nh.test(l)===!0){const[c,f=ho]=l.split("|");return{svg:!0,viewBox:f,nodes:c.split("&&").map(d=>{const[g,v,S]=d.split("@@");return G("path",{style:v,d:g,transform:S})})}}if(rh.test(l)===!0)return{img:!0,src:l.substring(4)};if(sh.test(l)===!0){const[c,f=ho]=l.split("|");return{svguse:!0,src:c.substring(7),viewBox:f}}let a=" ";const u=l.match(eh);if(u!==null)o=ba[u[1]](l);else if(oh.test(l)===!0)o=l;else if(ih.test(l)===!0)o=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(po.test(l)===!0){o="notranslate material-symbols";const c=l.match(po);c!==null&&(l=l.substring(6),o+=xa[c[1]]),a=l}else{o="notranslate material-icons";const c=l.match(th);c!==null&&(l=l.substring(2),o+=wa[c[1]]),a=l}return{cls:o,content:a}});return()=>{const o={class:s.value,style:r.value,"aria-hidden":"true"};return i.value.none===!0?G(e.tag,o,Zd(t.default)):i.value.img===!0?G(e.tag,o,hn(t.default,[G("img",{src:i.value.src})])):i.value.svg===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox},[G("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(o.class+=" "+i.value.cls),G(e.tag,o,hn(t.default,[i.value.content])))}}}),lh=Dn({name:"QAvatar",props:{...Zs,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=Xs(e),r=Q(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),s=Q(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[G(vr,{name:e.icon})]:void 0;return G("div",{class:r.value,style:n.value},[G("div",{class:"q-avatar__content row flex-center overflow-hidden",style:s.value},Xd(t.default,i))])}}}),ah={size:{type:[String,Number],default:"1em"},color:String};function ch(e){return{cSize:Q(()=>e.size in ks?`${ks[e.size]}px`:e.size),classes:Q(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}const Sa=Dn({name:"QSpinner",props:{...ah,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=ch(e);return()=>G("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[G("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function uh(e,t){const n=e.style;for(const r in t)n[r]=t[r]}function vp(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=Ot(e);if(t)return t.$el||t}function yp(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}function fh(e,t=250){let n=!1,r;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),r=e.apply(this,arguments)),r}}function go(e,t,n,r){n.modifiers.stop===!0&&Zl(e);const s=n.modifiers.color;let i=n.modifiers.center;i=i===!0||r===!0;const o=document.createElement("span"),l=document.createElement("span"),a=gf(e),{left:u,top:c,width:f,height:d}=t.getBoundingClientRect(),g=Math.sqrt(f*f+d*d),v=g/2,S=`${(f-g)/2}px`,k=i?S:`${a.left-u-v}px`,O=`${(d-g)/2}px`,x=i?O:`${a.top-c-v}px`;l.className="q-ripple__inner",uh(l,{height:`${g}px`,width:`${g}px`,transform:`translate3d(${k},${x},0) scale3d(.2,.2,1)`,opacity:0}),o.className=`q-ripple${s?" text-"+s:""}`,o.setAttribute("dir","ltr"),o.appendChild(l),t.appendChild(o);const C=()=>{o.remove(),clearTimeout(y)};n.abort.push(C);let y=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${S},${O},0) scale3d(1,1,1)`,l.style.opacity=.2,y=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,y=setTimeout(()=>{o.remove(),n.abort.splice(n.abort.indexOf(C),1)},275)},250)},50)}function mo(e,{modifiers:t,value:n,arg:r}){const s=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:s.early===!0,stop:s.stop===!0,center:s.center===!0,color:s.color||r,keyCodes:[].concat(s.keyCodes||13)}}const dh=pf({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const r={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(s){r.enabled===!0&&s.qSkipRipple!==!0&&s.type===(r.modifiers.early===!0?"pointerdown":"click")&&go(s,e,r,s.qKeyEvent===!0)},keystart:fh(s=>{r.enabled===!0&&s.qSkipRipple!==!0&&Ss(s,r.modifiers.keyCodes)===!0&&s.type===`key${r.modifiers.early===!0?"down":"up"}`&&go(s,e,r,!0)},300)};mo(r,t),e.__qripple=r,mf(r,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&mo(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),vf(t,"main"),delete e._qripple)}}),Ea={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},hh=Object.keys(Ea),ph={align:{type:String,validator:e=>hh.includes(e)}};function gh(e){return Q(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${Ea[t]}`})}function _p(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ca(e,t){typeof t.type=="symbol"?Array.isArray(t.children)===!0&&t.children.forEach(n=>{Ca(e,n)}):e.add(t)}function bp(e){const t=new Set;return e.forEach(n=>{Ca(t,n)}),Array.from(t)}function mh(e){return e.appContext.config.globalProperties.$router!==void 0}function wp(e){return e.isUnmounted===!0||e.isDeactivated===!0}function vo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function yo(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(Array.isArray(s)===!1||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function _o(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function yh(e,t){return Array.isArray(e)===!0?_o(e,t):Array.isArray(t)===!0?_o(t,e):e===t}function _h(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(yh(e[n],t[n])===!1)return!1;return!0}const Ra={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},xp={...Ra,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"}};function bh({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=ze(),{props:r,proxy:s,emit:i}=n,o=mh(n),l=Q(()=>r.disable!==!0&&r.href!==void 0),a=Q(t===!0?()=>o===!0&&r.disable!==!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!=="":()=>o===!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!==""),u=Q(()=>a.value===!0?x(r.to):null),c=Q(()=>u.value!==null),f=Q(()=>l.value===!0||c.value===!0),d=Q(()=>r.type==="a"||f.value===!0?"a":r.tag||e||"div"),g=Q(()=>l.value===!0?{href:r.href,target:r.target}:c.value===!0?{href:u.value.href,target:r.target}:{}),v=Q(()=>{if(c.value===!1)return-1;const{matched:T}=u.value,{length:H}=T,q=T[H-1];if(q===void 0)return-1;const F=s.$route.matched;if(F.length===0)return-1;const R=F.findIndex(yo.bind(null,q));if(R!==-1)return R;const B=vo(T[H-2]);return H>1&&vo(q)===B&&F[F.length-1].path!==B?F.findIndex(yo.bind(null,T[H-2])):R}),S=Q(()=>c.value===!0&&v.value!==-1&&vh(s.$route.params,u.value.params)),k=Q(()=>S.value===!0&&v.value===s.$route.matched.length-1&&_h(s.$route.params,u.value.params)),O=Q(()=>c.value===!0?k.value===!0?` ${r.exactActiveClass} ${r.activeClass}`:r.exact===!0?"":S.value===!0?` ${r.activeClass}`:"":"");function x(T){try{return s.$router.resolve(T)}catch{}return null}function C(T,{returnRouterError:H,to:q=r.to,replace:F=r.replace}={}){if(r.disable===!0)return T.preventDefault(),Promise.resolve(!1);if(T.metaKey||T.altKey||T.ctrlKey||T.shiftKey||T.button!==void 0&&T.button!==0||r.target==="_blank")return Promise.resolve(!1);T.preventDefault();const R=s.$router[F===!0?"replace":"push"](q);return H===!0?R:R.then(()=>{}).catch(()=>{})}function y(T){if(c.value===!0){const H=q=>C(T,q);i("click",T,H),T.defaultPrevented!==!0&&H()}else i("click",T)}return{hasRouterLink:c,hasHrefLink:l,hasLink:f,linkTag:d,resolvedLink:u,linkIsActive:S,linkIsExactActive:k,linkClass:O,linkAttrs:g,getLink:x,navigateToRouterLink:C,navigateOnClick:y}}const bo={none:0,xs:4,sm:8,md:16,lg:24,xl:32},wh={xs:8,sm:10,md:14,lg:20,xl:24},xh=["button","submit","reset"],Sh=/[^\s]\/[^\s]/,Eh=["flat","outline","push","unelevated"];function Pa(e,t){return e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t}function Sp(e){const t=Pa(e);return t!==void 0?{[t]:!0}:{}}const Ch={...Zs,...Ra,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...Eh.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...ph.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},Rh={...Ch,round:Boolean};function Ph(e){const t=Xs(e,wh),n=gh(e),{hasRouterLink:r,hasLink:s,linkTag:i,linkAttrs:o,navigateOnClick:l}=bh({fallbackTag:"button"}),a=Q(()=>{const k=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},k,{padding:e.padding.split(/\s+/).map(O=>O in bo?bo[O]+"px":O).join(" "),minWidth:"0",minHeight:"0"}):k}),u=Q(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),c=Q(()=>e.disable!==!0&&e.loading!==!0),f=Q(()=>c.value===!0?e.tabindex||0:-1),d=Q(()=>Pa(e,"standard")),g=Q(()=>{const k={tabindex:f.value};return s.value===!0?Object.assign(k,o.value):xh.includes(e.type)===!0&&(k.type=e.type),i.value==="a"?(e.disable===!0?k["aria-disabled"]="true":k.href===void 0&&(k.role="button"),r.value!==!0&&Sh.test(e.type)===!0&&(k.type=e.type)):e.disable===!0&&(k.disabled="",k["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(k,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),k}),v=Q(()=>{let k;e.color!==void 0?e.flat===!0||e.outline===!0?k=`text-${e.textColor||e.color}`:k=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(k=`text-${e.textColor}`);const O=e.round===!0?"round":`rectangle${u.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${d.value} q-btn--${O}`+(k!==void 0?" "+k:"")+(c.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),S=Q(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:v,style:a,innerClasses:S,attributes:g,hasLink:s,linkTag:i,navigateOnClick:l,isActionable:c}}const{passiveCapture:Ne}=jt;let Ut=null,Wt=null,Gt=null;const Th=Dn({name:"QBtn",props:{...Rh,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:r}=ze(),{classes:s,style:i,innerClasses:o,attributes:l,hasLink:a,linkTag:u,navigateOnClick:c,isActionable:f}=Ph(e),d=Nt(null),g=Nt(null);let v=null,S,k=null;const O=Q(()=>e.label!==void 0&&e.label!==null&&e.label!==""),x=Q(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),C=Q(()=>({center:e.round})),y=Q(()=>{const j=Math.max(0,Math.min(100,e.percentage));return j>0?{transition:"transform 0.6s",transform:`translateX(${j-100}%)`}:{}}),T=Q(()=>{if(e.loading===!0)return{onMousedown:X,onTouchstart:X,onClick:X,onKeydown:X,onKeyup:X};if(f.value===!0){const j={onClick:q,onKeydown:F,onMousedown:B};if(r.$q.platform.has.touch===!0){const ee=e.onTouchstart!==void 0?"":"Passive";j[`onTouchstart${ee}`]=R}return j}return{onClick:zt}}),H=Q(()=>({ref:d,class:"q-btn q-btn-item non-selectable no-outline "+s.value,style:i.value,...l.value,...T.value}));function q(j){if(d.value!==null){if(j!==void 0){if(j.defaultPrevented===!0)return;const ee=document.activeElement;if(e.type==="submit"&&ee!==document.body&&d.value.contains(ee)===!1&&ee.contains(d.value)===!1){j.qAvoidFocus!==!0&&d.value.focus();const re=()=>{document.removeEventListener("keydown",zt,!0),document.removeEventListener("keyup",re,Ne),d.value?.removeEventListener("blur",re,Ne)};document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",re,Ne),d.value.addEventListener("blur",re,Ne)}}c(j)}}function F(j){d.value!==null&&(n("keydown",j),Ss(j,[13,32])===!0&&Wt!==d.value&&(Wt!==null&&L(),j.defaultPrevented!==!0&&(j.qAvoidFocus!==!0&&d.value.focus(),Wt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("keyup",U,!0),d.value.addEventListener("blur",U,Ne)),zt(j)))}function R(j){d.value!==null&&(n("touchstart",j),j.defaultPrevented!==!0&&(Ut!==d.value&&(Ut!==null&&L(),Ut=d.value,v=j.target,v.addEventListener("touchcancel",U,Ne),v.addEventListener("touchend",U,Ne)),S=!0,k!==null&&clearTimeout(k),k=setTimeout(()=>{k=null,S=!1},200)))}function B(j){d.value!==null&&(j.qSkipRipple=S===!0,n("mousedown",j),j.defaultPrevented!==!0&&Gt!==d.value&&(Gt!==null&&L(),Gt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("mouseup",U,Ne)))}function U(j){if(d.value!==null&&!(j?.type==="blur"&&document.activeElement===d.value)){if(j?.type==="keyup"){if(Wt===d.value&&Ss(j,[13,32])===!0){const ee=new MouseEvent("click",j);ee.qKeyEvent=!0,j.defaultPrevented===!0&&xs(ee),j.cancelBubble===!0&&Zl(ee),d.value.dispatchEvent(ee),zt(j),j.qKeyEvent=!0}n("keyup",j)}L()}}function L(j){const ee=g.value;j!==!0&&(Ut===d.value||Gt===d.value)&&ee!==null&&ee!==document.activeElement&&(ee.setAttribute("tabindex",-1),ee.focus()),Ut===d.value&&(v!==null&&(v.removeEventListener("touchcancel",U,Ne),v.removeEventListener("touchend",U,Ne)),Ut=v=null),Gt===d.value&&(document.removeEventListener("mouseup",U,Ne),Gt=null),Wt===d.value&&(document.removeEventListener("keyup",U,!0),d.value?.removeEventListener("blur",U,Ne),Wt=null),d.value?.classList.remove("q-btn--active")}function X(j){zt(j),j.qSkipRipple=!0}return Ar(()=>{L(!0)}),Object.assign(r,{click:j=>{f.value===!0&&q(j)}}),()=>{let j=[];e.icon!==void 0&&j.push(G(vr,{name:e.icon,left:e.stack!==!0&&O.value===!0,role:"img"})),O.value===!0&&j.push(G("span",{class:"block"},[e.label])),j=hn(t.default,j),e.iconRight!==void 0&&e.round===!1&&j.push(G(vr,{name:e.iconRight,right:e.stack!==!0&&O.value===!0,role:"img"}));const ee=[G("span",{class:"q-focus-helper",ref:g})];return e.loading===!0&&e.percentage!==void 0&&ee.push(G("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[G("span",{class:"q-btn__progress-indicator fit block",style:y.value})])),ee.push(G("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+o.value},j)),e.loading!==null&&ee.push(G(Lu,{name:"q-transition--fade"},()=>e.loading===!0?[G("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[G(Sa)])]:null)),rl(G(u.value,H.value,ee),[[dh,x.value,void 0,C.value]])}}});let kh=1,Ah=document.body;function Oh(e,t){const n=document.createElement("div");if(n.id=t!==void 0?`q-portal--${t}--${kh++}`:e,mr.globalNodes!==void 0){const r=mr.globalNodes.class;r!==void 0&&(n.className=r)}return Ah.appendChild(n),n}function Ep(e){e.remove()}let Mh=0;const Xn={},er={},De={},Ta={},Lh=/^\s*$/,ka=[],$h=[void 0,null,!0,!1,""],ei=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Nh=["top-left","top-right","bottom-left","bottom-right"],pn={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function Aa(e,t,n){if(!e)return un("parameter required");let r;const s={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(s,Xn),Ln(e)===!1&&(s.type&&Object.assign(s,pn[s.type]),e={message:e}),Object.assign(s,pn[e.type||s.type],e),typeof s.icon=="function"&&(s.icon=s.icon(t)),s.spinner?(s.spinner===!0&&(s.spinner=Sa),s.spinner=qt(s.spinner)):s.spinner=!1,s.meta={hasMedia:!!(s.spinner!==!1||s.icon||s.avatar),hasText:wo(s.message)||wo(s.caption)},s.position){if(ei.includes(s.position)===!1)return un("wrong position",e)}else s.position="bottom";if($h.includes(s.timeout)===!0)s.timeout=5e3;else{const a=Number(s.timeout);if(isNaN(a)||a<0)return un("wrong timeout",e);s.timeout=Number.isFinite(a)?a:0}s.timeout===0?s.progress=!1:s.progress===!0&&(s.meta.progressClass="q-notification__progress"+(s.progressClass?` ${s.progressClass}`:""),s.meta.progressStyle={animationDuration:`${s.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(Xn.actions)===!0?Xn.actions:[]).concat(Array.isArray(pn[e.type]?.actions)===!0?pn[e.type].actions:[]),{closeBtn:o}=s;if(o&&i.push({label:typeof o=="string"?o:t.lang.label.close}),s.actions=i.map(({handler:a,noDismiss:u,...c})=>({flat:!0,...c,onClick:typeof a=="function"?()=>{a(),u!==!0&&l()}:()=>{l()}})),s.multiLine===void 0&&(s.multiLine=s.actions.length>1),Object.assign(s.meta,{class:`q-notification row items-stretch q-notification--${s.multiLine===!0?"multi-line":"standard"}`+(s.color!==void 0?` bg-${s.color}`:"")+(s.textColor!==void 0?` text-${s.textColor}`:"")+(s.classes!==void 0?` ${s.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(s.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(s.multiLine===!0?"":" col"),leftClass:s.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...s.attrs}}),s.group===!1?(s.group=void 0,s.meta.group=void 0):((s.group===void 0||s.group===!0)&&(s.group=[s.message,s.caption,s.multiline].concat(s.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),s.meta.group=s.group+"|"+s.position),s.actions.length===0?s.actions=void 0:s.meta.actionsClass="q-notification__actions row items-center "+(s.multiLine===!0?"justify-end":"col-auto")+(s.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){n.notif.meta.timer&&(clearTimeout(n.notif.meta.timer),n.notif.meta.timer=void 0),s.meta.uid=n.notif.meta.uid;const a=De[s.position].value.indexOf(n.notif);De[s.position].value[a]=s}else{const a=er[s.meta.group];if(a===void 0){if(s.meta.uid=Mh++,s.meta.badge=1,["left","right","center"].indexOf(s.position)!==-1)De[s.position].value.splice(Math.floor(De[s.position].value.length/2),0,s);else{const u=s.position.indexOf("top")!==-1?"unshift":"push";De[s.position].value[u](s)}s.group!==void 0&&(er[s.meta.group]=s)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),s.badgePosition!==void 0){if(Nh.includes(s.badgePosition)===!1)return un("wrong badgePosition",e)}else s.badgePosition=`top-${s.position.indexOf("left")!==-1?"right":"left"}`;s.meta.uid=a.meta.uid,s.meta.badge=a.meta.badge+1,s.meta.badgeClass=`q-notification__badge q-notification__badge--${s.badgePosition}`+(s.badgeColor!==void 0?` bg-${s.badgeColor}`:"")+(s.badgeTextColor!==void 0?` text-${s.badgeTextColor}`:"")+(s.badgeClass?` ${s.badgeClass}`:"");const u=De[s.position].value.indexOf(a);De[s.position].value[u]=er[s.meta.group]=s}}const l=()=>{Ih(s),r=void 0};if(s.timeout>0&&(s.meta.timer=setTimeout(()=>{s.meta.timer=void 0,l()},s.timeout+1e3)),s.group!==void 0)return a=>{a!==void 0?un("trying to update a grouped one which is forbidden",e):l()};if(r={dismiss:l,config:e,notif:s},n!==void 0){Object.assign(n,r);return}return a=>{if(r!==void 0)if(a===void 0)r.dismiss();else{const u=Object.assign({},r.config,a,{group:!1,position:s.position});Aa(u,t,r)}}}function Ih(e){e.meta.timer&&(clearTimeout(e.meta.timer),e.meta.timer=void 0);const t=De[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete er[e.meta.group];const n=ka[""+e.meta.uid];if(n){const{width:r,height:s}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=r,n.style.height=s}De[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function wo(e){return e!=null&&Lh.test(e)!==!0}function un(e,t){return console.error(`Notify: ${e}`,t),!1}function jh(){return Dn({name:"QNotifications",devtools:{hide:!0},setup(){return()=>G("div",{class:"q-notifications"},ei.map(e=>G(Zu,{key:e,class:Ta[e],tag:"div",name:`q-notification--${e}`},()=>De[e].value.map(t=>{const n=t.meta,r=[];if(n.hasMedia===!0&&(t.spinner!==!1?r.push(G(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?r.push(G(vr,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&r.push(G(lh,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>G("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const o={class:"q-notification__message col"};if(t.html===!0)o.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[G("div",l),G("div",{class:"q-notification__caption"},[t.caption])]:l}r.push(G("div",o,i))}const s=[G("div",{class:n.contentClass},r)];return t.progress===!0&&s.push(G("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&s.push(G("div",{class:n.actionsClass},t.actions.map(i=>G(Th,i)))),n.badge>1&&s.push(G("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),G("div",{ref:i=>{ka[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[G("div",{class:n.wrapperClass},s)])}))))}})}const Fh={setDefaults(e){Ln(e)===!0&&Object.assign(Xn,e)},registerType(e,t){Ln(t)===!0&&(pn[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>Aa(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){ei.forEach(r=>{De[r]=Nt([]);const s=["left","center","right"].includes(r)===!0?"center":r.indexOf("top")!==-1?"top":"bottom",i=r.indexOf("left")!==-1?"start":r.indexOf("right")!==-1?"end":"center",o=["left","right"].includes(r)?`items-${r==="left"?"start":"end"} justify-center`:r==="center"?"flex-center":`items-${i}`;Ta[r]=`q-notifications__list q-notifications__list--${s} fixed column no-wrap ${o}`});const n=Oh("q-notify");$f(jh(),t).mount(n)}}},Dh={config:{dark:"auto"},lang:Yd,plugins:{Notify:Fh}},qh="/openWB/web/themes/koala/";async function Bh({app:e,router:t,store:n},r){let s=!1;const i=a=>{try{return t.resolve(a).href}catch{}return Object(a)===a?null:a},o=a=>{if(s=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const u=i(a);u!==null&&(window.location.href=u,window.location.reload())},l=window.location.href.replace(window.location.origin,"");for(let a=0;s===!1&&a{const[t,n]=Promise.allSettled!==void 0?["allSettled",r=>r.map(s=>{if(s.status==="rejected"){console.error("[Quasar] boot error:",s.reason);return}return s.value.default})]:["all",r=>r.map(s=>s.default)];return Promise[t]([Wn(()=>import("./store-init-B2y2b7C6.js"),__vite__mapDeps([6,4]))]).then(r=>{const s=n(r).filter(i=>typeof i=="function");Bh(e,s)})});export{Af as $,Dt as A,Ks as B,Rr as C,Dc as D,ur as E,cr as F,Rc as G,Pe as H,_u as I,vr as J,cp as K,Ss as L,xf as M,zt as N,pf as O,vf as P,Th as Q,dh as R,Xe as S,ip as T,mf as U,gf as V,rp as W,Lu as X,bp as Y,Kh as Z,mh as _,Q as a,$c as a0,dp as a1,ep as a2,Yh as a3,jl as a4,Re as a5,Wh as a6,Sr as a7,Zh as a8,Wa as a9,Jh as aA,Gh as aB,Xh as aC,Hh as aD,yu as aE,bu as aF,ph as aG,gh as aH,pe as aI,ws as aJ,zh as aK,xp as aL,bh as aM,_p as aN,Vh as aO,Oh as aP,Ep as aQ,wp as aR,vp as aS,uh as aT,sp as aU,Mf as aV,Go as aa,Tu as ab,ne as ac,qs as ad,pp as ae,yp as af,Ch as ag,Sp as ah,Zl as ai,Ot as aj,Uh as ak,tp as al,Qh as am,gl as an,ap as ao,$r as ap,xs as aq,Sa as ar,Zs as as,Xs as at,Xd as au,Yr as av,zs as aw,fp as ax,Ln as ay,np as az,hp as b,Dn as c,Zd as d,up as e,gp as f,ze as g,G as h,Ze as i,rl as j,jt as k,op as l,kr as m,Mn as n,Ar as o,yf as p,Mc as q,Nt as r,Oc as s,hn as t,Bs as u,mp as v,$t as w,Qn as x,lp as y,It as z}; diff --git a/packages/modules/web_themes/koala/web/assets/mqtt-store-N-bUJWDJ.js b/packages/modules/web_themes/koala/web/assets/mqtt-store-2RAlxljy.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/mqtt-store-N-bUJWDJ.js rename to packages/modules/web_themes/koala/web/assets/mqtt-store-2RAlxljy.js index ed6e4bec5c..f70bb5a4e8 100644 --- a/packages/modules/web_themes/koala/web/assets/mqtt-store-N-bUJWDJ.js +++ b/packages/modules/web_themes/koala/web/assets/mqtt-store-2RAlxljy.js @@ -1,4 +1,4 @@ -var jl=Object.defineProperty;var xo=f=>{throw TypeError(f)};var Ml=(f,h,s)=>h in f?jl(f,h,{enumerable:!0,configurable:!0,writable:!0,value:s}):f[h]=s;var it=(f,h,s)=>Ml(f,typeof h!="symbol"?h+"":h,s),rn=(f,h,s)=>h.has(f)||xo("Cannot "+s);var D=(f,h,s)=>(rn(f,h,"read from private field"),s?s.call(f):h.get(f)),qe=(f,h,s)=>h.has(f)?xo("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,s),De=(f,h,s,a)=>(rn(f,h,"write to private field"),a?a.call(f,s):h.set(f,s),s),Ne=(f,h,s)=>(rn(f,h,"access private method"),s);var br=(f,h,s,a)=>({set _(c){De(f,h,c,s)},get _(){return D(f,h,a)}});import{ae as Bl,r as Io,a as Ie}from"./index-DQS_YrrO.js";var ao=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Ul=Object.getOwnPropertyNames,Ll=Object.prototype.hasOwnProperty,yt=(f,h)=>()=>(f&&(h=f(f=0)),h),Se=(f,h)=>()=>(h||f((h={exports:{}}).exports,h),h.exports),or=(f,h)=>{for(var s in h)ao(f,s,{get:h[s],enumerable:!0})},Dl=(f,h,s,a)=>{if(h&&typeof h=="object"||typeof h=="function")for(let c of Ul(h))!Ll.call(f,c)&&c!==s&&ao(f,c,{get:()=>h[c],enumerable:!(a=Nl(h,c))||a.enumerable});return f},Ke=f=>Dl(ao({},"__esModule",{value:!0}),f),ge=yt(()=>{}),Ge={};or(Ge,{_debugEnd:()=>Fn,_debugProcess:()=>Dn,_events:()=>ti,_eventsCount:()=>ri,_exiting:()=>xn,_fatalExceptions:()=>Nn,_getActiveHandles:()=>$s,_getActiveRequests:()=>Ws,_kill:()=>kn,_linkedBinding:()=>Ds,_maxListeners:()=>ei,_preload_modules:()=>Xn,_rawDebug:()=>Sn,_startProfilerIdleNotifier:()=>Wn,_stopProfilerIdleNotifier:()=>$n,_tickCallback:()=>Ln,abort:()=>Kn,addListener:()=>ni,allowedNodeEnvironmentFlags:()=>Mn,arch:()=>ln,argv:()=>hn,argv0:()=>Jn,assert:()=>qs,binding:()=>yn,browser:()=>_n,chdir:()=>vn,config:()=>In,cpuUsage:()=>ur,cwd:()=>bn,debugPort:()=>Yn,default:()=>uo,dlopen:()=>Fs,domain:()=>An,emit:()=>li,emitWarning:()=>gn,env:()=>cn,execArgv:()=>fn,execPath:()=>Qn,exit:()=>Rn,features:()=>Bn,hasUncaughtExceptionCaptureCallback:()=>Vs,hrtime:()=>_r,kill:()=>Cn,listeners:()=>Ks,memoryUsage:()=>Pn,moduleLoadList:()=>En,nextTick:()=>Us,off:()=>oi,on:()=>xt,once:()=>ii,openStdin:()=>jn,pid:()=>Hn,platform:()=>un,ppid:()=>Gn,prependListener:()=>ui,prependOnceListener:()=>ci,reallyExit:()=>On,release:()=>wn,removeAllListeners:()=>ai,removeListener:()=>si,resourceUsage:()=>Tn,setSourceMapsEnabled:()=>Zn,setUncaughtExceptionCaptureCallback:()=>Un,stderr:()=>Vn,stdin:()=>zn,stdout:()=>qn,title:()=>an,umask:()=>mn,uptime:()=>zs,version:()=>pn,versions:()=>dn});function lo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function Fl(){!Jt||!Qt||(Jt=!1,Qt.length?_t=Qt.concat(_t):pr=-1,_t.length&&Ns())}function Ns(){if(!Jt){var f=setTimeout(Fl,0);Jt=!0;for(var h=_t.length;h;){for(Qt=_t,_t=[];++pr1)for(var s=1;s{ge(),me(),ye(),_t=[],Jt=!1,pr=-1,Ls.prototype.run=function(){this.fun.apply(null,this.array)},an="browser",ln="x64",un="browser",cn={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},hn=["/usr/bin/node"],fn=[],pn="v16.8.0",dn={},gn=function(f,h){console.warn((h?h+": ":"")+f)},yn=function(f){lo("binding")},mn=function(f){return 0},bn=function(){return"/"},vn=function(f){},wn={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},_n=!0,Sn=ct,En=[],An={},xn=!1,In={},On=ct,kn=ct,ur=function(){return{}},Tn=ur,Pn=ur,Cn=ct,Rn=ct,jn=ct,Mn={},Bn={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Nn=ct,Un=ct,Ln=ct,Dn=ct,Fn=ct,Wn=ct,$n=ct,qn=void 0,Vn=void 0,zn=void 0,Kn=ct,Hn=2,Gn=1,Qn="/bin/usr/node",Yn=9229,Jn="node",Xn=[],Zn=ct,Ot={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Ot.now===void 0&&(nn=Date.now(),Ot.timing&&Ot.timing.navigationStart&&(nn=Ot.timing.navigationStart),Ot.now=()=>Date.now()-nn),Sr=1e9,_r.bigint=function(f){var h=_r(f);return typeof BigInt>"u"?h[0]*Sr+h[1]:BigInt(h[0]*Sr)+BigInt(h[1])},ei=10,ti={},ri=0,ni=xt,ii=xt,oi=xt,si=xt,ai=xt,li=ct,ui=xt,ci=xt,uo={version:pn,versions:dn,arch:ln,platform:un,browser:_n,release:wn,_rawDebug:Sn,moduleLoadList:En,binding:yn,_linkedBinding:Ds,_events:ti,_eventsCount:ri,_maxListeners:ei,on:xt,addListener:ni,once:ii,off:oi,removeListener:si,removeAllListeners:ai,emit:li,prependListener:ui,prependOnceListener:ci,listeners:Ks,domain:An,_exiting:xn,config:In,dlopen:Fs,uptime:zs,_getActiveRequests:Ws,_getActiveHandles:$s,reallyExit:On,_kill:kn,cpuUsage:ur,resourceUsage:Tn,memoryUsage:Pn,kill:Cn,exit:Rn,openStdin:jn,allowedNodeEnvironmentFlags:Mn,assert:qs,features:Bn,_fatalExceptions:Nn,setUncaughtExceptionCaptureCallback:Un,hasUncaughtExceptionCaptureCallback:Vs,emitWarning:gn,nextTick:Us,_tickCallback:Ln,_debugProcess:Dn,_debugEnd:Fn,_startProfilerIdleNotifier:Wn,_stopProfilerIdleNotifier:$n,stdout:qn,stdin:zn,stderr:Vn,abort:Kn,umask:mn,chdir:vn,cwd:bn,env:cn,title:an,argv:hn,execArgv:fn,pid:Hn,ppid:Gn,execPath:Qn,debugPort:Yn,hrtime:_r,argv0:Jn,_preload_modules:Xn,setSourceMapsEnabled:Zn}}),ye=yt(()=>{Wl()});function $l(){if(hi)return rr;hi=!0,rr.byteLength=t,rr.toByteArray=i,rr.fromByteArray=p;for(var f=[],h=[],s=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,n=a.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var E=g.indexOf("=");E===-1&&(E=b);var S=E===b?0:4-E%4;return[E,S]}function t(g){var b=r(g),E=b[0],S=b[1];return(E+S)*3/4-S}function e(g,b,E){return(b+E)*3/4-E}function i(g){var b,E=r(g),S=E[0],x=E[1],y=new s(e(g,S,x)),v=0,A=x>0?S-4:S,_;for(_=0;_>16&255,y[v++]=b>>8&255,y[v++]=b&255;return x===2&&(b=h[g.charCodeAt(_)]<<2|h[g.charCodeAt(_+1)]>>4,y[v++]=b&255),x===1&&(b=h[g.charCodeAt(_)]<<10|h[g.charCodeAt(_+1)]<<4|h[g.charCodeAt(_+2)]>>2,y[v++]=b>>8&255,y[v++]=b&255),y}function l(g){return f[g>>18&63]+f[g>>12&63]+f[g>>6&63]+f[g&63]}function d(g,b,E){for(var S,x=[],y=b;yA?A:v+y));return S===1?(b=g[E-1],x.push(f[b>>2]+f[b<<4&63]+"==")):S===2&&(b=(g[E-2]<<8)+g[E-1],x.push(f[b>>10]+f[b>>4&63]+f[b<<2&63]+"=")),x.join("")}return rr}function ql(){return fi?cr:(fi=!0,cr.read=function(f,h,s,a,c){var n,r,t=c*8-a-1,e=(1<>1,l=-7,d=s?c-1:0,p=s?-1:1,g=f[h+d];for(d+=p,n=g&(1<<-l)-1,g>>=-l,l+=t;l>0;n=n*256+f[h+d],d+=p,l-=8);for(r=n&(1<<-l)-1,n>>=-l,l+=a;l>0;r=r*256+f[h+d],d+=p,l-=8);if(n===0)n=1-i;else{if(n===e)return r?NaN:(g?-1:1)*(1/0);r=r+Math.pow(2,a),n=n-i}return(g?-1:1)*r*Math.pow(2,n-a)},cr.write=function(f,h,s,a,c,n){var r,t,e,i=n*8-c-1,l=(1<>1,p=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=a?0:n-1,b=a?1:-1,E=h<0||h===0&&1/h<0?1:0;for(h=Math.abs(h),isNaN(h)||h===1/0?(t=isNaN(h)?1:0,r=l):(r=Math.floor(Math.log(h)/Math.LN2),h*(e=Math.pow(2,-r))<1&&(r--,e*=2),r+d>=1?h+=p/e:h+=p*Math.pow(2,1-d),h*e>=2&&(r++,e/=2),r+d>=l?(t=0,r=l):r+d>=1?(t=(h*e-1)*Math.pow(2,c),r=r+d):(t=h*Math.pow(2,d-1)*Math.pow(2,c),r=0));c>=8;f[s+g]=t&255,g+=b,t/=256,c-=8);for(r=r<0;f[s+g]=r&255,g+=b,r/=256,i-=8);f[s+g-b]|=E*128},cr)}function Vl(){if(pi)return Ut;pi=!0;let f=$l(),h=ql(),s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ut.Buffer=r,Ut.SlowBuffer=x,Ut.INSPECT_MAX_BYTES=50;let a=2147483647;Ut.kMaxLength=a,r.TYPED_ARRAY_SUPPORT=c(),!r.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let o=new Uint8Array(1),u={foo:function(){return 42}};return Object.setPrototypeOf(u,Uint8Array.prototype),Object.setPrototypeOf(o,u),o.foo()===42}catch{return!1}}Object.defineProperty(r.prototype,"parent",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.buffer}}),Object.defineProperty(r.prototype,"offset",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.byteOffset}});function n(o){if(o>a)throw new RangeError('The value "'+o+'" is invalid for option "size"');let u=new Uint8Array(o);return Object.setPrototypeOf(u,r.prototype),u}function r(o,u,m){if(typeof o=="number"){if(typeof u=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(o)}return t(o,u,m)}r.poolSize=8192;function t(o,u,m){if(typeof o=="string")return d(o,u);if(ArrayBuffer.isView(o))return g(o);if(o==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o);if(Q(o,ArrayBuffer)||o&&Q(o.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Q(o,SharedArrayBuffer)||o&&Q(o.buffer,SharedArrayBuffer)))return b(o,u,m);if(typeof o=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let C=o.valueOf&&o.valueOf();if(C!=null&&C!==o)return r.from(C,u,m);let N=E(o);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof o[Symbol.toPrimitive]=="function")return r.from(o[Symbol.toPrimitive]("string"),u,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o)}r.from=function(o,u,m){return t(o,u,m)},Object.setPrototypeOf(r.prototype,Uint8Array.prototype),Object.setPrototypeOf(r,Uint8Array);function e(o){if(typeof o!="number")throw new TypeError('"size" argument must be of type number');if(o<0)throw new RangeError('The value "'+o+'" is invalid for option "size"')}function i(o,u,m){return e(o),o<=0?n(o):u!==void 0?typeof m=="string"?n(o).fill(u,m):n(o).fill(u):n(o)}r.alloc=function(o,u,m){return i(o,u,m)};function l(o){return e(o),n(o<0?0:S(o)|0)}r.allocUnsafe=function(o){return l(o)},r.allocUnsafeSlow=function(o){return l(o)};function d(o,u){if((typeof u!="string"||u==="")&&(u="utf8"),!r.isEncoding(u))throw new TypeError("Unknown encoding: "+u);let m=y(o,u)|0,C=n(m),N=C.write(o,u);return N!==m&&(C=C.slice(0,N)),C}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let C=0;C=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return o|0}function x(o){return+o!=o&&(o=0),r.alloc(+o)}r.isBuffer=function(o){return o!=null&&o._isBuffer===!0&&o!==r.prototype},r.compare=function(o,u){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),Q(u,Uint8Array)&&(u=r.from(u,u.offset,u.byteLength)),!r.isBuffer(o)||!r.isBuffer(u))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(o===u)return 0;let m=o.length,C=u.length;for(let N=0,K=Math.min(m,C);NC.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(C,N)):Uint8Array.prototype.set.call(C,K,N);else if(r.isBuffer(K))K.copy(C,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return C};function y(o,u){if(r.isBuffer(o))return o.length;if(ArrayBuffer.isView(o)||Q(o,ArrayBuffer))return o.byteLength;if(typeof o!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof o);let m=o.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&m===0)return 0;let N=!1;for(;;)switch(u){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return H(o).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ve(o).length;default:if(N)return C?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let C=!1;if((u===void 0||u<0)&&(u=0),u>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,u>>>=0,m<=u))return"";for(o||(o="utf8");;)switch(o){case"hex":return te(this,u,m);case"utf8":case"utf-8":return z(this,u,m);case"ascii":return he(this,u,m);case"latin1":case"binary":return ne(this,u,m);case"base64":return k(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(C)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),C=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let C=o[u];o[u]=o[m],o[m]=C}r.prototype.swap16=function(){let o=this.length;if(o%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let u=0;uu&&(o+=" ... "),""},s&&(r.prototype[s]=r.prototype.inspect),r.prototype.compare=function(o,u,m,C,N){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),!r.isBuffer(o))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof o);if(u===void 0&&(u=0),m===void 0&&(m=o?o.length:0),C===void 0&&(C=0),N===void 0&&(N=this.length),u<0||m>o.length||C<0||N>this.length)throw new RangeError("out of range index");if(C>=N&&u>=m)return 0;if(C>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,C>>>=0,N>>>=0,this===o)return 0;let K=N-C,de=m-u,$=Math.min(K,de),ie=this.slice(C,N),Re=o.slice(u,m);for(let Te=0;Te<$;++Te)if(ie[Te]!==Re[Te]){K=ie[Te],de=Re[Te];break}return K2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,_e(m)&&(m=N?0:o.length-1),m<0&&(m=o.length+m),m>=o.length){if(N)return-1;m=o.length-1}else if(m<0)if(N)m=0;else return-1;if(typeof u=="string"&&(u=r.from(u,C)),r.isBuffer(u))return u.length===0?-1:R(o,u,m,C,N);if(typeof u=="number")return u=u&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(o,u,m):Uint8Array.prototype.lastIndexOf.call(o,u,m):R(o,[u],m,C,N);throw new TypeError("val must be string, number or Buffer")}function R(o,u,m,C,N){let K=1,de=o.length,$=u.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(Te,Le){return K===1?Te[Le]:Te.readUInt16BE(Le*K)}let Re;if(N){let Te=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let Te=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){Te=!1;break}if(Te)return Re}return-1}r.prototype.includes=function(o,u,m){return this.indexOf(o,u,m)!==-1},r.prototype.indexOf=function(o,u,m){return _(this,o,u,m,!0)},r.prototype.lastIndexOf=function(o,u,m){return _(this,o,u,m,!1)};function w(o,u,m,C){m=Number(m)||0;let N=o.length-m;C?(C=Number(C),C>N&&(C=N)):C=N;let K=u.length;C>K/2&&(C=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,C===void 0&&(C="utf8")):(C=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let N=this.length-u;if((m===void 0||m>N)&&(m=N),o.length>0&&(m<0||u<0)||u>this.length)throw new RangeError("Attempt to write outside buffer bounds");C||(C="utf8");let K=!1;for(;;)switch(C){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return O(this,o,u,m);case"ascii":case"latin1":case"binary":return T(this,o,u,m);case"base64":return M(this,o,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,o,u,m);default:if(K)throw new TypeError("Unknown encoding: "+C);C=(""+C).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(o,u,m){return u===0&&m===o.length?f.fromByteArray(o):f.fromByteArray(o.slice(u,m))}function z(o,u,m){m=Math.min(o.length,m);let C=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,Te,Le;switch($){case 1:K<128&&(de=K);break;case 2:ie=o[N+1],(ie&192)===128&&(Le=(K&31)<<6|ie&63,Le>127&&(de=Le));break;case 3:ie=o[N+1],Re=o[N+2],(ie&192)===128&&(Re&192)===128&&(Le=(K&15)<<12|(ie&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(de=Le));break;case 4:ie=o[N+1],Re=o[N+2],Te=o[N+3],(ie&192)===128&&(Re&192)===128&&(Te&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|Te&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,C.push(de>>>10&1023|55296),de=56320|de&1023),C.push(de),N+=$}return q(C)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",C=0;for(;CC)&&(m=C);let N="";for(let K=u;Km&&(o=m),u<0?(u+=m,u<0&&(u=0)):u>m&&(u=m),um)throw new RangeError("Trying to access beyond buffer length")}r.prototype.readUintLE=r.prototype.readUIntLE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o+--u],N=1;for(;u>0&&(N*=256);)C+=this[o+--u]*N;return C},r.prototype.readUint8=r.prototype.readUInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]},r.prototype.readUint16LE=r.prototype.readUInt16LE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]|this[o+1]<<8},r.prototype.readUint16BE=r.prototype.readUInt16BE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]<<8|this[o+1]},r.prototype.readUint32LE=r.prototype.readUInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),(this[o]|this[o+1]<<8|this[o+2]<<16)+this[o+3]*16777216},r.prototype.readUint32BE=r.prototype.readUInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]*16777216+(this[o+1]<<16|this[o+2]<<8|this[o+3])},r.prototype.readBigUInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u+this[++o]*2**8+this[++o]*2**16+this[++o]*2**24,N=this[++o]+this[++o]*2**8+this[++o]*2**16+m*2**24;return BigInt(C)+(BigInt(N)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u*2**24+this[++o]*2**16+this[++o]*2**8+this[++o],N=this[++o]*2**24+this[++o]*2**16+this[++o]*2**8+m;return(BigInt(C)<>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K=N&&(C-=Math.pow(2,8*u)),C},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=u,N=1,K=this[o+--C];for(;C>0&&(N*=256);)K+=this[o+--C]*N;return N*=128,K>=N&&(K-=Math.pow(2,8*u)),K},r.prototype.readInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]&128?(255-this[o]+1)*-1:this[o]},r.prototype.readInt16LE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o]|this[o+1]<<8;return m&32768?m|4294901760:m},r.prototype.readInt16BE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o+1]|this[o]<<8;return m&32768?m|4294901760:m},r.prototype.readInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]|this[o+1]<<8|this[o+2]<<16|this[o+3]<<24},r.prototype.readInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]<<24|this[o+1]<<16|this[o+2]<<8|this[o+3]},r.prototype.readBigInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(C)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(C)<>>0,u||V(o,4,this.length),h.read(this,o,!0,23,4)},r.prototype.readFloatBE=function(o,u){return o=o>>>0,u||V(o,4,this.length),h.read(this,o,!1,23,4)},r.prototype.readDoubleLE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!0,52,8)},r.prototype.readDoubleBE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!1,52,8)};function le(o,u,m,C,N,K){if(!r.isBuffer(o))throw new TypeError('"buffer" argument must be a Buffer instance');if(u>N||uo.length)throw new RangeError("Index out of range")}r.prototype.writeUintLE=r.prototype.writeUIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=1,K=0;for(this[u]=o&255;++K>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=m-1,K=1;for(this[u+N]=o&255;--N>=0&&(K*=256);)this[u+N]=o/K&255;return u+m},r.prototype.writeUint8=r.prototype.writeUInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,255,0),this[u]=o&255,u+1},r.prototype.writeUint16LE=r.prototype.writeUInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeUint16BE=r.prototype.writeUInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeUint32LE=r.prototype.writeUInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u+3]=o>>>24,this[u+2]=o>>>16,this[u+1]=o>>>8,this[u]=o&255,u+4},r.prototype.writeUint32BE=r.prototype.writeUInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4};function B(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,m}function ee(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m+7]=K,K=K>>8,o[m+6]=K,K=K>>8,o[m+5]=K,K=K>>8,o[m+4]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m+3]=de,de=de>>8,o[m+2]=de,de=de>>8,o[m+1]=de,de=de>>8,o[m]=de,m+8}r.prototype.writeBigUInt64LE=fe(function(o,u=0){return B(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeBigUInt64BE=fe(function(o,u=0){return ee(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=0,K=1,de=0;for(this[u]=o&255;++N>0)-de&255;return u+m},r.prototype.writeIntBE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=m-1,K=1,de=0;for(this[u+N]=o&255;--N>=0&&(K*=256);)o<0&&de===0&&this[u+N+1]!==0&&(de=1),this[u+N]=(o/K>>0)-de&255;return u+m},r.prototype.writeInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,127,-128),o<0&&(o=255+o+1),this[u]=o&255,u+1},r.prototype.writeInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),this[u]=o&255,this[u+1]=o>>>8,this[u+2]=o>>>16,this[u+3]=o>>>24,u+4},r.prototype.writeInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),o<0&&(o=4294967295+o+1),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4},r.prototype.writeBigInt64LE=fe(function(o,u=0){return B(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),r.prototype.writeBigInt64BE=fe(function(o,u=0){return ee(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Z(o,u,m,C,N,K){if(m+C>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,C,23,4),m+4}r.prototype.writeFloatLE=function(o,u,m){return ue(this,o,u,!0,m)},r.prototype.writeFloatBE=function(o,u,m){return ue(this,o,u,!1,m)};function Ae(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,C,52,8),m+8}r.prototype.writeDoubleLE=function(o,u,m){return Ae(this,o,u,!0,m)},r.prototype.writeDoubleBE=function(o,u,m){return Ae(this,o,u,!1,m)},r.prototype.copy=function(o,u,m,C){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!C&&C!==0&&(C=this.length),u>=o.length&&(u=o.length),u||(u=0),C>0&&C=this.length)throw new RangeError("Index out of range");if(C<0)throw new RangeError("sourceEnd out of bounds");C>this.length&&(C=this.length),o.length-u>>0,m=m===void 0?this.length:m>>>0,o||(o=0);let N;if(typeof o=="number")for(N=u;N2**32?N=oe(String(m)):typeof m=="bigint"&&(N=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(N=oe(N)),N+="n"),C+=` It must be ${u}. Received ${N}`,C},RangeError);function oe(o){let u="",m=o.length,C=o[0]==="-"?1:0;for(;m>=C+4;m-=3)u=`_${o.slice(m-3,m)}${u}`;return`${o.slice(0,m)}${u}`}function X(o,u,m){re(u,"offset"),(o[u]===void 0||o[u+m]===void 0)&&we(u,o.length-(m+1))}function J(o,u,m,C,N,K){if(o>m||o= 0${de} and < 2${de} ** ${(K+1)*8}${de}`:$=`>= -(2${de} ** ${(K+1)*8-1}${de}) and < 2 ** ${(K+1)*8-1}${de}`,new Y.ERR_OUT_OF_RANGE("value",$,o)}X(C,N,K)}function re(o,u){if(typeof o!="number")throw new Y.ERR_INVALID_ARG_TYPE(u,"number",o)}function we(o,u,m){throw Math.floor(o)!==o?(re(o,m),new Y.ERR_OUT_OF_RANGE("offset","an integer",o)):u<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${u}`,o)}let pe=/[^+/0-9A-Za-z-_]/g;function L(o){if(o=o.split("=")[0],o=o.trim().replace(pe,""),o.length<2)return"";for(;o.length%4!==0;)o=o+"=";return o}function H(o,u){u=u||1/0;let m,C=o.length,N=null,K=[];for(let de=0;de55295&&m<57344){if(!N){if(m>56319){(u-=3)>-1&&K.push(239,191,189);continue}else if(de+1===C){(u-=3)>-1&&K.push(239,191,189);continue}N=m;continue}if(m<56320){(u-=3)>-1&&K.push(239,191,189),N=m;continue}m=(N-55296<<10|m-56320)+65536}else N&&(u-=3)>-1&&K.push(239,191,189);if(N=null,m<128){if((u-=1)<0)break;K.push(m)}else if(m<2048){if((u-=2)<0)break;K.push(m>>6|192,m&63|128)}else if(m<65536){if((u-=3)<0)break;K.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((u-=4)<0)break;K.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return K}function se(o){let u=[];for(let m=0;m>8,N=m%256,K.push(N),K.push(C);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,C){let N;for(N=0;N=u.length||N>=o.length);++N)u[N+m]=o[N];return N}function Q(o,u){return o instanceof u||o!=null&&o.constructor!=null&&o.constructor.name!=null&&o.constructor.name===u.name}function _e(o){return o!==o}let Oe=(function(){let o="0123456789abcdef",u=new Array(256);for(let m=0;m<16;++m){let C=m*16;for(let N=0;N<16;++N)u[C+N]=o[m]+o[N]}return u})();function fe(o){return typeof BigInt>"u"?Be:o}function Be(){throw new Error("BigInt not supported")}return Ut}var rr,hi,cr,fi,Ut,pi,zl=yt(()=>{ge(),me(),ye(),rr={},hi=!1,cr={},fi=!1,Ut={},pi=!1}),ot={};or(ot,{Buffer:()=>Gr,INSPECT_MAX_BYTES:()=>Hs,default:()=>It,kMaxLength:()=>Gs});var It,Gr,Hs,Gs,st=yt(()=>{ge(),me(),ye(),zl(),It=Vl(),It.Buffer,It.SlowBuffer,It.INSPECT_MAX_BYTES,It.kMaxLength,Gr=It.Buffer,Hs=It.INSPECT_MAX_BYTES,Gs=It.kMaxLength}),me=yt(()=>{st()}),Ze=Se((f,h)=>{ge(),me(),ye();var s=class extends Error{constructor(a){if(!Array.isArray(a))throw new TypeError(`Expected input to be an Array, got ${typeof a}`);let c="";for(let n=0;n{throw TypeError(f)};var Ml=(f,h,s)=>h in f?jl(f,h,{enumerable:!0,configurable:!0,writable:!0,value:s}):f[h]=s;var it=(f,h,s)=>Ml(f,typeof h!="symbol"?h+"":h,s),rn=(f,h,s)=>h.has(f)||xo("Cannot "+s);var D=(f,h,s)=>(rn(f,h,"read from private field"),s?s.call(f):h.get(f)),qe=(f,h,s)=>h.has(f)?xo("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,s),De=(f,h,s,a)=>(rn(f,h,"write to private field"),a?a.call(f,s):h.set(f,s),s),Ne=(f,h,s)=>(rn(f,h,"access private method"),s);var br=(f,h,s,a)=>({set _(c){De(f,h,c,s)},get _(){return D(f,h,a)}});import{ae as Bl,r as Io,a as Ie}from"./index-BffAdZ7B.js";var ao=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Ul=Object.getOwnPropertyNames,Ll=Object.prototype.hasOwnProperty,yt=(f,h)=>()=>(f&&(h=f(f=0)),h),Se=(f,h)=>()=>(h||f((h={exports:{}}).exports,h),h.exports),or=(f,h)=>{for(var s in h)ao(f,s,{get:h[s],enumerable:!0})},Dl=(f,h,s,a)=>{if(h&&typeof h=="object"||typeof h=="function")for(let c of Ul(h))!Ll.call(f,c)&&c!==s&&ao(f,c,{get:()=>h[c],enumerable:!(a=Nl(h,c))||a.enumerable});return f},Ke=f=>Dl(ao({},"__esModule",{value:!0}),f),ge=yt(()=>{}),Ge={};or(Ge,{_debugEnd:()=>Fn,_debugProcess:()=>Dn,_events:()=>ti,_eventsCount:()=>ri,_exiting:()=>xn,_fatalExceptions:()=>Nn,_getActiveHandles:()=>$s,_getActiveRequests:()=>Ws,_kill:()=>kn,_linkedBinding:()=>Ds,_maxListeners:()=>ei,_preload_modules:()=>Xn,_rawDebug:()=>Sn,_startProfilerIdleNotifier:()=>Wn,_stopProfilerIdleNotifier:()=>$n,_tickCallback:()=>Ln,abort:()=>Kn,addListener:()=>ni,allowedNodeEnvironmentFlags:()=>Mn,arch:()=>ln,argv:()=>hn,argv0:()=>Jn,assert:()=>qs,binding:()=>yn,browser:()=>_n,chdir:()=>vn,config:()=>In,cpuUsage:()=>ur,cwd:()=>bn,debugPort:()=>Yn,default:()=>uo,dlopen:()=>Fs,domain:()=>An,emit:()=>li,emitWarning:()=>gn,env:()=>cn,execArgv:()=>fn,execPath:()=>Qn,exit:()=>Rn,features:()=>Bn,hasUncaughtExceptionCaptureCallback:()=>Vs,hrtime:()=>_r,kill:()=>Cn,listeners:()=>Ks,memoryUsage:()=>Pn,moduleLoadList:()=>En,nextTick:()=>Us,off:()=>oi,on:()=>xt,once:()=>ii,openStdin:()=>jn,pid:()=>Hn,platform:()=>un,ppid:()=>Gn,prependListener:()=>ui,prependOnceListener:()=>ci,reallyExit:()=>On,release:()=>wn,removeAllListeners:()=>ai,removeListener:()=>si,resourceUsage:()=>Tn,setSourceMapsEnabled:()=>Zn,setUncaughtExceptionCaptureCallback:()=>Un,stderr:()=>Vn,stdin:()=>zn,stdout:()=>qn,title:()=>an,umask:()=>mn,uptime:()=>zs,version:()=>pn,versions:()=>dn});function lo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function Fl(){!Jt||!Qt||(Jt=!1,Qt.length?_t=Qt.concat(_t):pr=-1,_t.length&&Ns())}function Ns(){if(!Jt){var f=setTimeout(Fl,0);Jt=!0;for(var h=_t.length;h;){for(Qt=_t,_t=[];++pr1)for(var s=1;s{ge(),me(),ye(),_t=[],Jt=!1,pr=-1,Ls.prototype.run=function(){this.fun.apply(null,this.array)},an="browser",ln="x64",un="browser",cn={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},hn=["/usr/bin/node"],fn=[],pn="v16.8.0",dn={},gn=function(f,h){console.warn((h?h+": ":"")+f)},yn=function(f){lo("binding")},mn=function(f){return 0},bn=function(){return"/"},vn=function(f){},wn={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},_n=!0,Sn=ct,En=[],An={},xn=!1,In={},On=ct,kn=ct,ur=function(){return{}},Tn=ur,Pn=ur,Cn=ct,Rn=ct,jn=ct,Mn={},Bn={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Nn=ct,Un=ct,Ln=ct,Dn=ct,Fn=ct,Wn=ct,$n=ct,qn=void 0,Vn=void 0,zn=void 0,Kn=ct,Hn=2,Gn=1,Qn="/bin/usr/node",Yn=9229,Jn="node",Xn=[],Zn=ct,Ot={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Ot.now===void 0&&(nn=Date.now(),Ot.timing&&Ot.timing.navigationStart&&(nn=Ot.timing.navigationStart),Ot.now=()=>Date.now()-nn),Sr=1e9,_r.bigint=function(f){var h=_r(f);return typeof BigInt>"u"?h[0]*Sr+h[1]:BigInt(h[0]*Sr)+BigInt(h[1])},ei=10,ti={},ri=0,ni=xt,ii=xt,oi=xt,si=xt,ai=xt,li=ct,ui=xt,ci=xt,uo={version:pn,versions:dn,arch:ln,platform:un,browser:_n,release:wn,_rawDebug:Sn,moduleLoadList:En,binding:yn,_linkedBinding:Ds,_events:ti,_eventsCount:ri,_maxListeners:ei,on:xt,addListener:ni,once:ii,off:oi,removeListener:si,removeAllListeners:ai,emit:li,prependListener:ui,prependOnceListener:ci,listeners:Ks,domain:An,_exiting:xn,config:In,dlopen:Fs,uptime:zs,_getActiveRequests:Ws,_getActiveHandles:$s,reallyExit:On,_kill:kn,cpuUsage:ur,resourceUsage:Tn,memoryUsage:Pn,kill:Cn,exit:Rn,openStdin:jn,allowedNodeEnvironmentFlags:Mn,assert:qs,features:Bn,_fatalExceptions:Nn,setUncaughtExceptionCaptureCallback:Un,hasUncaughtExceptionCaptureCallback:Vs,emitWarning:gn,nextTick:Us,_tickCallback:Ln,_debugProcess:Dn,_debugEnd:Fn,_startProfilerIdleNotifier:Wn,_stopProfilerIdleNotifier:$n,stdout:qn,stdin:zn,stderr:Vn,abort:Kn,umask:mn,chdir:vn,cwd:bn,env:cn,title:an,argv:hn,execArgv:fn,pid:Hn,ppid:Gn,execPath:Qn,debugPort:Yn,hrtime:_r,argv0:Jn,_preload_modules:Xn,setSourceMapsEnabled:Zn}}),ye=yt(()=>{Wl()});function $l(){if(hi)return rr;hi=!0,rr.byteLength=t,rr.toByteArray=i,rr.fromByteArray=p;for(var f=[],h=[],s=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,n=a.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var E=g.indexOf("=");E===-1&&(E=b);var S=E===b?0:4-E%4;return[E,S]}function t(g){var b=r(g),E=b[0],S=b[1];return(E+S)*3/4-S}function e(g,b,E){return(b+E)*3/4-E}function i(g){var b,E=r(g),S=E[0],x=E[1],y=new s(e(g,S,x)),v=0,A=x>0?S-4:S,_;for(_=0;_>16&255,y[v++]=b>>8&255,y[v++]=b&255;return x===2&&(b=h[g.charCodeAt(_)]<<2|h[g.charCodeAt(_+1)]>>4,y[v++]=b&255),x===1&&(b=h[g.charCodeAt(_)]<<10|h[g.charCodeAt(_+1)]<<4|h[g.charCodeAt(_+2)]>>2,y[v++]=b>>8&255,y[v++]=b&255),y}function l(g){return f[g>>18&63]+f[g>>12&63]+f[g>>6&63]+f[g&63]}function d(g,b,E){for(var S,x=[],y=b;yA?A:v+y));return S===1?(b=g[E-1],x.push(f[b>>2]+f[b<<4&63]+"==")):S===2&&(b=(g[E-2]<<8)+g[E-1],x.push(f[b>>10]+f[b>>4&63]+f[b<<2&63]+"=")),x.join("")}return rr}function ql(){return fi?cr:(fi=!0,cr.read=function(f,h,s,a,c){var n,r,t=c*8-a-1,e=(1<>1,l=-7,d=s?c-1:0,p=s?-1:1,g=f[h+d];for(d+=p,n=g&(1<<-l)-1,g>>=-l,l+=t;l>0;n=n*256+f[h+d],d+=p,l-=8);for(r=n&(1<<-l)-1,n>>=-l,l+=a;l>0;r=r*256+f[h+d],d+=p,l-=8);if(n===0)n=1-i;else{if(n===e)return r?NaN:(g?-1:1)*(1/0);r=r+Math.pow(2,a),n=n-i}return(g?-1:1)*r*Math.pow(2,n-a)},cr.write=function(f,h,s,a,c,n){var r,t,e,i=n*8-c-1,l=(1<>1,p=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=a?0:n-1,b=a?1:-1,E=h<0||h===0&&1/h<0?1:0;for(h=Math.abs(h),isNaN(h)||h===1/0?(t=isNaN(h)?1:0,r=l):(r=Math.floor(Math.log(h)/Math.LN2),h*(e=Math.pow(2,-r))<1&&(r--,e*=2),r+d>=1?h+=p/e:h+=p*Math.pow(2,1-d),h*e>=2&&(r++,e/=2),r+d>=l?(t=0,r=l):r+d>=1?(t=(h*e-1)*Math.pow(2,c),r=r+d):(t=h*Math.pow(2,d-1)*Math.pow(2,c),r=0));c>=8;f[s+g]=t&255,g+=b,t/=256,c-=8);for(r=r<0;f[s+g]=r&255,g+=b,r/=256,i-=8);f[s+g-b]|=E*128},cr)}function Vl(){if(pi)return Ut;pi=!0;let f=$l(),h=ql(),s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ut.Buffer=r,Ut.SlowBuffer=x,Ut.INSPECT_MAX_BYTES=50;let a=2147483647;Ut.kMaxLength=a,r.TYPED_ARRAY_SUPPORT=c(),!r.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let o=new Uint8Array(1),u={foo:function(){return 42}};return Object.setPrototypeOf(u,Uint8Array.prototype),Object.setPrototypeOf(o,u),o.foo()===42}catch{return!1}}Object.defineProperty(r.prototype,"parent",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.buffer}}),Object.defineProperty(r.prototype,"offset",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.byteOffset}});function n(o){if(o>a)throw new RangeError('The value "'+o+'" is invalid for option "size"');let u=new Uint8Array(o);return Object.setPrototypeOf(u,r.prototype),u}function r(o,u,m){if(typeof o=="number"){if(typeof u=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(o)}return t(o,u,m)}r.poolSize=8192;function t(o,u,m){if(typeof o=="string")return d(o,u);if(ArrayBuffer.isView(o))return g(o);if(o==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o);if(Q(o,ArrayBuffer)||o&&Q(o.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Q(o,SharedArrayBuffer)||o&&Q(o.buffer,SharedArrayBuffer)))return b(o,u,m);if(typeof o=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let C=o.valueOf&&o.valueOf();if(C!=null&&C!==o)return r.from(C,u,m);let N=E(o);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof o[Symbol.toPrimitive]=="function")return r.from(o[Symbol.toPrimitive]("string"),u,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o)}r.from=function(o,u,m){return t(o,u,m)},Object.setPrototypeOf(r.prototype,Uint8Array.prototype),Object.setPrototypeOf(r,Uint8Array);function e(o){if(typeof o!="number")throw new TypeError('"size" argument must be of type number');if(o<0)throw new RangeError('The value "'+o+'" is invalid for option "size"')}function i(o,u,m){return e(o),o<=0?n(o):u!==void 0?typeof m=="string"?n(o).fill(u,m):n(o).fill(u):n(o)}r.alloc=function(o,u,m){return i(o,u,m)};function l(o){return e(o),n(o<0?0:S(o)|0)}r.allocUnsafe=function(o){return l(o)},r.allocUnsafeSlow=function(o){return l(o)};function d(o,u){if((typeof u!="string"||u==="")&&(u="utf8"),!r.isEncoding(u))throw new TypeError("Unknown encoding: "+u);let m=y(o,u)|0,C=n(m),N=C.write(o,u);return N!==m&&(C=C.slice(0,N)),C}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let C=0;C=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return o|0}function x(o){return+o!=o&&(o=0),r.alloc(+o)}r.isBuffer=function(o){return o!=null&&o._isBuffer===!0&&o!==r.prototype},r.compare=function(o,u){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),Q(u,Uint8Array)&&(u=r.from(u,u.offset,u.byteLength)),!r.isBuffer(o)||!r.isBuffer(u))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(o===u)return 0;let m=o.length,C=u.length;for(let N=0,K=Math.min(m,C);NC.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(C,N)):Uint8Array.prototype.set.call(C,K,N);else if(r.isBuffer(K))K.copy(C,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return C};function y(o,u){if(r.isBuffer(o))return o.length;if(ArrayBuffer.isView(o)||Q(o,ArrayBuffer))return o.byteLength;if(typeof o!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof o);let m=o.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&m===0)return 0;let N=!1;for(;;)switch(u){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return H(o).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ve(o).length;default:if(N)return C?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let C=!1;if((u===void 0||u<0)&&(u=0),u>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,u>>>=0,m<=u))return"";for(o||(o="utf8");;)switch(o){case"hex":return te(this,u,m);case"utf8":case"utf-8":return z(this,u,m);case"ascii":return he(this,u,m);case"latin1":case"binary":return ne(this,u,m);case"base64":return k(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(C)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),C=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let C=o[u];o[u]=o[m],o[m]=C}r.prototype.swap16=function(){let o=this.length;if(o%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let u=0;uu&&(o+=" ... "),""},s&&(r.prototype[s]=r.prototype.inspect),r.prototype.compare=function(o,u,m,C,N){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),!r.isBuffer(o))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof o);if(u===void 0&&(u=0),m===void 0&&(m=o?o.length:0),C===void 0&&(C=0),N===void 0&&(N=this.length),u<0||m>o.length||C<0||N>this.length)throw new RangeError("out of range index");if(C>=N&&u>=m)return 0;if(C>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,C>>>=0,N>>>=0,this===o)return 0;let K=N-C,de=m-u,$=Math.min(K,de),ie=this.slice(C,N),Re=o.slice(u,m);for(let Te=0;Te<$;++Te)if(ie[Te]!==Re[Te]){K=ie[Te],de=Re[Te];break}return K2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,_e(m)&&(m=N?0:o.length-1),m<0&&(m=o.length+m),m>=o.length){if(N)return-1;m=o.length-1}else if(m<0)if(N)m=0;else return-1;if(typeof u=="string"&&(u=r.from(u,C)),r.isBuffer(u))return u.length===0?-1:R(o,u,m,C,N);if(typeof u=="number")return u=u&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(o,u,m):Uint8Array.prototype.lastIndexOf.call(o,u,m):R(o,[u],m,C,N);throw new TypeError("val must be string, number or Buffer")}function R(o,u,m,C,N){let K=1,de=o.length,$=u.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(Te,Le){return K===1?Te[Le]:Te.readUInt16BE(Le*K)}let Re;if(N){let Te=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let Te=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){Te=!1;break}if(Te)return Re}return-1}r.prototype.includes=function(o,u,m){return this.indexOf(o,u,m)!==-1},r.prototype.indexOf=function(o,u,m){return _(this,o,u,m,!0)},r.prototype.lastIndexOf=function(o,u,m){return _(this,o,u,m,!1)};function w(o,u,m,C){m=Number(m)||0;let N=o.length-m;C?(C=Number(C),C>N&&(C=N)):C=N;let K=u.length;C>K/2&&(C=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,C===void 0&&(C="utf8")):(C=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let N=this.length-u;if((m===void 0||m>N)&&(m=N),o.length>0&&(m<0||u<0)||u>this.length)throw new RangeError("Attempt to write outside buffer bounds");C||(C="utf8");let K=!1;for(;;)switch(C){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return O(this,o,u,m);case"ascii":case"latin1":case"binary":return T(this,o,u,m);case"base64":return M(this,o,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,o,u,m);default:if(K)throw new TypeError("Unknown encoding: "+C);C=(""+C).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(o,u,m){return u===0&&m===o.length?f.fromByteArray(o):f.fromByteArray(o.slice(u,m))}function z(o,u,m){m=Math.min(o.length,m);let C=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,Te,Le;switch($){case 1:K<128&&(de=K);break;case 2:ie=o[N+1],(ie&192)===128&&(Le=(K&31)<<6|ie&63,Le>127&&(de=Le));break;case 3:ie=o[N+1],Re=o[N+2],(ie&192)===128&&(Re&192)===128&&(Le=(K&15)<<12|(ie&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(de=Le));break;case 4:ie=o[N+1],Re=o[N+2],Te=o[N+3],(ie&192)===128&&(Re&192)===128&&(Te&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|Te&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,C.push(de>>>10&1023|55296),de=56320|de&1023),C.push(de),N+=$}return q(C)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",C=0;for(;CC)&&(m=C);let N="";for(let K=u;Km&&(o=m),u<0?(u+=m,u<0&&(u=0)):u>m&&(u=m),um)throw new RangeError("Trying to access beyond buffer length")}r.prototype.readUintLE=r.prototype.readUIntLE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o+--u],N=1;for(;u>0&&(N*=256);)C+=this[o+--u]*N;return C},r.prototype.readUint8=r.prototype.readUInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]},r.prototype.readUint16LE=r.prototype.readUInt16LE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]|this[o+1]<<8},r.prototype.readUint16BE=r.prototype.readUInt16BE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]<<8|this[o+1]},r.prototype.readUint32LE=r.prototype.readUInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),(this[o]|this[o+1]<<8|this[o+2]<<16)+this[o+3]*16777216},r.prototype.readUint32BE=r.prototype.readUInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]*16777216+(this[o+1]<<16|this[o+2]<<8|this[o+3])},r.prototype.readBigUInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u+this[++o]*2**8+this[++o]*2**16+this[++o]*2**24,N=this[++o]+this[++o]*2**8+this[++o]*2**16+m*2**24;return BigInt(C)+(BigInt(N)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u*2**24+this[++o]*2**16+this[++o]*2**8+this[++o],N=this[++o]*2**24+this[++o]*2**16+this[++o]*2**8+m;return(BigInt(C)<>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K=N&&(C-=Math.pow(2,8*u)),C},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=u,N=1,K=this[o+--C];for(;C>0&&(N*=256);)K+=this[o+--C]*N;return N*=128,K>=N&&(K-=Math.pow(2,8*u)),K},r.prototype.readInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]&128?(255-this[o]+1)*-1:this[o]},r.prototype.readInt16LE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o]|this[o+1]<<8;return m&32768?m|4294901760:m},r.prototype.readInt16BE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o+1]|this[o]<<8;return m&32768?m|4294901760:m},r.prototype.readInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]|this[o+1]<<8|this[o+2]<<16|this[o+3]<<24},r.prototype.readInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]<<24|this[o+1]<<16|this[o+2]<<8|this[o+3]},r.prototype.readBigInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(C)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(C)<>>0,u||V(o,4,this.length),h.read(this,o,!0,23,4)},r.prototype.readFloatBE=function(o,u){return o=o>>>0,u||V(o,4,this.length),h.read(this,o,!1,23,4)},r.prototype.readDoubleLE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!0,52,8)},r.prototype.readDoubleBE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!1,52,8)};function le(o,u,m,C,N,K){if(!r.isBuffer(o))throw new TypeError('"buffer" argument must be a Buffer instance');if(u>N||uo.length)throw new RangeError("Index out of range")}r.prototype.writeUintLE=r.prototype.writeUIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=1,K=0;for(this[u]=o&255;++K>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=m-1,K=1;for(this[u+N]=o&255;--N>=0&&(K*=256);)this[u+N]=o/K&255;return u+m},r.prototype.writeUint8=r.prototype.writeUInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,255,0),this[u]=o&255,u+1},r.prototype.writeUint16LE=r.prototype.writeUInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeUint16BE=r.prototype.writeUInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeUint32LE=r.prototype.writeUInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u+3]=o>>>24,this[u+2]=o>>>16,this[u+1]=o>>>8,this[u]=o&255,u+4},r.prototype.writeUint32BE=r.prototype.writeUInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4};function B(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,m}function ee(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m+7]=K,K=K>>8,o[m+6]=K,K=K>>8,o[m+5]=K,K=K>>8,o[m+4]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m+3]=de,de=de>>8,o[m+2]=de,de=de>>8,o[m+1]=de,de=de>>8,o[m]=de,m+8}r.prototype.writeBigUInt64LE=fe(function(o,u=0){return B(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeBigUInt64BE=fe(function(o,u=0){return ee(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=0,K=1,de=0;for(this[u]=o&255;++N>0)-de&255;return u+m},r.prototype.writeIntBE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=m-1,K=1,de=0;for(this[u+N]=o&255;--N>=0&&(K*=256);)o<0&&de===0&&this[u+N+1]!==0&&(de=1),this[u+N]=(o/K>>0)-de&255;return u+m},r.prototype.writeInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,127,-128),o<0&&(o=255+o+1),this[u]=o&255,u+1},r.prototype.writeInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),this[u]=o&255,this[u+1]=o>>>8,this[u+2]=o>>>16,this[u+3]=o>>>24,u+4},r.prototype.writeInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),o<0&&(o=4294967295+o+1),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4},r.prototype.writeBigInt64LE=fe(function(o,u=0){return B(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),r.prototype.writeBigInt64BE=fe(function(o,u=0){return ee(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Z(o,u,m,C,N,K){if(m+C>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,C,23,4),m+4}r.prototype.writeFloatLE=function(o,u,m){return ue(this,o,u,!0,m)},r.prototype.writeFloatBE=function(o,u,m){return ue(this,o,u,!1,m)};function Ae(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,C,52,8),m+8}r.prototype.writeDoubleLE=function(o,u,m){return Ae(this,o,u,!0,m)},r.prototype.writeDoubleBE=function(o,u,m){return Ae(this,o,u,!1,m)},r.prototype.copy=function(o,u,m,C){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!C&&C!==0&&(C=this.length),u>=o.length&&(u=o.length),u||(u=0),C>0&&C=this.length)throw new RangeError("Index out of range");if(C<0)throw new RangeError("sourceEnd out of bounds");C>this.length&&(C=this.length),o.length-u>>0,m=m===void 0?this.length:m>>>0,o||(o=0);let N;if(typeof o=="number")for(N=u;N2**32?N=oe(String(m)):typeof m=="bigint"&&(N=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(N=oe(N)),N+="n"),C+=` It must be ${u}. Received ${N}`,C},RangeError);function oe(o){let u="",m=o.length,C=o[0]==="-"?1:0;for(;m>=C+4;m-=3)u=`_${o.slice(m-3,m)}${u}`;return`${o.slice(0,m)}${u}`}function X(o,u,m){re(u,"offset"),(o[u]===void 0||o[u+m]===void 0)&&we(u,o.length-(m+1))}function J(o,u,m,C,N,K){if(o>m||o= 0${de} and < 2${de} ** ${(K+1)*8}${de}`:$=`>= -(2${de} ** ${(K+1)*8-1}${de}) and < 2 ** ${(K+1)*8-1}${de}`,new Y.ERR_OUT_OF_RANGE("value",$,o)}X(C,N,K)}function re(o,u){if(typeof o!="number")throw new Y.ERR_INVALID_ARG_TYPE(u,"number",o)}function we(o,u,m){throw Math.floor(o)!==o?(re(o,m),new Y.ERR_OUT_OF_RANGE("offset","an integer",o)):u<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${u}`,o)}let pe=/[^+/0-9A-Za-z-_]/g;function L(o){if(o=o.split("=")[0],o=o.trim().replace(pe,""),o.length<2)return"";for(;o.length%4!==0;)o=o+"=";return o}function H(o,u){u=u||1/0;let m,C=o.length,N=null,K=[];for(let de=0;de55295&&m<57344){if(!N){if(m>56319){(u-=3)>-1&&K.push(239,191,189);continue}else if(de+1===C){(u-=3)>-1&&K.push(239,191,189);continue}N=m;continue}if(m<56320){(u-=3)>-1&&K.push(239,191,189),N=m;continue}m=(N-55296<<10|m-56320)+65536}else N&&(u-=3)>-1&&K.push(239,191,189);if(N=null,m<128){if((u-=1)<0)break;K.push(m)}else if(m<2048){if((u-=2)<0)break;K.push(m>>6|192,m&63|128)}else if(m<65536){if((u-=3)<0)break;K.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((u-=4)<0)break;K.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return K}function se(o){let u=[];for(let m=0;m>8,N=m%256,K.push(N),K.push(C);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,C){let N;for(N=0;N=u.length||N>=o.length);++N)u[N+m]=o[N];return N}function Q(o,u){return o instanceof u||o!=null&&o.constructor!=null&&o.constructor.name!=null&&o.constructor.name===u.name}function _e(o){return o!==o}let Oe=(function(){let o="0123456789abcdef",u=new Array(256);for(let m=0;m<16;++m){let C=m*16;for(let N=0;N<16;++N)u[C+N]=o[m]+o[N]}return u})();function fe(o){return typeof BigInt>"u"?Be:o}function Be(){throw new Error("BigInt not supported")}return Ut}var rr,hi,cr,fi,Ut,pi,zl=yt(()=>{ge(),me(),ye(),rr={},hi=!1,cr={},fi=!1,Ut={},pi=!1}),ot={};or(ot,{Buffer:()=>Gr,INSPECT_MAX_BYTES:()=>Hs,default:()=>It,kMaxLength:()=>Gs});var It,Gr,Hs,Gs,st=yt(()=>{ge(),me(),ye(),zl(),It=Vl(),It.Buffer,It.SlowBuffer,It.INSPECT_MAX_BYTES,It.kMaxLength,Gr=It.Buffer,Hs=It.INSPECT_MAX_BYTES,Gs=It.kMaxLength}),me=yt(()=>{st()}),Ze=Se((f,h)=>{ge(),me(),ye();var s=class extends Error{constructor(a){if(!Array.isArray(a))throw new TypeError(`Expected input to be an Array, got ${typeof a}`);let c="";for(let n=0;n{ge(),me(),ye(),h.exports={format(s,...a){return s.replace(/%([sdifj])/g,function(...[c,n]){let r=a.shift();return n==="f"?r.toFixed(6):n==="j"?JSON.stringify(r):n==="s"&&typeof r=="object"?`${r.constructor!==Object?r.constructor.name:""} {}`.trim():r.toString()})},inspect(s){switch(typeof s){case"string":if(s.includes("'"))if(s.includes('"')){if(!s.includes("`")&&!s.includes("${"))return`\`${s}\``}else return`"${s}"`;return`'${s}'`;case"number":return isNaN(s)?"NaN":Object.is(s,-0)?String(s):s;case"bigint":return`${String(s)}n`;case"boolean":case"undefined":return String(s);case"object":return"{}"}}}}),pt=Se((f,h)=>{ge(),me(),ye();var{format:s,inspect:a}=Qs(),{AggregateError:c}=Ze(),n=globalThis.AggregateError||c,r=Symbol("kIsNodeError"),t=["string","function","number","object","Function","Object","boolean","bigint","symbol"],e=/^([A-Z][a-z0-9]*)+$/,i="__node_internal_",l={};function d(y,v){if(!y)throw new l.ERR_INTERNAL_ASSERTION(v)}function p(y){let v="",A=y.length,_=y[0]==="-"?1:0;for(;A>=_+4;A-=3)v=`_${y.slice(A-3,A)}${v}`;return`${y.slice(0,A)}${v}`}function g(y,v,A){if(typeof v=="function")return d(v.length<=A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${v.length}).`),v(...A);let _=(v.match(/%[dfijoOs]/g)||[]).length;return d(_===A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${_}).`),A.length===0?v:s(v,...A)}function b(y,v,A){A||(A=Error);class _ extends A{constructor(...w){super(g(y,v,w))}toString(){return`${this.name} [${y}]: ${this.message}`}}Object.defineProperties(_.prototype,{name:{value:A.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${y}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=y,_.prototype[r]=!0,l[y]=_}function E(y){let v=i+y.name;return Object.defineProperty(y,"name",{value:v}),y}function S(y,v){if(y&&v&&y!==v){if(Array.isArray(v.errors))return v.errors.push(y),v;let A=new n([v,y],v.message);return A.code=v.code,A}return y||v}var x=class extends Error{constructor(y="The operation was aborted",v=void 0){if(v!==void 0&&typeof v!="object")throw new l.ERR_INVALID_ARG_TYPE("options","Object",v);super(y,v),this.code="ABORT_ERR",this.name="AbortError"}};b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",(y,v,A)=>{d(typeof y=="string","'name' must be a string"),Array.isArray(v)||(v=[v]);let _="The ";y.endsWith(" argument")?_+=`${y} `:_+=`"${y}" ${y.includes(".")?"property":"argument"} `,_+="must be ";let R=[],w=[],O=[];for(let M of v)d(typeof M=="string","All expected entries have to be of type string"),t.includes(M)?R.push(M.toLowerCase()):e.test(M)?w.push(M):(d(M!=="object",'The value "object" should be written as "Object"'),O.push(M));if(w.length>0){let M=R.indexOf("object");M!==-1&&(R.splice(R,M,1),w.push("Object"))}if(R.length>0){switch(R.length){case 1:_+=`of type ${R[0]}`;break;case 2:_+=`one of type ${R[0]} or ${R[1]}`;break;default:{let M=R.pop();_+=`one of type ${R.join(", ")}, or ${M}`}}(w.length>0||O.length>0)&&(_+=" or ")}if(w.length>0){switch(w.length){case 1:_+=`an instance of ${w[0]}`;break;case 2:_+=`an instance of ${w[0]} or ${w[1]}`;break;default:{let M=w.pop();_+=`an instance of ${w.join(", ")}, or ${M}`}}O.length>0&&(_+=" or ")}switch(O.length){case 0:break;case 1:O[0].toLowerCase()!==O[0]&&(_+="an "),_+=`${O[0]}`;break;case 2:_+=`one of ${O[0]} or ${O[1]}`;break;default:{let M=O.pop();_+=`one of ${O.join(", ")}, or ${M}`}}if(A==null)_+=`. Received ${A}`;else if(typeof A=="function"&&A.name)_+=`. Received function ${A.name}`;else if(typeof A=="object"){var T;if((T=A.constructor)!==null&&T!==void 0&&T.name)_+=`. Received an instance of ${A.constructor.name}`;else{let M=a(A,{depth:-1});_+=`. Received ${M}`}}else{let M=a(A,{colors:!1});M.length>25&&(M=`${M.slice(0,25)}...`),_+=`. Received type ${typeof A} (${M})`}return _},TypeError),b("ERR_INVALID_ARG_VALUE",(y,v,A="is invalid")=>{let _=a(v);return _.length>128&&(_=_.slice(0,128)+"..."),`The ${y.includes(".")?"property":"argument"} '${y}' ${A}. Received ${_}`},TypeError),b("ERR_INVALID_RETURN_VALUE",(y,v,A)=>{var _;let R=A!=null&&(_=A.constructor)!==null&&_!==void 0&&_.name?`instance of ${A.constructor.name}`:`type ${typeof A}`;return`Expected ${y} to be returned from the "${v}" function but got ${R}.`},TypeError),b("ERR_MISSING_ARGS",(...y)=>{d(y.length>0,"At least one arg needs to be specified");let v,A=y.length;switch(y=(Array.isArray(y)?y:[y]).map(_=>`"${_}"`).join(" or "),A){case 1:v+=`The ${y[0]} argument`;break;case 2:v+=`The ${y[0]} and ${y[1]} arguments`;break;default:{let _=y.pop();v+=`The ${y.join(", ")}, and ${_} arguments`}break}return`${v} must be specified`},TypeError),b("ERR_OUT_OF_RANGE",(y,v,A)=>{d(v,'Missing "range" argument');let _;if(Number.isInteger(A)&&Math.abs(A)>2**32)_=p(String(A));else if(typeof A=="bigint"){_=String(A);let R=BigInt(2)**BigInt(32);(A>R||A<-R)&&(_=p(_)),_+="n"}else _=a(A);return`The value of "${y}" is out of range. It must be ${v}. Received ${_}`},RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),h.exports={AbortError:x,aggregateTwoErrors:E(S),hideStackFrames:E,codes:l}}),gr=Se((f,h)=>{ge(),me(),ye();var{AbortController:s,AbortSignal:a}=typeof self<"u"?self:typeof window<"u"?window:void 0;h.exports=s,h.exports.AbortSignal=a,h.exports.default=s}),qt={};or(qt,{EventEmitter:()=>Ys,default:()=>nr,defaultMaxListeners:()=>Js,init:()=>Xs,listenerCount:()=>Zs,on:()=>ea,once:()=>ta});function Kl(){if(di)return hr;di=!0;var f=typeof Reflect=="object"?Reflect:null,h=f&&typeof f.apply=="function"?f.apply:function(A,_,R){return Function.prototype.apply.call(A,_,R)},s;f&&typeof f.ownKeys=="function"?s=f.ownKeys:Object.getOwnPropertySymbols?s=function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:s=function(A){return Object.getOwnPropertyNames(A)};function a(A){console&&console.warn&&console.warn(A)}var c=Number.isNaN||function(A){return A!==A};function n(){n.init.call(this)}hr=n,hr.once=x,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._eventsCount=0,n.prototype._maxListeners=void 0;var r=10;function t(A){if(typeof A!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof A)}Object.defineProperty(n,"defaultMaxListeners",{enumerable:!0,get:function(){return r},set:function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+A+".");r=A}}),n.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},n.prototype.setMaxListeners=function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this};function e(A){return A._maxListeners===void 0?n.defaultMaxListeners:A._maxListeners}n.prototype.getMaxListeners=function(){return e(this)},n.prototype.emit=function(A){for(var _=[],R=1;R0&&(T=_[0]),T instanceof Error)throw T;var M=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw M.context=T,M}var U=O[A];if(U===void 0)return!1;if(typeof U=="function")h(U,this,_);else for(var k=U.length,z=b(U,k),R=0;R0&&M.length>O&&!M.warned){M.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+M.length+" "+String(_)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=A,U.type=_,U.count=M.length,a(U)}return A}n.prototype.addListener=function(A,_){return i(this,A,_,!1)},n.prototype.on=n.prototype.addListener,n.prototype.prependListener=function(A,_){return i(this,A,_,!0)};function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(A,_,R){var w={fired:!1,wrapFn:void 0,target:A,type:_,listener:R},O=l.bind(w);return O.listener=R,w.wrapFn=O,O}n.prototype.once=function(A,_){return t(_),this.on(A,d(this,A,_)),this},n.prototype.prependOnceListener=function(A,_){return t(_),this.prependListener(A,d(this,A,_)),this},n.prototype.removeListener=function(A,_){var R,w,O,T,M;if(t(_),w=this._events,w===void 0)return this;if(R=w[A],R===void 0)return this;if(R===_||R.listener===_)--this._eventsCount===0?this._events=Object.create(null):(delete w[A],w.removeListener&&this.emit("removeListener",A,R.listener||_));else if(typeof R!="function"){for(O=-1,T=R.length-1;T>=0;T--)if(R[T]===_||R[T].listener===_){M=R[T].listener,O=T;break}if(O<0)return this;O===0?R.shift():E(R,O),R.length===1&&(w[A]=R[0]),w.removeListener!==void 0&&this.emit("removeListener",A,M||_)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(A){var _,R,w;if(R=this._events,R===void 0)return this;if(R.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):R[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete R[A]),this;if(arguments.length===0){var O=Object.keys(R),T;for(w=0;w=0;w--)this.removeListener(A,_[w]);return this};function p(A,_,R){var w=A._events;if(w===void 0)return[];var O=w[_];return O===void 0?[]:typeof O=="function"?R?[O.listener||O]:[O]:R?S(O):b(O,O.length)}n.prototype.listeners=function(A){return p(this,A,!0)},n.prototype.rawListeners=function(A){return p(this,A,!1)},n.listenerCount=function(A,_){return typeof A.listenerCount=="function"?A.listenerCount(_):g.call(A,_)},n.prototype.listenerCount=g;function g(A){var _=this._events;if(_!==void 0){var R=_[A];if(typeof R=="function")return 1;if(R!==void 0)return R.length}return 0}n.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function b(A,_){for(var R=new Array(_),w=0;w<_;++w)R[w]=A[w];return R}function E(A,_){for(;_+1{ge(),me(),ye(),hr={},di=!1,nr=Kl(),nr.once,nr.once=function(f,h){return new Promise((s,a)=>{function c(...r){n!==void 0&&f.removeListener("error",n),s(r)}let n;h!=="error"&&(n=r=>{f.removeListener(name,c),a(r)},f.once("error",n)),f.once(h,c)})},nr.on=function(f,h){let s=[],a=[],c=null,n=!1,r={async next(){let i=s.shift();if(i)return createIterResult(i,!1);if(c){let l=Promise.reject(c);return c=null,l}return n?createIterResult(void 0,!0):new Promise((l,d)=>a.push({resolve:l,reject:d}))},async return(){f.removeListener(h,t),f.removeListener("error",e),n=!0;for(let i of a)i.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(i){c=i,f.removeListener(h,t),f.removeListener("error",e)},[Symbol.asyncIterator](){return this}};return f.on(h,t),f.on("error",e),r;function t(...i){let l=a.shift();l?l.resolve(createIterResult(i,!1)):s.push(i)}function e(i){n=!0;let l=a.shift();l?l.reject(i):c=i,r.return()}},{EventEmitter:Ys,defaultMaxListeners:Js,init:Xs,listenerCount:Zs,on:ea,once:ta}=nr}),gt=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),{format:a,inspect:c}=Qs(),{codes:{ERR_INVALID_ARG_TYPE:n}}=pt(),{kResistStopPropagation:r,AggregateError:t,SymbolDispose:e}=Ze(),i=globalThis.AbortSignal||gr().AbortSignal,l=globalThis.AbortController||gr().AbortController,d=Object.getPrototypeOf(async function(){}).constructor,p=globalThis.Blob||s.Blob,g=typeof p<"u"?function(S){return S instanceof p}:function(S){return!1},b=(S,x)=>{if(S!==void 0&&(S===null||typeof S!="object"||!("aborted"in S)))throw new n(x,"AbortSignal",S)},E=(S,x)=>{if(typeof S!="function")throw new n(x,"Function",S)};h.exports={AggregateError:t,kEmptyObject:Object.freeze({}),once(S){let x=!1;return function(...y){x||(x=!0,S.apply(this,y))}},createDeferredPromise:function(){let S,x;return{promise:new Promise((y,v)=>{S=y,x=v}),resolve:S,reject:x}},promisify(S){return new Promise((x,y)=>{S((v,...A)=>v?y(v):x(...A))})},debuglog(){return function(){}},format:a,inspect:c,types:{isAsyncFunction(S){return S instanceof d},isArrayBufferView(S){return ArrayBuffer.isView(S)}},isBlob:g,deprecate(S,x){return S},addAbortListener:(Zt(),Ke(qt)).addAbortListener||function(S,x){if(S===void 0)throw new n("signal","AbortSignal",S);b(S,"signal"),E(x,"listener");let y;return S.aborted?queueMicrotask(()=>x()):(S.addEventListener("abort",x,{__proto__:null,once:!0,[r]:!0}),y=()=>{S.removeEventListener("abort",x)}),{__proto__:null,[e](){var v;(v=y)===null||v===void 0||v()}}},AbortSignalAny:i.any||function(S){if(S.length===1)return S[0];let x=new l,y=()=>x.abort();return S.forEach(v=>{b(v,"signals"),v.addEventListener("abort",y,{once:!0})}),x.signal.addEventListener("abort",()=>{S.forEach(v=>v.removeEventListener("abort",y))},{once:!0}),x.signal}},h.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),yr=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ArrayPrototypeIncludes:a,ArrayPrototypeJoin:c,ArrayPrototypeMap:n,NumberIsInteger:r,NumberIsNaN:t,NumberMAX_SAFE_INTEGER:e,NumberMIN_SAFE_INTEGER:i,NumberParseInt:l,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:p,String:g,StringPrototypeToUpperCase:b,StringPrototypeTrim:E}=Ze(),{hideStackFrames:S,codes:{ERR_SOCKET_BAD_PORT:x,ERR_INVALID_ARG_TYPE:y,ERR_INVALID_ARG_VALUE:v,ERR_OUT_OF_RANGE:A,ERR_UNKNOWN_SIGNAL:_}}=pt(),{normalizeEncoding:R}=gt(),{isAsyncFunction:w,isArrayBufferView:O}=gt().types,T={};function M(Q){return Q===(Q|0)}function U(Q){return Q===Q>>>0}var k=/^[0-7]+$/,z="must be a 32-bit unsigned integer or an octal string";function G(Q,_e,Oe){if(typeof Q>"u"&&(Q=Oe),typeof Q=="string"){if(p(k,Q)===null)throw new v(_e,Q,z);Q=l(Q,8)}return ne(Q,_e),Q}var q=S((Q,_e,Oe=i,fe=e)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),he=S((Q,_e,Oe=-2147483648,fe=2147483647)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),ne=S((Q,_e,Oe=!1)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);let fe=Oe?1:0,Be=4294967295;if(QBe)throw new A(_e,`>= ${fe} && <= ${Be}`,Q)});function te(Q,_e){if(typeof Q!="string")throw new y(_e,"string",Q)}function ce(Q,_e,Oe=void 0,fe){if(typeof Q!="number")throw new y(_e,"number",Q);if(Oe!=null&&Qfe||(Oe!=null||fe!=null)&&t(Q))throw new A(_e,`${Oe!=null?`>= ${Oe}`:""}${Oe!=null&&fe!=null?" && ":""}${fe!=null?`<= ${fe}`:""}`,Q)}var V=S((Q,_e,Oe)=>{if(!a(Oe,Q)){let fe="must be one of: "+c(n(Oe,Be=>typeof Be=="string"?`'${Be}'`:g(Be)),", ");throw new v(_e,Q,fe)}});function le(Q,_e){if(typeof Q!="boolean")throw new y(_e,"boolean",Q)}function B(Q,_e,Oe){return Q==null||!d(Q,_e)?Oe:Q[_e]}var ee=S((Q,_e,Oe=null)=>{let fe=B(Oe,"allowArray",!1),Be=B(Oe,"allowFunction",!1);if(!B(Oe,"nullable",!1)&&Q===null||!fe&&s(Q)||typeof Q!="object"&&(!Be||typeof Q!="function"))throw new y(_e,"Object",Q)}),Z=S((Q,_e)=>{if(Q!=null&&typeof Q!="object"&&typeof Q!="function")throw new y(_e,"a dictionary",Q)}),ue=S((Q,_e,Oe=0)=>{if(!s(Q))throw new y(_e,"Array",Q);if(Q.length{if(!O(Q))throw new y(_e,["Buffer","TypedArray","DataView"],Q)});function J(Q,_e){let Oe=R(_e),fe=Q.length;if(Oe==="hex"&&fe%2!==0)throw new v("encoding",_e,`is invalid for data of length ${fe}`)}function re(Q,_e="Port",Oe=!0){if(typeof Q!="number"&&typeof Q!="string"||typeof Q=="string"&&E(Q).length===0||+Q!==+Q>>>0||Q>65535||Q===0&&!Oe)throw new x(_e,Q,Oe);return Q|0}var we=S((Q,_e)=>{if(Q!==void 0&&(Q===null||typeof Q!="object"||!("aborted"in Q)))throw new y(_e,"AbortSignal",Q)}),pe=S((Q,_e)=>{if(typeof Q!="function")throw new y(_e,"Function",Q)}),L=S((Q,_e)=>{if(typeof Q!="function"||w(Q))throw new y(_e,"Function",Q)}),H=S((Q,_e)=>{if(Q!==void 0)throw new y(_e,"undefined",Q)});function se(Q,_e,Oe){if(!a(Oe,Q))throw new y(_e,`('${c(Oe,"|")}')`,Q)}var be=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ve(Q,_e){if(typeof Q>"u"||!p(be,Q))throw new v(_e,Q,'must be an array or string of format "; rel=preload; as=style"')}function Ee(Q){if(typeof Q=="string")return ve(Q,"hints"),Q;if(s(Q)){let _e=Q.length,Oe="";if(_e===0)return Oe;for(let fe=0;fe<_e;fe++){let Be=Q[fe];ve(Be,"hints"),Oe+=Be,fe!==_e-1&&(Oe+=", ")}return Oe}throw new v("hints",Q,'must be an array or string of format "; rel=preload; as=style"')}h.exports={isInt32:M,isUint32:U,parseFileMode:G,validateArray:ue,validateStringArray:Ae,validateBooleanArray:Y,validateAbortSignalArray:W,validateBoolean:le,validateBuffer:X,validateDictionary:Z,validateEncoding:J,validateFunction:pe,validateInt32:he,validateInteger:q,validateNumber:ce,validateObject:ee,validateOneOf:V,validatePlainFunction:L,validatePort:re,validateSignalName:oe,validateString:te,validateUint32:ne,validateUndefined:H,validateUnion:se,validateAbortSignal:we,validateLinkHeaderValue:Ee}}),er=Se((f,h)=>{ge(),me(),ye();var s=h.exports={},a,c;function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=n}catch{a=n}try{typeof clearTimeout=="function"?c=clearTimeout:c=r}catch{c=r}})();function t(x){if(a===setTimeout)return setTimeout(x,0);if((a===n||!a)&&setTimeout)return a=setTimeout,setTimeout(x,0);try{return a(x,0)}catch{try{return a.call(null,x,0)}catch{return a.call(this,x,0)}}}function e(x){if(c===clearTimeout)return clearTimeout(x);if((c===r||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(x);try{return c(x)}catch{try{return c.call(null,x)}catch{return c.call(this,x)}}}var i=[],l=!1,d,p=-1;function g(){!l||!d||(l=!1,d.length?i=d.concat(i):p=-1,i.length&&b())}function b(){if(!l){var x=t(g);l=!0;for(var y=i.length;y;){for(d=i,i=[];++p1)for(var v=1;v{ge(),me(),ye();var{SymbolAsyncIterator:s,SymbolIterator:a,SymbolFor:c}=Ze(),n=c("nodejs.stream.destroyed"),r=c("nodejs.stream.errored"),t=c("nodejs.stream.readable"),e=c("nodejs.stream.writable"),i=c("nodejs.stream.disturbed"),l=c("nodejs.webstream.isClosedPromise"),d=c("nodejs.webstream.controllerErrorFunction");function p(B,ee=!1){var Z;return!!(B&&typeof B.pipe=="function"&&typeof B.on=="function"&&(!ee||typeof B.pause=="function"&&typeof B.resume=="function")&&(!B._writableState||((Z=B._readableState)===null||Z===void 0?void 0:Z.readable)!==!1)&&(!B._writableState||B._readableState))}function g(B){var ee;return!!(B&&typeof B.write=="function"&&typeof B.on=="function"&&(!B._readableState||((ee=B._writableState)===null||ee===void 0?void 0:ee.writable)!==!1))}function b(B){return!!(B&&typeof B.pipe=="function"&&B._readableState&&typeof B.on=="function"&&typeof B.write=="function")}function E(B){return B&&(B._readableState||B._writableState||typeof B.write=="function"&&typeof B.on=="function"||typeof B.pipe=="function"&&typeof B.on=="function")}function S(B){return!!(B&&!E(B)&&typeof B.pipeThrough=="function"&&typeof B.getReader=="function"&&typeof B.cancel=="function")}function x(B){return!!(B&&!E(B)&&typeof B.getWriter=="function"&&typeof B.abort=="function")}function y(B){return!!(B&&!E(B)&&typeof B.readable=="object"&&typeof B.writable=="object")}function v(B){return S(B)||x(B)||y(B)}function A(B,ee){return B==null?!1:ee===!0?typeof B[s]=="function":ee===!1?typeof B[a]=="function":typeof B[s]=="function"||typeof B[a]=="function"}function _(B){if(!E(B))return null;let ee=B._writableState,Z=B._readableState,ue=ee||Z;return!!(B.destroyed||B[n]||ue!=null&&ue.destroyed)}function R(B){if(!g(B))return null;if(B.writableEnded===!0)return!0;let ee=B._writableState;return ee!=null&&ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function w(B,ee){if(!g(B))return null;if(B.writableFinished===!0)return!0;let Z=B._writableState;return Z!=null&&Z.errored?!1:typeof Z?.finished!="boolean"?null:!!(Z.finished||ee===!1&&Z.ended===!0&&Z.length===0)}function O(B){if(!p(B))return null;if(B.readableEnded===!0)return!0;let ee=B._readableState;return!ee||ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function T(B,ee){if(!p(B))return null;let Z=B._readableState;return Z!=null&&Z.errored?!1:typeof Z?.endEmitted!="boolean"?null:!!(Z.endEmitted||ee===!1&&Z.ended===!0&&Z.length===0)}function M(B){return B&&B[t]!=null?B[t]:typeof B?.readable!="boolean"?null:_(B)?!1:p(B)&&B.readable&&!T(B)}function U(B){return B&&B[e]!=null?B[e]:typeof B?.writable!="boolean"?null:_(B)?!1:g(B)&&B.writable&&!R(B)}function k(B,ee){return E(B)?_(B)?!0:!(ee?.readable!==!1&&M(B)||ee?.writable!==!1&&U(B)):null}function z(B){var ee,Z;return E(B)?B.writableErrored?B.writableErrored:(ee=(Z=B._writableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function G(B){var ee,Z;return E(B)?B.readableErrored?B.readableErrored:(ee=(Z=B._readableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function q(B){if(!E(B))return null;if(typeof B.closed=="boolean")return B.closed;let ee=B._writableState,Z=B._readableState;return typeof ee?.closed=="boolean"||typeof Z?.closed=="boolean"?ee?.closed||Z?.closed:typeof B._closed=="boolean"&&he(B)?B._closed:null}function he(B){return typeof B._closed=="boolean"&&typeof B._defaultKeepAlive=="boolean"&&typeof B._removedConnection=="boolean"&&typeof B._removedContLen=="boolean"}function ne(B){return typeof B._sent100=="boolean"&&he(B)}function te(B){var ee;return typeof B._consuming=="boolean"&&typeof B._dumped=="boolean"&&((ee=B.req)===null||ee===void 0?void 0:ee.upgradeOrConnect)===void 0}function ce(B){if(!E(B))return null;let ee=B._writableState,Z=B._readableState,ue=ee||Z;return!ue&&ne(B)||!!(ue&&ue.autoDestroy&&ue.emitClose&&ue.closed===!1)}function V(B){var ee;return!!(B&&((ee=B[i])!==null&&ee!==void 0?ee:B.readableDidRead||B.readableAborted))}function le(B){var ee,Z,ue,Ae,Y,W,oe,X,J,re;return!!(B&&((ee=(Z=(ue=(Ae=(Y=(W=B[r])!==null&&W!==void 0?W:B.readableErrored)!==null&&Y!==void 0?Y:B.writableErrored)!==null&&Ae!==void 0?Ae:(oe=B._readableState)===null||oe===void 0?void 0:oe.errorEmitted)!==null&&ue!==void 0?ue:(X=B._writableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&Z!==void 0?Z:(J=B._readableState)===null||J===void 0?void 0:J.errored)!==null&&ee!==void 0?ee:!((re=B._writableState)===null||re===void 0)&&re.errored))}h.exports={isDestroyed:_,kIsDestroyed:n,isDisturbed:V,kIsDisturbed:i,isErrored:le,kIsErrored:r,isReadable:M,kIsReadable:t,kIsClosedPromise:l,kControllerErrorFunction:d,kIsWritable:e,isClosed:q,isDuplexNodeStream:b,isFinished:k,isIterable:A,isReadableNodeStream:p,isReadableStream:S,isReadableEnded:O,isReadableFinished:T,isReadableErrored:G,isNodeStream:E,isWebStream:v,isWritable:U,isWritableNodeStream:g,isWritableStream:x,isWritableEnded:R,isWritableFinished:w,isWritableErrored:z,isServerRequest:te,isServerResponse:ne,willEmitClose:ce,isTransformStream:y}}),Vt=Se((f,h)=>{ge(),me(),ye();var s=er(),{AbortError:a,codes:c}=pt(),{ERR_INVALID_ARG_TYPE:n,ERR_STREAM_PREMATURE_CLOSE:r}=c,{kEmptyObject:t,once:e}=gt(),{validateAbortSignal:i,validateFunction:l,validateObject:d,validateBoolean:p}=yr(),{Promise:g,PromisePrototypeThen:b,SymbolDispose:E}=Ze(),{isClosed:S,isReadable:x,isReadableNodeStream:y,isReadableStream:v,isReadableFinished:A,isReadableErrored:_,isWritable:R,isWritableNodeStream:w,isWritableStream:O,isWritableFinished:T,isWritableErrored:M,isNodeStream:U,willEmitClose:k,kIsClosedPromise:z}=Ct(),G;function q(V){return V.setHeader&&typeof V.abort=="function"}var he=()=>{};function ne(V,le,B){var ee,Z;if(arguments.length===2?(B=le,le=t):le==null?le=t:d(le,"options"),l(B,"callback"),i(le.signal,"options.signal"),B=e(B),v(V)||O(V))return te(V,le,B);if(!U(V))throw new n("stream",["ReadableStream","WritableStream","Stream"],V);let ue=(ee=le.readable)!==null&&ee!==void 0?ee:y(V),Ae=(Z=le.writable)!==null&&Z!==void 0?Z:w(V),Y=V._writableState,W=V._readableState,oe=()=>{V.writable||re()},X=k(V)&&y(V)===ue&&w(V)===Ae,J=T(V,!1),re=()=>{J=!0,V.destroyed&&(X=!1),!(X&&(!V.readable||ue))&&(!ue||we)&&B.call(V)},we=A(V,!1),pe=()=>{we=!0,V.destroyed&&(X=!1),!(X&&(!V.writable||Ae))&&(!Ae||J)&&B.call(V)},L=Q=>{B.call(V,Q)},H=S(V),se=()=>{H=!0;let Q=M(V)||_(V);if(Q&&typeof Q!="boolean")return B.call(V,Q);if(ue&&!we&&y(V,!0)&&!A(V,!1))return B.call(V,new r);if(Ae&&!J&&!T(V,!1))return B.call(V,new r);B.call(V)},be=()=>{H=!0;let Q=M(V)||_(V);if(Q&&typeof Q!="boolean")return B.call(V,Q);B.call(V)},ve=()=>{V.req.on("finish",re)};q(V)?(V.on("complete",re),X||V.on("abort",se),V.req?ve():V.on("request",ve)):Ae&&!Y&&(V.on("end",oe),V.on("close",oe)),!X&&typeof V.aborted=="boolean"&&V.on("aborted",se),V.on("end",pe),V.on("finish",re),le.error!==!1&&V.on("error",L),V.on("close",se),H?s.nextTick(se):Y!=null&&Y.errorEmitted||W!=null&&W.errorEmitted?X||s.nextTick(be):(!ue&&(!X||x(V))&&(J||R(V)===!1)||!Ae&&(!X||R(V))&&(we||x(V)===!1)||W&&V.req&&V.aborted)&&s.nextTick(be);let Ee=()=>{B=he,V.removeListener("aborted",se),V.removeListener("complete",re),V.removeListener("abort",se),V.removeListener("request",ve),V.req&&V.req.removeListener("finish",re),V.removeListener("end",oe),V.removeListener("close",oe),V.removeListener("finish",re),V.removeListener("end",pe),V.removeListener("error",L),V.removeListener("close",se)};if(le.signal&&!H){let Q=()=>{let _e=B;Ee(),_e.call(V,new a(void 0,{cause:le.signal.reason}))};if(le.signal.aborted)s.nextTick(Q);else{G=G||gt().addAbortListener;let _e=G(le.signal,Q),Oe=B;B=e((...fe)=>{_e[E](),Oe.apply(V,fe)})}}return Ee}function te(V,le,B){let ee=!1,Z=he;if(le.signal)if(Z=()=>{ee=!0,B.call(V,new a(void 0,{cause:le.signal.reason}))},le.signal.aborted)s.nextTick(Z);else{G=G||gt().addAbortListener;let Ae=G(le.signal,Z),Y=B;B=e((...W)=>{Ae[E](),Y.apply(V,W)})}let ue=(...Ae)=>{ee||s.nextTick(()=>B.apply(V,Ae))};return b(V[z].promise,ue,ue),he}function ce(V,le){var B;let ee=!1;return le===null&&(le=t),(B=le)!==null&&B!==void 0&&B.cleanup&&(p(le.cleanup,"cleanup"),ee=le.cleanup),new g((Z,ue)=>{let Ae=ne(V,le,Y=>{ee&&Ae(),Y?ue(Y):Z()})})}h.exports=ne,h.exports.finished=ce}),sr=Se((f,h)=>{ge(),me(),ye();var s=er(),{aggregateTwoErrors:a,codes:{ERR_MULTIPLE_CALLBACK:c},AbortError:n}=pt(),{Symbol:r}=Ze(),{kIsDestroyed:t,isDestroyed:e,isFinished:i,isServerRequest:l}=Ct(),d=r("kDestroy"),p=r("kConstruct");function g(k,z,G){k&&(k.stack,z&&!z.errored&&(z.errored=k),G&&!G.errored&&(G.errored=k))}function b(k,z){let G=this._readableState,q=this._writableState,he=q||G;return q!=null&&q.destroyed||G!=null&&G.destroyed?(typeof z=="function"&&z(),this):(g(k,q,G),q&&(q.destroyed=!0),G&&(G.destroyed=!0),he.constructed?E(this,k,z):this.once(d,function(ne){E(this,a(ne,k),z)}),this)}function E(k,z,G){let q=!1;function he(ne){if(q)return;q=!0;let te=k._readableState,ce=k._writableState;g(ne,ce,te),ce&&(ce.closed=!0),te&&(te.closed=!0),typeof G=="function"&&G(ne),ne?s.nextTick(S,k,ne):s.nextTick(x,k)}try{k._destroy(z||null,he)}catch(ne){he(ne)}}function S(k,z){y(k,z),x(k)}function x(k){let z=k._readableState,G=k._writableState;G&&(G.closeEmitted=!0),z&&(z.closeEmitted=!0),(G!=null&&G.emitClose||z!=null&&z.emitClose)&&k.emit("close")}function y(k,z){let G=k._readableState,q=k._writableState;q!=null&&q.errorEmitted||G!=null&&G.errorEmitted||(q&&(q.errorEmitted=!0),G&&(G.errorEmitted=!0),k.emit("error",z))}function v(){let k=this._readableState,z=this._writableState;k&&(k.constructed=!0,k.closed=!1,k.closeEmitted=!1,k.destroyed=!1,k.errored=null,k.errorEmitted=!1,k.reading=!1,k.ended=k.readable===!1,k.endEmitted=k.readable===!1),z&&(z.constructed=!0,z.destroyed=!1,z.closed=!1,z.closeEmitted=!1,z.errored=null,z.errorEmitted=!1,z.finalCalled=!1,z.prefinished=!1,z.ended=z.writable===!1,z.ending=z.writable===!1,z.finished=z.writable===!1)}function A(k,z,G){let q=k._readableState,he=k._writableState;if(he!=null&&he.destroyed||q!=null&&q.destroyed)return this;q!=null&&q.autoDestroy||he!=null&&he.autoDestroy?k.destroy(z):z&&(z.stack,he&&!he.errored&&(he.errored=z),q&&!q.errored&&(q.errored=z),G?s.nextTick(y,k,z):y(k,z))}function _(k,z){if(typeof k._construct!="function")return;let G=k._readableState,q=k._writableState;G&&(G.constructed=!1),q&&(q.constructed=!1),k.once(p,z),!(k.listenerCount(p)>1)&&s.nextTick(R,k)}function R(k){let z=!1;function G(q){if(z){A(k,q??new c);return}z=!0;let he=k._readableState,ne=k._writableState,te=ne||he;he&&(he.constructed=!0),ne&&(ne.constructed=!0),te.destroyed?k.emit(d,q):q?A(k,q,!0):s.nextTick(w,k)}try{k._construct(q=>{s.nextTick(G,q)})}catch(q){s.nextTick(G,q)}}function w(k){k.emit(p)}function O(k){return k?.setHeader&&typeof k.abort=="function"}function T(k){k.emit("close")}function M(k,z){k.emit("error",z),s.nextTick(T,k)}function U(k,z){!k||e(k)||(!z&&!i(k)&&(z=new n),l(k)?(k.socket=null,k.destroy(z)):O(k)?k.abort():O(k.req)?k.req.abort():typeof k.destroy=="function"?k.destroy(z):typeof k.close=="function"?k.close():z?s.nextTick(M,k,z):s.nextTick(T,k),k.destroyed||(k[t]=!0))}h.exports={construct:_,destroyer:U,destroy:b,undestroy:v,errorOrDestroy:A}}),co=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ObjectSetPrototypeOf:a}=Ze(),{EventEmitter:c}=(Zt(),Ke(qt));function n(t){c.call(this,t)}a(n.prototype,c.prototype),a(n,c),n.prototype.pipe=function(t,e){let i=this;function l(x){t.writable&&t.write(x)===!1&&i.pause&&i.pause()}i.on("data",l);function d(){i.readable&&i.resume&&i.resume()}t.on("drain",d),!t._isStdio&&(!e||e.end!==!1)&&(i.on("end",g),i.on("close",b));let p=!1;function g(){p||(p=!0,t.end())}function b(){p||(p=!0,typeof t.destroy=="function"&&t.destroy())}function E(x){S(),c.listenerCount(this,"error")===0&&this.emit("error",x)}r(i,"error",E),r(t,"error",E);function S(){i.removeListener("data",l),t.removeListener("drain",d),i.removeListener("end",g),i.removeListener("close",b),i.removeListener("error",E),t.removeListener("error",E),i.removeListener("end",S),i.removeListener("close",S),t.removeListener("close",S)}return i.on("end",S),i.on("close",S),t.on("close",S),t.emit("pipe",i),t};function r(t,e,i){if(typeof t.prependListener=="function")return t.prependListener(e,i);!t._events||!t._events[e]?t.on(e,i):s(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]}h.exports={Stream:n,prependListener:r}}),Yr=Se((f,h)=>{ge(),me(),ye();var{SymbolDispose:s}=Ze(),{AbortError:a,codes:c}=pt(),{isNodeStream:n,isWebStream:r,kControllerErrorFunction:t}=Ct(),e=Vt(),{ERR_INVALID_ARG_TYPE:i}=c,l,d=(p,g)=>{if(typeof p!="object"||!("aborted"in p))throw new i(g,"AbortSignal",p)};h.exports.addAbortSignal=function(p,g){if(d(p,"signal"),!n(g)&&!r(g))throw new i("stream",["ReadableStream","WritableStream","Stream"],g);return h.exports.addAbortSignalNoValidate(p,g)},h.exports.addAbortSignalNoValidate=function(p,g){if(typeof p!="object"||!("aborted"in p))return g;let b=n(g)?()=>{g.destroy(new a(void 0,{cause:p.reason}))}:()=>{g[t](new a(void 0,{cause:p.reason}))};if(p.aborted)b();else{l=l||gt().addAbortListener;let E=l(p,b);e(g,E[s])}return g}}),Hl=Se((f,h)=>{ge(),me(),ye();var{StringPrototypeSlice:s,SymbolIterator:a,TypedArrayPrototypeSet:c,Uint8Array:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{inspect:t}=gt();h.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){let i={data:e,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}unshift(e){let i={data:e,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}shift(){if(this.length===0)return;let e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(this.length===0)return"";let i=this.head,l=""+i.data;for(;(i=i.next)!==null;)l+=e+i.data;return l}concat(e){if(this.length===0)return r.alloc(0);let i=r.allocUnsafe(e>>>0),l=this.head,d=0;for(;l;)c(i,l.data,d),d+=l.data.length,l=l.next;return i}consume(e,i){let l=this.head.data;if(ep.length)i+=p,e-=p.length;else{e===p.length?(i+=p,++d,l.next?this.head=l.next:this.head=this.tail=null):(i+=s(p,0,e),this.head=l,l.data=s(p,e));break}++d}while((l=l.next)!==null);return this.length-=d,i}_getBuffer(e){let i=r.allocUnsafe(e),l=e,d=this.head,p=0;do{let g=d.data;if(e>g.length)c(i,g,l-e),e-=g.length;else{e===g.length?(c(i,g,l-e),++p,d.next?this.head=d.next:this.head=this.tail=null):(c(i,new n(g.buffer,g.byteOffset,e),l-e),this.head=d,d.data=g.slice(e));break}++p}while((d=d.next)!==null);return this.length-=p,i}[Symbol.for("nodejs.util.inspect.custom")](e,i){return t(this,{...i,depth:0,customInspect:!1})}}}),Jr=Se((f,h)=>{ge(),me(),ye();var{MathFloor:s,NumberIsInteger:a}=Ze(),{validateInteger:c}=yr(),{ERR_INVALID_ARG_VALUE:n}=pt().codes,r=16*1024,t=16;function e(p,g,b){return p.highWaterMark!=null?p.highWaterMark:g?p[b]:null}function i(p){return p?t:r}function l(p,g){c(g,"value",0),p?t=g:r=g}function d(p,g,b,E){let S=e(g,E,b);if(S!=null){if(!a(S)||S<0){let x=E?`options.${b}`:"options.highWaterMark";throw new n(x,S)}return s(S)}return i(p.objectMode)}h.exports={getHighWaterMark:d,getDefaultHighWaterMark:i,setDefaultHighWaterMark:l}}),Gl=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),a=s.Buffer;function c(r,t){for(var e in r)t[e]=r[e]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?h.exports=s:(c(s,f),f.Buffer=n);function n(r,t,e){return a(r,t,e)}n.prototype=Object.create(a.prototype),c(a,n),n.from=function(r,t,e){if(typeof r=="number")throw new TypeError("Argument must not be a number");return a(r,t,e)},n.alloc=function(r,t,e){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=a(r);return t!==void 0?typeof e=="string"?i.fill(t,e):i.fill(t):i.fill(0),i},n.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return a(r)},n.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(r)}}),Ql=Se(f=>{ge(),me(),ye();var h=Gl().Buffer,s=h.isEncoding||function(y){switch(y=""+y,y&&y.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(y){if(!y)return"utf8";for(var v;;)switch(y){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return y;default:if(v)return;y=(""+y).toLowerCase(),v=!0}}function c(y){var v=a(y);if(typeof v!="string"&&(h.isEncoding===s||!s(y)))throw new Error("Unknown encoding: "+y);return v||y}f.StringDecoder=n;function n(y){this.encoding=c(y);var v;switch(this.encoding){case"utf16le":this.text=p,this.end=g,v=4;break;case"utf8":this.fillLast=i,v=4;break;case"base64":this.text=b,this.end=E,v=3;break;default:this.write=S,this.end=x;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=h.allocUnsafe(v)}n.prototype.write=function(y){if(y.length===0)return"";var v,A;if(this.lastNeed){if(v=this.fillLast(y),v===void 0)return"";A=this.lastNeed,this.lastNeed=0}else A=0;return A>5===6?2:y>>4===14?3:y>>3===30?4:y>>6===2?-1:-2}function t(y,v,A){var _=v.length-1;if(_=0?(R>0&&(y.lastNeed=R-1),R):--_=0?(R>0&&(y.lastNeed=R-2),R):--_=0?(R>0&&(R===2?R=0:y.lastNeed=R-3),R):0))}function e(y,v,A){if((v[0]&192)!==128)return y.lastNeed=0,"�";if(y.lastNeed>1&&v.length>1){if((v[1]&192)!==128)return y.lastNeed=1,"�";if(y.lastNeed>2&&v.length>2&&(v[2]&192)!==128)return y.lastNeed=2,"�"}}function i(y){var v=this.lastTotal-this.lastNeed,A=e(this,y);if(A!==void 0)return A;if(this.lastNeed<=y.length)return y.copy(this.lastChar,v,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);y.copy(this.lastChar,v,0,y.length),this.lastNeed-=y.length}function l(y,v){var A=t(this,y,v);if(!this.lastNeed)return y.toString("utf8",v);this.lastTotal=A;var _=y.length-(A-this.lastNeed);return y.copy(this.lastChar,0,_),y.toString("utf8",v,_)}function d(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+"�":v}function p(y,v){if((y.length-v)%2===0){var A=y.toString("utf16le",v);if(A){var _=A.charCodeAt(A.length-1);if(_>=55296&&_<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1],A.slice(0,-1)}return A}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=y[y.length-1],y.toString("utf16le",v,y.length-1)}function g(y){var v=y&&y.length?this.write(y):"";if(this.lastNeed){var A=this.lastTotal-this.lastNeed;return v+this.lastChar.toString("utf16le",0,A)}return v}function b(y,v){var A=(y.length-v)%3;return A===0?y.toString("base64",v):(this.lastNeed=3-A,this.lastTotal=3,A===1?this.lastChar[0]=y[y.length-1]:(this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1]),y.toString("base64",v,y.length-A))}function E(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+this.lastChar.toString("base64",0,3-this.lastNeed):v}function S(y){return y.toString(this.encoding)}function x(y){return y&&y.length?this.write(y):""}}),ra=Se((f,h)=>{ge(),me(),ye();var s=er(),{PromisePrototypeThen:a,SymbolAsyncIterator:c,SymbolIterator:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{ERR_INVALID_ARG_TYPE:t,ERR_STREAM_NULL_VALUES:e}=pt().codes;function i(l,d,p){let g;if(typeof d=="string"||d instanceof r)return new l({objectMode:!0,...p,read(){this.push(d),this.push(null)}});let b;if(d&&d[c])b=!0,g=d[c]();else if(d&&d[n])b=!1,g=d[n]();else throw new t("iterable",["Iterable"],d);let E=new l({objectMode:!0,highWaterMark:1,...p}),S=!1;E._read=function(){S||(S=!0,y())},E._destroy=function(v,A){a(x(v),()=>s.nextTick(A,v),_=>s.nextTick(A,_||v))};async function x(v){let A=v!=null,_=typeof g.throw=="function";if(A&&_){let{value:R,done:w}=await g.throw(v);if(await R,w)return}if(typeof g.return=="function"){let{value:R}=await g.return();await R}}async function y(){for(;;){try{let{value:v,done:A}=b?await g.next():g.next();if(A)E.push(null);else{let _=v&&typeof v.then=="function"?await v:v;if(_===null)throw S=!1,new e;if(E.push(_))continue;S=!1}}catch(v){E.destroy(v)}break}}return E}h.exports=i}),Xr=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeIndexOf:a,NumberIsInteger:c,NumberIsNaN:n,NumberParseInt:r,ObjectDefineProperties:t,ObjectKeys:e,ObjectSetPrototypeOf:i,Promise:l,SafeSet:d,SymbolAsyncDispose:p,SymbolAsyncIterator:g,Symbol:b}=Ze();h.exports=fe,fe.ReadableState=Oe;var{EventEmitter:E}=(Zt(),Ke(qt)),{Stream:S,prependListener:x}=co(),{Buffer:y}=(st(),Ke(ot)),{addAbortSignal:v}=Yr(),A=Vt(),_=gt().debuglog("stream",j=>{_=j}),R=Hl(),w=sr(),{getHighWaterMark:O,getDefaultHighWaterMark:T}=Jr(),{aggregateTwoErrors:M,codes:{ERR_INVALID_ARG_TYPE:U,ERR_METHOD_NOT_IMPLEMENTED:k,ERR_OUT_OF_RANGE:z,ERR_STREAM_PUSH_AFTER_EOF:G,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:q},AbortError:he}=pt(),{validateObject:ne}=yr(),te=b("kPaused"),{StringDecoder:ce}=Ql(),V=ra();i(fe.prototype,S.prototype),i(fe,S);var le=()=>{},{errorOrDestroy:B}=w,ee=1,Z=2,ue=4,Ae=8,Y=16,W=32,oe=64,X=128,J=256,re=512,we=1024,pe=2048,L=4096,H=8192,se=16384,be=32768,ve=65536,Ee=1<<17,Q=1<<18;function _e(j){return{enumerable:!1,get(){return(this.state&j)!==0},set(F){F?this.state|=j:this.state&=~j}}}t(Oe.prototype,{objectMode:_e(ee),ended:_e(Z),endEmitted:_e(ue),reading:_e(Ae),constructed:_e(Y),sync:_e(W),needReadable:_e(oe),emittedReadable:_e(X),readableListening:_e(J),resumeScheduled:_e(re),errorEmitted:_e(we),emitClose:_e(pe),autoDestroy:_e(L),destroyed:_e(H),closed:_e(se),closeEmitted:_e(be),multiAwaitDrain:_e(ve),readingMore:_e(Ee),dataEmitted:_e(Q)});function Oe(j,F,ke){typeof ke!="boolean"&&(ke=F instanceof Tt()),this.state=pe|L|Y|W,j&&j.objectMode&&(this.state|=ee),ke&&j&&j.readableObjectMode&&(this.state|=ee),this.highWaterMark=j?O(this,j,"readableHighWaterMark",ke):T(!1),this.buffer=new R,this.length=0,this.pipes=[],this.flowing=null,this[te]=null,j&&j.emitClose===!1&&(this.state&=~pe),j&&j.autoDestroy===!1&&(this.state&=~L),this.errored=null,this.defaultEncoding=j&&j.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,j&&j.encoding&&(this.decoder=new ce(j.encoding),this.encoding=j.encoding)}function fe(j){if(!(this instanceof fe))return new fe(j);let F=this instanceof Tt();this._readableState=new Oe(j,this,F),j&&(typeof j.read=="function"&&(this._read=j.read),typeof j.destroy=="function"&&(this._destroy=j.destroy),typeof j.construct=="function"&&(this._construct=j.construct),j.signal&&!F&&v(j.signal,this)),S.call(this,j),w.construct(this,()=>{this._readableState.needReadable&&$(this,this._readableState)})}fe.prototype.destroy=w.destroy,fe.prototype._undestroy=w.undestroy,fe.prototype._destroy=function(j,F){F(j)},fe.prototype[E.captureRejectionSymbol]=function(j){this.destroy(j)},fe.prototype[p]=function(){let j;return this.destroyed||(j=this.readableEnded?null:new he,this.destroy(j)),new l((F,ke)=>A(this,Pe=>Pe&&Pe!==j?ke(Pe):F(null)))},fe.prototype.push=function(j,F){return Be(this,j,F,!1)},fe.prototype.unshift=function(j,F){return Be(this,j,F,!0)};function Be(j,F,ke,Pe){_("readableAddChunk",F);let Me=j._readableState,rt;if((Me.state&ee)===0&&(typeof F=="string"?(ke=ke||Me.defaultEncoding,Me.encoding!==ke&&(Pe&&Me.encoding?F=y.from(F,ke).toString(Me.encoding):(F=y.from(F,ke),ke=""))):F instanceof y?ke="":S._isUint8Array(F)?(F=S._uint8ArrayToBuffer(F),ke=""):F!=null&&(rt=new U("chunk",["string","Buffer","Uint8Array"],F))),rt)B(j,rt);else if(F===null)Me.state&=~Ae,N(j,Me);else if((Me.state&ee)!==0||F&&F.length>0)if(Pe)if((Me.state&ue)!==0)B(j,new q);else{if(Me.destroyed||Me.errored)return!1;o(j,Me,F,!0)}else if(Me.ended)B(j,new G);else{if(Me.destroyed||Me.errored)return!1;Me.state&=~Ae,Me.decoder&&!ke?(F=Me.decoder.write(F),Me.objectMode||F.length!==0?o(j,Me,F,!1):$(j,Me)):o(j,Me,F,!1)}else Pe||(Me.state&=~Ae,$(j,Me));return!Me.ended&&(Me.length0?((F.state&ve)!==0?F.awaitDrainWriters.clear():F.awaitDrainWriters=null,F.dataEmitted=!0,j.emit("data",ke)):(F.length+=F.objectMode?1:ke.length,Pe?F.buffer.unshift(ke):F.buffer.push(ke),(F.state&oe)!==0&&K(j)),$(j,F)}fe.prototype.isPaused=function(){let j=this._readableState;return j[te]===!0||j.flowing===!1},fe.prototype.setEncoding=function(j){let F=new ce(j);this._readableState.decoder=F,this._readableState.encoding=this._readableState.decoder.encoding;let ke=this._readableState.buffer,Pe="";for(let Me of ke)Pe+=F.write(Me);return ke.clear(),Pe!==""&&ke.push(Pe),this._readableState.length=Pe.length,this};var u=1073741824;function m(j){if(j>u)throw new z("size","<= 1GiB",j);return j--,j|=j>>>1,j|=j>>>2,j|=j>>>4,j|=j>>>8,j|=j>>>16,j++,j}function C(j,F){return j<=0||F.length===0&&F.ended?0:(F.state&ee)!==0?1:n(j)?F.flowing&&F.length?F.buffer.first().length:F.length:j<=F.length?j:F.ended?F.length:0}fe.prototype.read=function(j){_("read",j),j===void 0?j=NaN:c(j)||(j=r(j,10));let F=this._readableState,ke=j;if(j>F.highWaterMark&&(F.highWaterMark=m(j)),j!==0&&(F.state&=~X),j===0&&F.needReadable&&((F.highWaterMark!==0?F.length>=F.highWaterMark:F.length>0)||F.ended))return _("read: emitReadable",F.length,F.ended),F.length===0&&F.ended?He(this):K(this),null;if(j=C(j,F),j===0&&F.ended)return F.length===0&&He(this),null;let Pe=(F.state&oe)!==0;if(_("need readable",Pe),(F.length===0||F.length-j0?Me=tt(j,F):Me=null,Me===null?(F.needReadable=F.length<=F.highWaterMark,j=0):(F.length-=j,F.multiAwaitDrain?F.awaitDrainWriters.clear():F.awaitDrainWriters=null),F.length===0&&(F.ended||(F.needReadable=!0),ke!==j&&F.ended&&He(this)),Me!==null&&!F.errorEmitted&&!F.closeEmitted&&(F.dataEmitted=!0,this.emit("data",Me)),Me};function N(j,F){if(_("onEofChunk"),!F.ended){if(F.decoder){let ke=F.decoder.end();ke&&ke.length&&(F.buffer.push(ke),F.length+=F.objectMode?1:ke.length)}F.ended=!0,F.sync?K(j):(F.needReadable=!1,F.emittedReadable=!0,de(j))}}function K(j){let F=j._readableState;_("emitReadable",F.needReadable,F.emittedReadable),F.needReadable=!1,F.emittedReadable||(_("emitReadable",F.flowing),F.emittedReadable=!0,s.nextTick(de,j))}function de(j){let F=j._readableState;_("emitReadable_",F.destroyed,F.length,F.ended),!F.destroyed&&!F.errored&&(F.length||F.ended)&&(j.emit("readable"),F.emittedReadable=!1),F.needReadable=!F.flowing&&!F.ended&&F.length<=F.highWaterMark,Fe(j)}function $(j,F){!F.readingMore&&F.constructed&&(F.readingMore=!0,s.nextTick(ie,j,F))}function ie(j,F){for(;!F.reading&&!F.ended&&(F.length1&&Pe.pipes.includes(j)&&(_("false write response, pause",Pe.awaitDrainWriters.size),Pe.awaitDrainWriters.add(j)),ke.pause()),mt||(mt=Re(ke,j),j.on("drain",mt))}ke.on("data",Ht);function Ht(Qe){_("ondata");let wt=j.write(Qe);_("dest.write",wt),wt===!1&&Kt()}function Et(Qe){if(_("onerror",Qe),At(),j.removeListener("error",Et),j.listenerCount("error")===0){let wt=j._writableState||j._readableState;wt&&!wt.errorEmitted?B(j,Qe):j.emit("error",Qe)}}x(j,"error",Et);function ze(){j.removeListener("finish",bt),At()}j.once("close",ze);function bt(){_("onfinish"),j.removeListener("close",ze),At()}j.once("finish",bt);function At(){_("unpipe"),ke.unpipe(j)}return j.emit("pipe",ke),j.writableNeedDrain===!0?Kt():Pe.flowing||(_("pipe resume"),ke.resume()),j};function Re(j,F){return function(){let ke=j._readableState;ke.awaitDrainWriters===F?(_("pipeOnDrain",1),ke.awaitDrainWriters=null):ke.multiAwaitDrain&&(_("pipeOnDrain",ke.awaitDrainWriters.size),ke.awaitDrainWriters.delete(F)),(!ke.awaitDrainWriters||ke.awaitDrainWriters.size===0)&&j.listenerCount("data")&&j.resume()}}fe.prototype.unpipe=function(j){let F=this._readableState,ke={hasUnpiped:!1};if(F.pipes.length===0)return this;if(!j){let Me=F.pipes;F.pipes=[],this.pause();for(let rt=0;rt0,Pe.flowing!==!1&&this.resume()):j==="readable"&&!Pe.endEmitted&&!Pe.readableListening&&(Pe.readableListening=Pe.needReadable=!0,Pe.flowing=!1,Pe.emittedReadable=!1,_("on readable",Pe.length,Pe.reading),Pe.length?K(this):Pe.reading||s.nextTick(Le,this)),ke},fe.prototype.addListener=fe.prototype.on,fe.prototype.removeListener=function(j,F){let ke=S.prototype.removeListener.call(this,j,F);return j==="readable"&&s.nextTick(Te,this),ke},fe.prototype.off=fe.prototype.removeListener,fe.prototype.removeAllListeners=function(j){let F=S.prototype.removeAllListeners.apply(this,arguments);return(j==="readable"||j===void 0)&&s.nextTick(Te,this),F};function Te(j){let F=j._readableState;F.readableListening=j.listenerCount("readable")>0,F.resumeScheduled&&F[te]===!1?F.flowing=!0:j.listenerCount("data")>0?j.resume():F.readableListening||(F.flowing=null)}function Le(j){_("readable nexttick read 0"),j.read(0)}fe.prototype.resume=function(){let j=this._readableState;return j.flowing||(_("resume"),j.flowing=!j.readableListening,Ue(this,j)),j[te]=!1,this};function Ue(j,F){F.resumeScheduled||(F.resumeScheduled=!0,s.nextTick(Xe,j,F))}function Xe(j,F){_("resume",F.reading),F.reading||j.read(0),F.resumeScheduled=!1,j.emit("resume"),Fe(j),F.flowing&&!F.reading&&j.read(0)}fe.prototype.pause=function(){return _("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(_("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[te]=!0,this};function Fe(j){let F=j._readableState;for(_("flow",F.flowing);F.flowing&&j.read()!==null;);}fe.prototype.wrap=function(j){let F=!1;j.on("data",Pe=>{!this.push(Pe)&&j.pause&&(F=!0,j.pause())}),j.on("end",()=>{this.push(null)}),j.on("error",Pe=>{B(this,Pe)}),j.on("close",()=>{this.destroy()}),j.on("destroy",()=>{this.destroy()}),this._read=()=>{F&&j.resume&&(F=!1,j.resume())};let ke=e(j);for(let Pe=1;Pe{Me=at?M(Me,at):null,ke(),ke=le});try{for(;;){let at=j.destroyed?null:j.read();if(at!==null)yield at;else{if(Me)throw Me;if(Me===null)return;await new l(Pe)}}}catch(at){throw Me=M(Me,at),Me}finally{(Me||F?.destroyOnReturn!==!1)&&(Me===void 0||j._readableState.autoDestroy)?w.destroyer(j,null):(j.off("readable",Pe),rt())}}t(fe.prototype,{readable:{__proto__:null,get(){let j=this._readableState;return!!j&&j.readable!==!1&&!j.destroyed&&!j.errorEmitted&&!j.endEmitted},set(j){this._readableState&&(this._readableState.readable=!!j)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(j){this._readableState&&(this._readableState.flowing=j)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(j){this._readableState&&(this._readableState.destroyed=j)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),t(Oe.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[te]!==!1},set(j){this[te]=!!j}}}),fe._fromList=tt;function tt(j,F){if(F.length===0)return null;let ke;return F.objectMode?ke=F.buffer.shift():!j||j>=F.length?(F.decoder?ke=F.buffer.join(""):F.buffer.length===1?ke=F.buffer.first():ke=F.buffer.concat(F.length),F.buffer.clear()):ke=F.buffer.consume(j,F.decoder),ke}function He(j){let F=j._readableState;_("endReadable",F.endEmitted),F.endEmitted||(F.ended=!0,s.nextTick($e,F,j))}function $e(j,F){if(_("endReadableNT",j.endEmitted,j.length),!j.errored&&!j.closeEmitted&&!j.endEmitted&&j.length===0){if(j.endEmitted=!0,F.emit("end"),F.writable&&F.allowHalfOpen===!1)s.nextTick(nt,F);else if(j.autoDestroy){let ke=F._writableState;(!ke||ke.autoDestroy&&(ke.finished||ke.writable===!1))&&F.destroy()}}}function nt(j){j.writable&&!j.writableEnded&&!j.destroyed&&j.end()}fe.from=function(j,F){return V(fe,j,F)};var dt;function lt(){return dt===void 0&&(dt={}),dt}fe.fromWeb=function(j,F){return lt().newStreamReadableFromReadableStream(j,F)},fe.toWeb=function(j,F){return lt().newReadableStreamFromStreamReadable(j,F)},fe.wrap=function(j,F){var ke,Pe;return new fe({objectMode:(ke=(Pe=j.readableObjectMode)!==null&&Pe!==void 0?Pe:j.objectMode)!==null&&ke!==void 0?ke:!0,...F,destroy(Me,rt){w.destroyer(j,Me),rt(Me)}}).wrap(j)}}),ho=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeSlice:a,Error:c,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:r,ObjectDefineProperties:t,ObjectSetPrototypeOf:e,StringPrototypeToLowerCase:i,Symbol:l,SymbolHasInstance:d}=Ze();h.exports=ne,ne.WritableState=q;var{EventEmitter:p}=(Zt(),Ke(qt)),g=co().Stream,{Buffer:b}=(st(),Ke(ot)),E=sr(),{addAbortSignal:S}=Yr(),{getHighWaterMark:x,getDefaultHighWaterMark:y}=Jr(),{ERR_INVALID_ARG_TYPE:v,ERR_METHOD_NOT_IMPLEMENTED:A,ERR_MULTIPLE_CALLBACK:_,ERR_STREAM_CANNOT_PIPE:R,ERR_STREAM_DESTROYED:w,ERR_STREAM_ALREADY_FINISHED:O,ERR_STREAM_NULL_VALUES:T,ERR_STREAM_WRITE_AFTER_END:M,ERR_UNKNOWN_ENCODING:U}=pt().codes,{errorOrDestroy:k}=E;e(ne.prototype,g.prototype),e(ne,g);function z(){}var G=l("kOnFinished");function q(L,H,se){typeof se!="boolean"&&(se=H instanceof Tt()),this.objectMode=!!(L&&L.objectMode),se&&(this.objectMode=this.objectMode||!!(L&&L.writableObjectMode)),this.highWaterMark=L?x(this,L,"writableHighWaterMark",se):y(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let be=!!(L&&L.decodeStrings===!1);this.decodeStrings=!be,this.defaultEncoding=L&&L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=B.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,he(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!L||L.emitClose!==!1,this.autoDestroy=!L||L.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[G]=[]}function he(L){L.buffered=[],L.bufferedIndex=0,L.allBuffers=!0,L.allNoop=!0}q.prototype.getBuffer=function(){return a(this.buffered,this.bufferedIndex)},r(q.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function ne(L){let H=this instanceof Tt();if(!H&&!n(ne,this))return new ne(L);this._writableState=new q(L,this,H),L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final),typeof L.construct=="function"&&(this._construct=L.construct),L.signal&&S(L.signal,this)),g.call(this,L),E.construct(this,()=>{let se=this._writableState;se.writing||Ae(this,se),X(this,se)})}r(ne,d,{__proto__:null,value:function(L){return n(this,L)?!0:this!==ne?!1:L&&L._writableState instanceof q}}),ne.prototype.pipe=function(){k(this,new R)};function te(L,H,se,be){let ve=L._writableState;if(typeof se=="function")be=se,se=ve.defaultEncoding;else{if(!se)se=ve.defaultEncoding;else if(se!=="buffer"&&!b.isEncoding(se))throw new U(se);typeof be!="function"&&(be=z)}if(H===null)throw new T;if(!ve.objectMode)if(typeof H=="string")ve.decodeStrings!==!1&&(H=b.from(H,se),se="buffer");else if(H instanceof b)se="buffer";else if(g._isUint8Array(H))H=g._uint8ArrayToBuffer(H),se="buffer";else throw new v("chunk",["string","Buffer","Uint8Array"],H);let Ee;return ve.ending?Ee=new M:ve.destroyed&&(Ee=new w("write")),Ee?(s.nextTick(be,Ee),k(L,Ee,!0),Ee):(ve.pendingcb++,ce(L,ve,H,se,be))}ne.prototype.write=function(L,H,se){return te(this,L,H,se)===!0},ne.prototype.cork=function(){this._writableState.corked++},ne.prototype.uncork=function(){let L=this._writableState;L.corked&&(L.corked--,L.writing||Ae(this,L))},ne.prototype.setDefaultEncoding=function(L){if(typeof L=="string"&&(L=i(L)),!b.isEncoding(L))throw new U(L);return this._writableState.defaultEncoding=L,this};function ce(L,H,se,be,ve){let Ee=H.objectMode?1:se.length;H.length+=Ee;let Q=H.lengthse.bufferedIndex&&Ae(L,se),be?se.afterWriteTickInfo!==null&&se.afterWriteTickInfo.cb===ve?se.afterWriteTickInfo.count++:(se.afterWriteTickInfo={count:1,cb:ve,stream:L,state:se},s.nextTick(ee,se.afterWriteTickInfo)):Z(L,se,1,ve))}function ee({stream:L,state:H,count:se,cb:be}){return H.afterWriteTickInfo=null,Z(L,H,se,be)}function Z(L,H,se,be){for(!H.ending&&!L.destroyed&&H.length===0&&H.needDrain&&(H.needDrain=!1,L.emit("drain"));se-- >0;)H.pendingcb--,be();H.destroyed&&ue(H),X(L,H)}function ue(L){if(L.writing)return;for(let ve=L.bufferedIndex;ve1&&L._writev){H.pendingcb-=Ee-1;let _e=H.allNoop?z:fe=>{for(let Be=Q;Be256?(se.splice(0,Q),H.bufferedIndex=0):H.bufferedIndex=Q}H.bufferProcessing=!1}ne.prototype._write=function(L,H,se){if(this._writev)this._writev([{chunk:L,encoding:H}],se);else throw new A("_write()")},ne.prototype._writev=null,ne.prototype.end=function(L,H,se){let be=this._writableState;typeof L=="function"?(se=L,L=null,H=null):typeof H=="function"&&(se=H,H=null);let ve;if(L!=null){let Ee=te(this,L,H);Ee instanceof c&&(ve=Ee)}return be.corked&&(be.corked=1,this.uncork()),ve||(!be.errored&&!be.ending?(be.ending=!0,X(this,be,!0),be.ended=!0):be.finished?ve=new O("end"):be.destroyed&&(ve=new w("end"))),typeof se=="function"&&(ve||be.finished?s.nextTick(se,ve):be[G].push(se)),this};function Y(L){return L.ending&&!L.destroyed&&L.constructed&&L.length===0&&!L.errored&&L.buffered.length===0&&!L.finished&&!L.writing&&!L.errorEmitted&&!L.closeEmitted}function W(L,H){let se=!1;function be(ve){if(se){k(L,ve??_());return}if(se=!0,H.pendingcb--,ve){let Ee=H[G].splice(0);for(let Q=0;Q{Y(ve)?J(be,ve):ve.pendingcb--},L,H)):Y(H)&&(H.pendingcb++,J(L,H))))}function J(L,H){H.pendingcb--,H.finished=!0;let se=H[G].splice(0);for(let be=0;be{ge(),me(),ye();var s=er(),a=(st(),Ke(ot)),{isReadable:c,isWritable:n,isIterable:r,isNodeStream:t,isReadableNodeStream:e,isWritableNodeStream:i,isDuplexNodeStream:l,isReadableStream:d,isWritableStream:p}=Ct(),g=Vt(),{AbortError:b,codes:{ERR_INVALID_ARG_TYPE:E,ERR_INVALID_RETURN_VALUE:S}}=pt(),{destroyer:x}=sr(),y=Tt(),v=Xr(),A=ho(),{createDeferredPromise:_}=gt(),R=ra(),w=globalThis.Blob||a.Blob,O=typeof w<"u"?function(G){return G instanceof w}:function(G){return!1},T=globalThis.AbortController||gr().AbortController,{FunctionPrototypeCall:M}=Ze(),U=class extends y{constructor(G){super(G),G?.readable===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),G?.writable===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};h.exports=function G(q,he){if(l(q))return q;if(e(q))return z({readable:q});if(i(q))return z({writable:q});if(t(q))return z({writable:!1,readable:!1});if(d(q))return z({readable:v.fromWeb(q)});if(p(q))return z({writable:A.fromWeb(q)});if(typeof q=="function"){let{value:te,write:ce,final:V,destroy:le}=k(q);if(r(te))return R(U,te,{objectMode:!0,write:ce,final:V,destroy:le});let B=te?.then;if(typeof B=="function"){let ee,Z=M(B,te,ue=>{if(ue!=null)throw new S("nully","body",ue)},ue=>{x(ee,ue)});return ee=new U({objectMode:!0,readable:!1,write:ce,final(ue){V(async()=>{try{await Z,s.nextTick(ue,null)}catch(Ae){s.nextTick(ue,Ae)}})},destroy:le})}throw new S("Iterable, AsyncIterable or AsyncFunction",he,te)}if(O(q))return G(q.arrayBuffer());if(r(q))return R(U,q,{objectMode:!0,writable:!1});if(d(q?.readable)&&p(q?.writable))return U.fromWeb(q);if(typeof q?.writable=="object"||typeof q?.readable=="object"){let te=q!=null&&q.readable?e(q?.readable)?q?.readable:G(q.readable):void 0,ce=q!=null&&q.writable?i(q?.writable)?q?.writable:G(q.writable):void 0;return z({readable:te,writable:ce})}let ne=q?.then;if(typeof ne=="function"){let te;return M(ne,q,ce=>{ce!=null&&te.push(ce),te.push(null)},ce=>{x(te,ce)}),te=new U({objectMode:!0,writable:!1,read(){}})}throw new E(he,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],q)};function k(G){let{promise:q,resolve:he}=_(),ne=new T,te=ne.signal;return{value:G((async function*(){for(;;){let ce=q;q=null;let{chunk:V,done:le,cb:B}=await ce;if(s.nextTick(B),le)return;if(te.aborted)throw new b(void 0,{cause:te.reason});({promise:q,resolve:he}=_()),yield V}})(),{signal:te}),write(ce,V,le){let B=he;he=null,B({chunk:ce,done:!1,cb:le})},final(ce){let V=he;he=null,V({done:!0,cb:ce})},destroy(ce,V){ne.abort(),V(ce)}}}function z(G){let q=G.readable&&typeof G.readable.read!="function"?v.wrap(G.readable):G.readable,he=G.writable,ne=!!c(q),te=!!n(he),ce,V,le,B,ee;function Z(ue){let Ae=B;B=null,Ae?Ae(ue):ue&&ee.destroy(ue)}return ee=new U({readableObjectMode:!!(q!=null&&q.readableObjectMode),writableObjectMode:!!(he!=null&&he.writableObjectMode),readable:ne,writable:te}),te&&(g(he,ue=>{te=!1,ue&&x(q,ue),Z(ue)}),ee._write=function(ue,Ae,Y){he.write(ue,Ae)?Y():ce=Y},ee._final=function(ue){he.end(),V=ue},he.on("drain",function(){if(ce){let ue=ce;ce=null,ue()}}),he.on("finish",function(){if(V){let ue=V;V=null,ue()}})),ne&&(g(q,ue=>{ne=!1,ue&&x(q,ue),Z(ue)}),q.on("readable",function(){if(le){let ue=le;le=null,ue()}}),q.on("end",function(){ee.push(null)}),ee._read=function(){for(;;){let ue=q.read();if(ue===null){le=ee._read;return}if(!ee.push(ue))return}}),ee._destroy=function(ue,Ae){!ue&&B!==null&&(ue=new b),le=null,ce=null,V=null,B===null?Ae(ue):(B=Ae,x(he,ue),x(q,ue))},ee}}),Tt=Se((f,h)=>{ge(),me(),ye();var{ObjectDefineProperties:s,ObjectGetOwnPropertyDescriptor:a,ObjectKeys:c,ObjectSetPrototypeOf:n}=Ze();h.exports=e;var r=Xr(),t=ho();n(e.prototype,r.prototype),n(e,r);{let p=c(t.prototype);for(let g=0;g{ge(),me(),ye();var{ObjectSetPrototypeOf:s,Symbol:a}=Ze();h.exports=e;var{ERR_METHOD_NOT_IMPLEMENTED:c}=pt().codes,n=Tt(),{getHighWaterMark:r}=Jr();s(e.prototype,n.prototype),s(e,n);var t=a("kCallback");function e(d){if(!(this instanceof e))return new e(d);let p=d?r(this,d,"readableHighWaterMark",!0):null;p===0&&(d={...d,highWaterMark:null,readableHighWaterMark:p,writableHighWaterMark:d.writableHighWaterMark||0}),n.call(this,d),this._readableState.sync=!1,this[t]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",l)}function i(d){typeof this._flush=="function"&&!this.destroyed?this._flush((p,g)=>{if(p){d?d(p):this.destroy(p);return}g!=null&&this.push(g),this.push(null),d&&d()}):(this.push(null),d&&d())}function l(){this._final!==i&&i.call(this)}e.prototype._final=i,e.prototype._transform=function(d,p,g){throw new c("_transform()")},e.prototype._write=function(d,p,g){let b=this._readableState,E=this._writableState,S=b.length;this._transform(d,p,(x,y)=>{if(x){g(x);return}y!=null&&this.push(y),E.ended||S===b.length||b.length{ge(),me(),ye();var{ObjectSetPrototypeOf:s}=Ze();h.exports=c;var a=na();s(c.prototype,a.prototype),s(c,a);function c(n){if(!(this instanceof c))return new c(n);a.call(this,n)}c.prototype._transform=function(n,r,t){t(null,n)}}),fo=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayIsArray:a,Promise:c,SymbolAsyncIterator:n,SymbolDispose:r}=Ze(),t=Vt(),{once:e}=gt(),i=sr(),l=Tt(),{aggregateTwoErrors:d,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:E,ERR_STREAM_PREMATURE_CLOSE:S},AbortError:x}=pt(),{validateFunction:y,validateAbortSignal:v}=yr(),{isIterable:A,isReadable:_,isReadableNodeStream:R,isNodeStream:w,isTransformStream:O,isWebStream:T,isReadableStream:M,isReadableFinished:U}=Ct(),k=globalThis.AbortController||gr().AbortController,z,G,q;function he(ue,Ae,Y){let W=!1;ue.on("close",()=>{W=!0});let oe=t(ue,{readable:Ae,writable:Y},X=>{W=!X});return{destroy:X=>{W||(W=!0,i.destroyer(ue,X||new E("pipe")))},cleanup:oe}}function ne(ue){return y(ue[ue.length-1],"streams[stream.length - 1]"),ue.pop()}function te(ue){if(A(ue))return ue;if(R(ue))return ce(ue);throw new p("val",["Readable","Iterable","AsyncIterable"],ue)}async function*ce(ue){G||(G=Xr()),yield*G.prototype[n].call(ue)}async function V(ue,Ae,Y,{end:W}){let oe,X=null,J=pe=>{if(pe&&(oe=pe),X){let L=X;X=null,L()}},re=()=>new c((pe,L)=>{oe?L(oe):X=()=>{oe?L(oe):pe()}});Ae.on("drain",J);let we=t(Ae,{readable:!1},J);try{Ae.writableNeedDrain&&await re();for await(let pe of ue)Ae.write(pe)||await re();W&&(Ae.end(),await re()),Y()}catch(pe){Y(oe!==pe?d(oe,pe):pe)}finally{we(),Ae.off("drain",J)}}async function le(ue,Ae,Y,{end:W}){O(Ae)&&(Ae=Ae.writable);let oe=Ae.getWriter();try{for await(let X of ue)await oe.ready,oe.write(X).catch(()=>{});await oe.ready,W&&await oe.close(),Y()}catch(X){try{await oe.abort(X),Y(X)}catch(J){Y(J)}}}function B(...ue){return ee(ue,e(ne(ue)))}function ee(ue,Ae,Y){if(ue.length===1&&a(ue[0])&&(ue=ue[0]),ue.length<2)throw new b("streams");let W=new k,oe=W.signal,X=Y?.signal,J=[];v(X,"options.signal");function re(){ve(new x)}q=q||gt().addAbortListener;let we;X&&(we=q(X,re));let pe,L,H=[],se=0;function be(Oe){ve(Oe,--se===0)}function ve(Oe,fe){var Be;if(Oe&&(!pe||pe.code==="ERR_STREAM_PREMATURE_CLOSE")&&(pe=Oe),!(!pe&&!fe)){for(;H.length;)H.shift()(pe);(Be=we)===null||Be===void 0||Be[r](),W.abort(),fe&&(pe||J.forEach(o=>o()),s.nextTick(Ae,pe,L))}}let Ee;for(let Oe=0;Oe0,u=Be||Y?.end!==!1,m=Oe===ue.length-1;if(w(fe)){let C=function(N){N&&N.name!=="AbortError"&&N.code!=="ERR_STREAM_PREMATURE_CLOSE"&&be(N)};if(u){let{destroy:N,cleanup:K}=he(fe,Be,o);H.push(N),_(fe)&&m&&J.push(K)}fe.on("error",C),_(fe)&&m&&J.push(()=>{fe.removeListener("error",C)})}if(Oe===0)if(typeof fe=="function"){if(Ee=fe({signal:oe}),!A(Ee))throw new g("Iterable, AsyncIterable or Stream","source",Ee)}else A(fe)||R(fe)||O(fe)?Ee=fe:Ee=l.from(fe);else if(typeof fe=="function"){if(O(Ee)){var Q;Ee=te((Q=Ee)===null||Q===void 0?void 0:Q.readable)}else Ee=te(Ee);if(Ee=fe(Ee,{signal:oe}),Be){if(!A(Ee,!0))throw new g("AsyncIterable",`transform[${Oe-1}]`,Ee)}else{var _e;z||(z=ia());let C=new z({objectMode:!0}),N=(_e=Ee)===null||_e===void 0?void 0:_e.then;if(typeof N=="function")se++,N.call(Ee,$=>{L=$,$!=null&&C.write($),u&&C.end(),s.nextTick(be)},$=>{C.destroy($),s.nextTick(be,$)});else if(A(Ee,!0))se++,V(Ee,C,be,{end:u});else if(M(Ee)||O(Ee)){let $=Ee.readable||Ee;se++,V($,C,be,{end:u})}else throw new g("AsyncIterable or Promise","destination",Ee);Ee=C;let{destroy:K,cleanup:de}=he(Ee,!1,!0);H.push(K),m&&J.push(de)}}else if(w(fe)){if(R(Ee)){se+=2;let C=Z(Ee,fe,be,{end:u});_(fe)&&m&&J.push(C)}else if(O(Ee)||M(Ee)){let C=Ee.readable||Ee;se++,V(C,fe,be,{end:u})}else if(A(Ee))se++,V(Ee,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else if(T(fe)){if(R(Ee))se++,le(te(Ee),fe,be,{end:u});else if(M(Ee)||A(Ee))se++,le(Ee,fe,be,{end:u});else if(O(Ee))se++,le(Ee.readable,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else Ee=l.from(fe)}return(oe!=null&&oe.aborted||X!=null&&X.aborted)&&s.nextTick(re),Ee}function Z(ue,Ae,Y,{end:W}){let oe=!1;if(Ae.on("close",()=>{oe||Y(new S)}),ue.pipe(Ae,{end:!1}),W){let X=function(){oe=!0,Ae.end()};U(ue)?s.nextTick(X):ue.once("end",X)}else Y();return t(ue,{readable:!0,writable:!1},X=>{let J=ue._readableState;X&&X.code==="ERR_STREAM_PREMATURE_CLOSE"&&J&&J.ended&&!J.errored&&!J.errorEmitted?ue.once("end",Y).once("error",Y):Y(X)}),t(Ae,{readable:!1,writable:!0},Y)}h.exports={pipelineImpl:ee,pipeline:B}}),oa=Se((f,h)=>{ge(),me(),ye();var{pipeline:s}=fo(),a=Tt(),{destroyer:c}=sr(),{isNodeStream:n,isReadable:r,isWritable:t,isWebStream:e,isTransformStream:i,isWritableStream:l,isReadableStream:d}=Ct(),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=pt(),E=Vt();h.exports=function(...S){if(S.length===0)throw new b("streams");if(S.length===1)return a.from(S[0]);let x=[...S];if(typeof S[0]=="function"&&(S[0]=a.from(S[0])),typeof S[S.length-1]=="function"){let k=S.length-1;S[k]=a.from(S[k])}for(let k=0;k0&&!(t(S[k])||l(S[k])||i(S[k])))throw new g(`streams[${k}]`,x[k],"must be writable")}let y,v,A,_,R;function w(k){let z=_;_=null,z?z(k):k?R.destroy(k):!U&&!M&&R.destroy()}let O=S[0],T=s(S,w),M=!!(t(O)||l(O)||i(O)),U=!!(r(T)||d(T)||i(T));if(R=new a({writableObjectMode:!!(O!=null&&O.writableObjectMode),readableObjectMode:!!(T!=null&&T.readableObjectMode),writable:M,readable:U}),M){if(n(O))R._write=function(z,G,q){O.write(z,G)?q():y=q},R._final=function(z){O.end(),v=z},O.on("drain",function(){if(y){let z=y;y=null,z()}});else if(e(O)){let z=(i(O)?O.writable:O).getWriter();R._write=async function(G,q,he){try{await z.ready,z.write(G).catch(()=>{}),he()}catch(ne){he(ne)}},R._final=async function(G){try{await z.ready,z.close().catch(()=>{}),v=G}catch(q){G(q)}}}let k=i(T)?T.readable:T;E(k,()=>{if(v){let z=v;v=null,z()}})}if(U){if(n(T))T.on("readable",function(){if(A){let k=A;A=null,k()}}),T.on("end",function(){R.push(null)}),R._read=function(){for(;;){let k=T.read();if(k===null){A=R._read;return}if(!R.push(k))return}};else if(e(T)){let k=(i(T)?T.readable:T).getReader();R._read=async function(){for(;;)try{let{value:z,done:G}=await k.read();if(!R.push(z))return;if(G){R.push(null);return}}catch{return}}}}return R._destroy=function(k,z){!k&&_!==null&&(k=new p),A=null,y=null,v=null,_===null?z(k):(_=z,n(T)&&c(T,k))},R}}),Jl=Se((f,h)=>{ge(),me(),ye();var s=globalThis.AbortController||gr().AbortController,{codes:{ERR_INVALID_ARG_VALUE:a,ERR_INVALID_ARG_TYPE:c,ERR_MISSING_ARGS:n,ERR_OUT_OF_RANGE:r},AbortError:t}=pt(),{validateAbortSignal:e,validateInteger:i,validateObject:l}=yr(),d=Ze().Symbol("kWeak"),p=Ze().Symbol("kResistStopPropagation"),{finished:g}=Vt(),b=oa(),{addAbortSignalNoValidate:E}=Yr(),{isWritable:S,isNodeStream:x}=Ct(),{deprecate:y}=gt(),{ArrayPrototypePush:v,Boolean:A,MathFloor:_,Number:R,NumberIsNaN:w,Promise:O,PromiseReject:T,PromiseResolve:M,PromisePrototypeThen:U,Symbol:k}=Ze(),z=k("kEmpty"),G=k("kEof");function q(X,J){if(J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),x(X)&&!S(X))throw new a("stream",X,"must be writable");let re=b(this,X);return J!=null&&J.signal&&E(J.signal,re),re}function he(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal");let re=1;J?.concurrency!=null&&(re=_(J.concurrency));let we=re-1;return J?.highWaterMark!=null&&(we=_(J.highWaterMark)),i(re,"options.concurrency",1),i(we,"options.highWaterMark",0),we+=re,(async function*(){let pe=gt().AbortSignalAny([J?.signal].filter(A)),L=this,H=[],se={signal:pe},be,ve,Ee=!1,Q=0;function _e(){Ee=!0,Oe()}function Oe(){Q-=1,fe()}function fe(){ve&&!Ee&&Q=we||Q>=re)&&await new O(u=>{ve=u})}H.push(G)}catch(o){let u=T(o);U(u,Oe,_e),H.push(u)}finally{Ee=!0,be&&(be(),be=null)}}Be();try{for(;;){for(;H.length>0;){let o=await H[0];if(o===G)return;if(pe.aborted)throw new t;o!==z&&(yield o),H.shift(),fe()}await new O(o=>{be=o})}}finally{Ee=!0,ve&&(ve(),ve=null)}}).call(this)}function ne(X=void 0){return X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal"),(async function*(){let J=0;for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t({cause:X.signal.reason});yield[J++,we]}}).call(this)}async function te(X,J=void 0){for await(let re of B.call(this,X,J))return!0;return!1}async function ce(X,J=void 0){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);return!await te.call(this,async(...re)=>!await X(...re),J)}async function V(X,J){for await(let re of B.call(this,X,J))return re}async function le(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe),z}for await(let we of he.call(this,re,J));}function B(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe)?we:z}return he.call(this,re,J)}var ee=class extends n{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function Z(X,J,re){var we;if(typeof X!="function")throw new c("reducer",["Function","AsyncFunction"],X);re!=null&&l(re,"options"),re?.signal!=null&&e(re.signal,"options.signal");let pe=arguments.length>1;if(re!=null&&(we=re.signal)!==null&&we!==void 0&&we.aborted){let ve=new t(void 0,{cause:re.signal.reason});throw this.once("error",()=>{}),await g(this.destroy(ve)),ve}let L=new s,H=L.signal;if(re!=null&&re.signal){let ve={once:!0,[d]:this,[p]:!0};re.signal.addEventListener("abort",()=>L.abort(),ve)}let se=!1;try{for await(let ve of this){var be;if(se=!0,re!=null&&(be=re.signal)!==null&&be!==void 0&&be.aborted)throw new t;pe?J=await X(J,ve,{signal:H}):(J=ve,pe=!0)}if(!se&&!pe)throw new ee}finally{L.abort()}return J}async function ue(X){X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal");let J=[];for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t(void 0,{cause:X.signal.reason});v(J,we)}return J}function Ae(X,J){let re=he.call(this,X,J);return(async function*(){for await(let we of re)yield*we}).call(this)}function Y(X){if(X=R(X),w(X))return 0;if(X<0)throw new r("number",">= 0",X);return X}function W(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;X--<=0&&(yield pe)}}).call(this)}function oe(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;if(X-- >0&&(yield pe),X<=0)return}}).call(this)}h.exports.streamReturningOperators={asIndexedPairs:y(ne,"readable.asIndexedPairs will be removed in a future version."),drop:W,filter:B,flatMap:Ae,map:he,take:oe,compose:q},h.exports.promiseReturningOperators={every:ce,forEach:le,reduce:Z,toArray:ue,some:te,find:V}}),sa=Se((f,h)=>{ge(),me(),ye();var{ArrayPrototypePop:s,Promise:a}=Ze(),{isIterable:c,isNodeStream:n,isWebStream:r}=Ct(),{pipelineImpl:t}=fo(),{finished:e}=Vt();aa();function i(...l){return new a((d,p)=>{let g,b,E=l[l.length-1];if(E&&typeof E=="object"&&!n(E)&&!c(E)&&!r(E)){let S=s(l);g=S.signal,b=S.end}t(l,(S,x)=>{S?p(S):d(x)},{signal:g,end:b})})}h.exports={finished:e,pipeline:i}}),aa=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),{ObjectDefineProperty:a,ObjectKeys:c,ReflectApply:n}=Ze(),{promisify:{custom:r}}=gt(),{streamReturningOperators:t,promiseReturningOperators:e}=Jl(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:i}}=pt(),l=oa(),{setDefaultHighWaterMark:d,getDefaultHighWaterMark:p}=Jr(),{pipeline:g}=fo(),{destroyer:b}=sr(),E=Vt(),S=sa(),x=Ct(),y=h.exports=co().Stream;y.isDestroyed=x.isDestroyed,y.isDisturbed=x.isDisturbed,y.isErrored=x.isErrored,y.isReadable=x.isReadable,y.isWritable=x.isWritable,y.Readable=Xr();for(let A of c(t)){let _=function(...w){if(new.target)throw i();return y.Readable.from(n(R,this,w))},R=t[A];a(_,"name",{__proto__:null,value:R.name}),a(_,"length",{__proto__:null,value:R.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}for(let A of c(e)){let _=function(...w){if(new.target)throw i();return n(R,this,w)},R=e[A];a(_,"name",{__proto__:null,value:R.name}),a(_,"length",{__proto__:null,value:R.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}y.Writable=ho(),y.Duplex=Tt(),y.Transform=na(),y.PassThrough=ia(),y.pipeline=g;var{addAbortSignal:v}=Yr();y.addAbortSignal=v,y.finished=E,y.destroy=b,y.compose=l,y.setDefaultHighWaterMark=d,y.getDefaultHighWaterMark=p,a(y,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return S}}),a(g,r,{__proto__:null,enumerable:!0,get(){return S.pipeline}}),a(E,r,{__proto__:null,enumerable:!0,get(){return S.finished}}),y.Stream=y,y._isUint8Array=function(A){return A instanceof Uint8Array},y._uint8ArrayToBuffer=function(A){return s.from(A.buffer,A.byteOffset,A.byteLength)}}),tr=Se((f,h)=>{ge(),me(),ye();var s=aa(),a=sa(),c=s.Readable.destroy;h.exports=s.Readable,h.exports._uint8ArrayToBuffer=s._uint8ArrayToBuffer,h.exports._isUint8Array=s._isUint8Array,h.exports.isDisturbed=s.isDisturbed,h.exports.isErrored=s.isErrored,h.exports.isReadable=s.isReadable,h.exports.Readable=s.Readable,h.exports.Writable=s.Writable,h.exports.Duplex=s.Duplex,h.exports.Transform=s.Transform,h.exports.PassThrough=s.PassThrough,h.exports.addAbortSignal=s.addAbortSignal,h.exports.finished=s.finished,h.exports.destroy=s.destroy,h.exports.destroy=c,h.exports.pipeline=s.pipeline,h.exports.compose=s.compose,Object.defineProperty(s,"promises",{configurable:!0,enumerable:!0,get(){return a}}),h.exports.Stream=s.Stream,h.exports.default=h.exports}),Xl=Se((f,h)=>{ge(),me(),ye(),typeof Object.create=="function"?h.exports=function(s,a){a&&(s.super_=a,s.prototype=Object.create(a.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}))}:h.exports=function(s,a){if(a){s.super_=a;var c=function(){};c.prototype=a.prototype,s.prototype=new c,s.prototype.constructor=s}}}),Zl=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=Symbol.for("BufferList");function c(n){if(!(this instanceof c))return new c(n);c._init.call(this,n)}c._init=function(n){Object.defineProperty(this,a,{value:!0}),this._bufs=[],this.length=0,n&&this.append(n)},c.prototype._new=function(n){return new c(n)},c.prototype._offset=function(n){if(n===0)return[0,0];let r=0;for(let t=0;tthis.length||n<0)return;let r=this._offset(n);return this._bufs[r[0]][r[1]]},c.prototype.slice=function(n,r){return typeof n=="number"&&n<0&&(n+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,n,r)},c.prototype.copy=function(n,r,t,e){if((typeof t!="number"||t<0)&&(t=0),(typeof e!="number"||e>this.length)&&(e=this.length),t>=this.length||e<=0)return n||s.alloc(0);let i=!!n,l=this._offset(t),d=e-t,p=d,g=i&&r||0,b=l[1];if(t===0&&e===this.length){if(!i)return this._bufs.length===1?this._bufs[0]:s.concat(this._bufs,this.length);for(let E=0;ES)this._bufs[E].copy(n,g,b),g+=S;else{this._bufs[E].copy(n,g,b,b+p),g+=S;break}p-=S,b&&(b=0)}return n.length>g?n.slice(0,g):n},c.prototype.shallowSlice=function(n,r){if(n=n||0,r=typeof r!="number"?this.length:r,n<0&&(n+=this.length),r<0&&(r+=this.length),n===r)return this._new();let t=this._offset(n),e=this._offset(r),i=this._bufs.slice(t[0],e[0]+1);return e[1]===0?i.pop():i[i.length-1]=i[i.length-1].slice(0,e[1]),t[1]!==0&&(i[0]=i[0].slice(t[1])),this._new(i)},c.prototype.toString=function(n,r,t){return this.slice(r,t).toString(n)},c.prototype.consume=function(n){if(n=Math.trunc(n),Number.isNaN(n)||n<=0)return this;for(;this._bufs.length;)if(n>=this._bufs[0].length)n-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(n),this.length-=n;break}return this},c.prototype.duplicate=function(){let n=this._new();for(let r=0;r=0&&l=0&&lthis.length?this.length:r;let e=this._offset(r),i=e[0],l=e[1];for(;i=n.length){let p=d.indexOf(n,l);if(p!==-1)return this._reverseOffset([i,p]);l=d.length-n.length+1}else{let p=this._reverseOffset([i,l]);if(this._match(p,n))return p;l++}l=0}return-1},c.prototype._match=function(n,r){if(this.length-n{ge(),me(),ye();var s=tr().Duplex,a=Xl(),c=Zl();function n(r){if(!(this instanceof n))return new n(r);if(typeof r=="function"){this._callback=r;let t=(function(e){this._callback&&(this._callback(e),this._callback=null)}).bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),r=null}c._init.call(this,r),s.call(this)}a(n,s),Object.assign(n.prototype,c.prototype),n.prototype._new=function(r){return new n(r)},n.prototype._write=function(r,t,e){this._appendBuffer(r),typeof e=="function"&&e()},n.prototype._read=function(r){if(!this.length)return this.push(null);r=Math.min(r,this.length),this.push(this.slice(0,r)),this.consume(r)},n.prototype.end=function(r){s.prototype.end.call(this,r),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(r,t){this._bufs.length=0,this.length=0,t(r)},n.prototype._isBufferList=function(r){return r instanceof n||r instanceof c||n.isBufferList(r)},n.isBufferList=c.isBufferList,h.exports=n,h.exports.BufferListStream=n,h.exports.BufferList=c}),tu=Se((f,h)=>{ge(),me(),ye();var s=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};h.exports=s}),la=Se((f,h)=>{ge(),me(),ye();var s=h.exports,{Buffer:a}=(st(),Ke(ot));s.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},s.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},s.requiredHeaderFlagsErrors={};for(let n in s.requiredHeaderFlags){let r=s.requiredHeaderFlags[n];s.requiredHeaderFlagsErrors[n]="Invalid header flag bits, must be 0x"+r.toString(16)+" for "+s.types[n]+" packet"}s.codes={};for(let n in s.types){let r=s.types[n];s.codes[r]=n}s.CMD_SHIFT=4,s.CMD_MASK=240,s.DUP_MASK=8,s.QOS_MASK=3,s.QOS_SHIFT=1,s.RETAIN_MASK=1,s.VARBYTEINT_MASK=127,s.VARBYTEINT_FIN_MASK=128,s.VARBYTEINT_MAX=268435455,s.SESSIONPRESENT_MASK=1,s.SESSIONPRESENT_HEADER=a.from([s.SESSIONPRESENT_MASK]),s.CONNACK_HEADER=a.from([s.codes.connack<[0,1].map(t=>[0,1].map(e=>{let i=a.alloc(1);return i.writeUInt8(s.codes[n]<a.from([n])),s.EMPTY={pingreq:a.from([s.codes.pingreq<<4,0]),pingresp:a.from([s.codes.pingresp<<4,0]),disconnect:a.from([s.codes.disconnect<<4,0])},s.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},s.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},s.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},s.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),ru=Se((f,h)=>{ge(),me(),ye();var s=1e3,a=s*60,c=a*60,n=c*24,r=n*7,t=n*365.25;h.exports=function(p,g){g=g||{};var b=typeof p;if(b==="string"&&p.length>0)return e(p);if(b==="number"&&isFinite(p))return g.long?l(p):i(p);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(p))};function e(p){if(p=String(p),!(p.length>100)){var g=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(p);if(g){var b=parseFloat(g[1]),E=(g[2]||"ms").toLowerCase();switch(E){case"years":case"year":case"yrs":case"yr":case"y":return b*t;case"weeks":case"week":case"w":return b*r;case"days":case"day":case"d":return b*n;case"hours":case"hour":case"hrs":case"hr":case"h":return b*c;case"minutes":case"minute":case"mins":case"min":case"m":return b*a;case"seconds":case"second":case"secs":case"sec":case"s":return b*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}function i(p){var g=Math.abs(p);return g>=n?Math.round(p/n)+"d":g>=c?Math.round(p/c)+"h":g>=a?Math.round(p/a)+"m":g>=s?Math.round(p/s)+"s":p+"ms"}function l(p){var g=Math.abs(p);return g>=n?d(p,g,n,"day"):g>=c?d(p,g,c,"hour"):g>=a?d(p,g,a,"minute"):g>=s?d(p,g,s,"second"):p+" ms"}function d(p,g,b,E){var S=g>=b*1.5;return Math.round(p/b)+" "+E+(S?"s":"")}}),nu=Se((f,h)=>{ge(),me(),ye();function s(a){n.debug=n,n.default=n,n.coerce=d,n.disable=i,n.enable=t,n.enabled=l,n.humanize=ru(),n.destroy=p,Object.keys(a).forEach(g=>{n[g]=a[g]}),n.names=[],n.skips=[],n.formatters={};function c(g){let b=0;for(let E=0;E{if(O==="%%")return"%";w++;let M=n.formatters[T];if(typeof M=="function"){let U=v[w];O=M.call(A,U),v.splice(w,1),w--}return O}),n.formatArgs.call(A,v),(A.log||n.log).apply(A,v)}return y.namespace=g,y.useColors=n.useColors(),y.color=n.selectColor(g),y.extend=r,y.destroy=n.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(S!==n.namespaces&&(S=n.namespaces,x=n.enabled(g)),x),set:v=>{E=v}}),typeof n.init=="function"&&n.init(y),y}function r(g,b){let E=n(this.namespace+(typeof b>"u"?":":b)+g);return E.log=this.log,E}function t(g){n.save(g),n.namespaces=g,n.names=[],n.skips=[];let b=(typeof g=="string"?g:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?n.skips.push(E.slice(1)):n.names.push(E)}function e(g,b){let E=0,S=0,x=-1,y=0;for(;E"-"+b)].join(",");return n.enable(""),g}function l(g){for(let b of n.skips)if(e(g,b))return!1;for(let b of n.names)if(e(g,b))return!0;return!1}function d(g){return g instanceof Error?g.stack||g.message:g}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}h.exports=s}),Pt=Se((f,h)=>{ge(),me(),ye(),f.formatArgs=a,f.save=c,f.load=n,f.useColors=s,f.storage=r(),f.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),f.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function s(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+h.exports.humanize(this.diff),!this.useColors)return;let i="color: "+this.color;e.splice(1,0,i,"color: inherit");let l=0,d=0;e[0].replace(/%[a-zA-Z%]/g,p=>{p!=="%%"&&(l++,p==="%c"&&(d=l))}),e.splice(d,0,i)}f.log=console.debug||console.log||(()=>{});function c(e){try{e?f.storage.setItem("debug",e):f.storage.removeItem("debug")}catch{}}function n(){let e;try{e=f.storage.getItem("debug")||f.storage.getItem("DEBUG")}catch{}return!e&&typeof Ge<"u"&&"env"in Ge&&(e=Ge.env.DEBUG),e}function r(){try{return localStorage}catch{}}h.exports=nu()(f);var{formatters:t}=h.exports;t.j=function(e){try{return JSON.stringify(e)}catch(i){return"[UnexpectedJSONParseError]: "+i.message}}}),iu=Se((f,h)=>{ge(),me(),ye();var s=eu(),{EventEmitter:a}=(Zt(),Ke(qt)),c=tu(),n=la(),r=Pt()("mqtt-packet:parser"),t=class gi extends a{constructor(){super(),this.parser=this.constructor.parser}static parser(i){return this instanceof gi?(this.settings=i||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new gi().parser(i)}_resetState(){r("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new c,this.error=null,this._list=s(),this._stateCounter=0}parse(i){for(this.error&&this._resetState(),this._list.append(i),r("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,r("parse: state complete. _stateCounter is now: %d",this._stateCounter),r("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return r("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let i=this._list.readUInt8(0),l=i>>n.CMD_SHIFT;this.packet.cmd=n.types[l];let d=i&15,p=n.requiredHeaderFlags[l];return p!=null&&d!==p?this._emitError(new Error(n.requiredHeaderFlagsErrors[l])):(this.packet.retain=(i&n.RETAIN_MASK)!==0,this.packet.qos=i>>n.QOS_SHIFT&n.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(i&n.DUP_MASK)!==0,r("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let i=this._parseVarByteNum(!0);return i&&(this.packet.length=i.value,this._list.consume(i.bytes)),r("_parseLength %d",i.value),!!i}_parsePayload(){r("_parsePayload: payload %O",this._list);let i=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}i=!0}return r("_parsePayload complete result: %s",i),i}_parseConnect(){r("_parseConnect");let i,l,d,p,g={},b=this.packet,E=this._parseString();if(E===null)return this._emitError(new Error("Cannot parse protocolId"));if(E!=="MQTT"&&E!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(b.protocolId=E,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(b.protocolVersion=this._list.readUInt8(this._pos),b.protocolVersion>=128&&(b.bridgeMode=!0,b.protocolVersion=b.protocolVersion-128),b.protocolVersion!==3&&b.protocolVersion!==4&&b.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));g.username=this._list.readUInt8(this._pos)&n.USERNAME_MASK,g.password=this._list.readUInt8(this._pos)&n.PASSWORD_MASK,g.will=this._list.readUInt8(this._pos)&n.WILL_FLAG_MASK;let S=!!(this._list.readUInt8(this._pos)&n.WILL_RETAIN_MASK),x=(this._list.readUInt8(this._pos)&n.WILL_QOS_MASK)>>n.WILL_QOS_SHIFT;if(g.will)b.will={},b.will.retain=S,b.will.qos=x;else{if(S)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(x)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(b.clean=(this._list.readUInt8(this._pos)&n.CLEAN_SESSION_MASK)!==0,this._pos++,b.keepalive=this._parseNum(),b.keepalive===-1)return this._emitError(new Error("Packet too short"));if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.properties=v)}let y=this._parseString();if(y===null)return this._emitError(new Error("Packet too short"));if(b.clientId=y,r("_parseConnect: packet.clientId: %s",b.clientId),g.will){if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.will.properties=v)}if(i=this._parseString(),i===null)return this._emitError(new Error("Cannot parse will topic"));if(b.will.topic=i,r("_parseConnect: packet.will.topic: %s",b.will.topic),l=this._parseBuffer(),l===null)return this._emitError(new Error("Cannot parse will payload"));b.will.payload=l,r("_parseConnect: packet.will.paylaod: %s",b.will.payload)}if(g.username){if(p=this._parseString(),p===null)return this._emitError(new Error("Cannot parse username"));b.username=p,r("_parseConnect: packet.username: %s",b.username)}if(g.password){if(d=this._parseBuffer(),d===null)return this._emitError(new Error("Cannot parse password"));b.password=d}return this.settings=b,r("_parseConnect: complete"),b}_parseConnack(){r("_parseConnack");let i=this.packet;if(this._list.length<1)return null;let l=this._list.readUInt8(this._pos++);if(l>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(i.sessionPresent=!!(l&n.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?i.reasonCode=this._list.readUInt8(this._pos++):i.reasonCode=0;else{if(this._list.length<2)return null;i.returnCode=this._list.readUInt8(this._pos++)}if(i.returnCode===-1||i.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let d=this._parseProperties();Object.getOwnPropertyNames(d).length&&(i.properties=d)}r("_parseConnack: complete")}_parsePublish(){r("_parsePublish");let i=this.packet;if(i.topic=this._parseString(),i.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(i.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}i.payload=this._list.slice(this._pos,i.length),r("_parsePublish: payload from buffer list: %o",i.payload)}}_parseSubscribe(){r("_parseSubscribe");let i=this.packet,l,d,p,g,b,E,S;if(i.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let x=this._parseProperties();Object.getOwnPropertyNames(x).length&&(i.properties=x)}if(i.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=i.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(d=this._parseByte(),this.settings.protocolVersion===5){if(d&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(d&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(p=d&n.SUBSCRIBE_OPTIONS_QOS_MASK,p>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(E=(d>>n.SUBSCRIBE_OPTIONS_NL_SHIFT&n.SUBSCRIBE_OPTIONS_NL_MASK)!==0,b=(d>>n.SUBSCRIBE_OPTIONS_RAP_SHIFT&n.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,g=d>>n.SUBSCRIBE_OPTIONS_RH_SHIFT&n.SUBSCRIBE_OPTIONS_RH_MASK,g>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));S={topic:l,qos:p},this.settings.protocolVersion===5?(S.nl=E,S.rap=b,S.rh=g):this.settings.bridgeMode&&(S.rh=0,S.rap=!0,S.nl=!0),r("_parseSubscribe: push subscription `%s` to subscription",S),i.subscriptions.push(S)}}}_parseSuback(){r("_parseSuback");let i=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&l!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(l)}}}_parseUnsubscribe(){r("_parseUnsubscribe");let i=this.packet;if(i.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(i.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!n.MQTT5_PUBACK_PUBREC_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!n.MQTT5_PUBREL_PUBCOMP_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}r("_parseConfirmation: packet.reasonCode `%d`",i.reasonCode)}else i.reasonCode=0;if(i.length>3){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}}return!0}_parseDisconnect(){let i=this.packet;if(r("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(i.reasonCode=this._parseByte(),n.MQTT5_DISCONNECT_CODES[i.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):i.reasonCode=0;let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}return r("_parseDisconnect result: true"),!0}_parseAuth(){r("_parseAuth");let i=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(i.reasonCode=this._parseByte(),!n.MQTT5_AUTH_CODES[i.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let l=this._parseProperties();return Object.getOwnPropertyNames(l).length&&(i.properties=l),r("_parseAuth: result: true"),!0}_parseMessageId(){let i=this.packet;return i.messageId=this._parseNum(),i.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(r("_parseMessageId: packet.messageId %d",i.messageId),!0)}_parseString(i){let l=this._parseNum(),d=l+this._pos;if(l===-1||d>this._list.length||d>this.packet.length)return null;let p=this._list.toString("utf8",this._pos,d);return this._pos+=l,r("_parseString: result: %s",p),p}_parseStringPair(){return r("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let i=this._parseNum(),l=i+this._pos;if(i===-1||l>this._list.length||l>this.packet.length)return null;let d=this._list.slice(this._pos,l);return this._pos+=i,r("_parseBuffer: result: %o",d),d}_parseNum(){if(this._list.length-this._pos<2)return-1;let i=this._list.readUInt16BE(this._pos);return this._pos+=2,r("_parseNum: result: %s",i),i}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let i=this._list.readUInt32BE(this._pos);return this._pos+=4,r("_parse4ByteNum: result: %s",i),i}_parseVarByteNum(i){r("_parseVarByteNum");let l=4,d=0,p=1,g=0,b=!1,E,S=this._pos?this._pos:0;for(;d=d&&this._emitError(new Error("Invalid variable byte integer")),S&&(this._pos+=d),b?i?b={bytes:d,value:g}:b=g:b=!1,r("_parseVarByteNum: result: %o",b),b}_parseByte(){let i;return this._pos{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=65536,c={},n=s.isBuffer(s.from([1,2]).subarray(0,1));function r(l){let d=s.allocUnsafe(2);return d.writeUInt8(l>>8,0),d.writeUInt8(l&255,1),d}function t(){for(let l=0;l0&&(d=d|128),g.writeUInt8(d,p++);while(l>0&&p<4);return l>0&&(p=0),n?g.subarray(0,p):g.slice(0,p)}function i(l){let d=s.allocUnsafe(4);return d.writeUInt32BE(l,0),d}h.exports={cache:c,generateCache:t,generateNumber:r,genBufVariableByteInt:e,generate4ByteBuffer:i}}),su=Se((f,h)=>{ge(),me(),ye(),typeof Ge>"u"||!Ge.version||Ge.version.indexOf("v0.")===0||Ge.version.indexOf("v1.")===0&&Ge.version.indexOf("v1.8.")!==0?h.exports={nextTick:s}:h.exports=Ge;function s(a,c,n,r){if(typeof a!="function")throw new TypeError('"callback" argument must be a function');var t=arguments.length,e,i;switch(t){case 0:case 1:return Ge.nextTick(a);case 2:return Ge.nextTick(function(){a.call(null,c)});case 3:return Ge.nextTick(function(){a.call(null,c,n)});case 4:return Ge.nextTick(function(){a.call(null,c,n,r)});default:for(e=new Array(t-1),i=0;i{ge(),me(),ye();var s=la(),{Buffer:a}=(st(),Ke(ot)),c=a.allocUnsafe(0),n=a.from([0]),r=ou(),t=su().nextTick,e=Pt()("mqtt-packet:writeToStream"),i=r.cache,l=r.generateNumber,d=r.generateCache,p=r.genBufVariableByteInt,g=r.generate4ByteBuffer,b=ne,E=!0;function S(Y,W,oe){switch(e("generate called"),W.cork&&(W.cork(),t(x,W)),E&&(E=!1,d()),e("generate: packet.cmd: %s",Y.cmd),Y.cmd){case"connect":return y(Y,W);case"connack":return v(Y,W,oe);case"publish":return A(Y,W,oe);case"puback":case"pubrec":case"pubrel":case"pubcomp":return _(Y,W,oe);case"subscribe":return R(Y,W,oe);case"suback":return w(Y,W,oe);case"unsubscribe":return O(Y,W,oe);case"unsuback":return T(Y,W,oe);case"pingreq":case"pingresp":return M(Y,W);case"disconnect":return U(Y,W,oe);case"auth":return k(Y,W,oe);default:return W.destroy(new Error("Unknown command")),!1}}Object.defineProperty(S,"cacheNumbers",{get(){return b===ne},set(Y){Y?((!i||Object.keys(i).length===0)&&(E=!0),b=ne):(E=!1,b=te)}});function x(Y){Y.uncork()}function y(Y,W,oe){let X=Y||{},J=X.protocolId||"MQTT",re=X.protocolVersion||4,we=X.will,pe=X.clean,L=X.keepalive||0,H=X.clientId||"",se=X.username,be=X.password,ve=X.properties;pe===void 0&&(pe=!0);let Ee=0;if(typeof J!="string"&&!a.isBuffer(J))return W.destroy(new Error("Invalid protocolId")),!1;if(Ee+=J.length+2,re!==3&&re!==4&&re!==5)return W.destroy(new Error("Invalid protocol version")),!1;if(Ee+=1,(typeof H=="string"||a.isBuffer(H))&&(H||re>=4)&&(H||pe))Ee+=a.byteLength(H)+2;else{if(re<4)return W.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(pe*1===0)return W.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof L!="number"||L<0||L>65535||L%1!==0)return W.destroy(new Error("Invalid keepalive")),!1;Ee+=2,Ee+=1;let Q,_e;if(re===5){if(Q=le(W,ve),!Q)return!1;Ee+=Q.length}if(we){if(typeof we!="object")return W.destroy(new Error("Invalid will")),!1;if(!we.topic||typeof we.topic!="string")return W.destroy(new Error("Invalid will topic")),!1;if(Ee+=a.byteLength(we.topic)+2,Ee+=2,we.payload)if(we.payload.length>=0)typeof we.payload=="string"?Ee+=a.byteLength(we.payload):Ee+=we.payload.length;else return W.destroy(new Error("Invalid will payload")),!1;if(_e={},re===5){if(_e=le(W,we.properties),!_e)return!1;Ee+=_e.length}}let Oe=!1;if(se!=null)if(Ae(se))Oe=!0,Ee+=a.byteLength(se)+2;else return W.destroy(new Error("Invalid username")),!1;if(be!=null){if(!Oe)return W.destroy(new Error("Username is required to use password")),!1;if(Ae(be))Ee+=ue(be)+2;else return W.destroy(new Error("Invalid password")),!1}W.write(s.CONNECT_HEADER),G(W,Ee),V(W,J),X.bridgeMode&&(re+=128),W.write(re===131?s.VERSION131:re===132?s.VERSION132:re===4?s.VERSION4:re===5?s.VERSION5:s.VERSION3);let fe=0;return fe|=se!=null?s.USERNAME_MASK:0,fe|=be!=null?s.PASSWORD_MASK:0,fe|=we&&we.retain?s.WILL_RETAIN_MASK:0,fe|=we&&we.qos?we.qos<0&&b(W,H),ve?.write(),e("publish: payload: %o",L),W.write(L)}function _(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.cmd||"puback",we=J.messageId,pe=J.dup&&re==="pubrel"?s.DUP_MASK:0,L=0,H=J.reasonCode,se=J.properties,be=X===5?3:2;if(re==="pubrel"&&(L=1),typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;let ve=null;if(X===5&&typeof se=="object"){if(ve=B(W,se,oe,be),!ve)return!1;be+=ve.length}return W.write(s.ACKS[re][L][pe][0]),be===3&&(be+=H!==0?1:-1),G(W,be),b(W,we),X===5&&be!==2&&W.write(a.from([H])),ve!==null?ve.write():be===4&&W.write(a.from([0])),!0}function R(Y,W,oe){e("subscribe: packet: ");let X=oe?oe.protocolVersion:4,J=Y||{},re=J.dup?s.DUP_MASK:0,we=J.messageId,pe=J.subscriptions,L=J.properties,H=0;if(typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;H+=2;let se=null;if(X===5){if(se=le(W,L),!se)return!1;H+=se.length}if(typeof pe=="object"&&pe.length)for(let ve=0;ve2)return W.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}H+=a.byteLength(Ee)+2+1}else return W.destroy(new Error("Invalid subscriptions")),!1;e("subscribe: writing to stream: %o",s.SUBSCRIBE_HEADER),W.write(s.SUBSCRIBE_HEADER[1][re?1:0][0]),G(W,H),b(W,we),se!==null&&se.write();let be=!0;for(let ve of pe){let Ee=ve.topic,Q=ve.qos,_e=+ve.nl,Oe=+ve.rap,fe=ve.rh,Be;q(W,Ee),Be=s.SUBSCRIBE_OPTIONS_QOS[Q],X===5&&(Be|=_e?s.SUBSCRIBE_OPTIONS_NL:0,Be|=Oe?s.SUBSCRIBE_OPTIONS_RAP:0,Be|=fe?s.SUBSCRIBE_OPTIONS_RH[fe]:0),be=W.write(a.from([Be]))}return be}function w(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.messageId,we=J.granted,pe=J.properties,L=0;if(typeof re!="number")return W.destroy(new Error("Invalid messageId")),!1;if(L+=2,typeof we=="object"&&we.length)for(let se=0;ses.VARBYTEINT_MAX)return Y.destroy(new Error(`Invalid variable byte integer: ${W}`)),!1;let oe=z[W];return oe||(oe=p(W),W<16384&&(z[W]=oe)),e("writeVarByteInt: writing to stream: %o",oe),Y.write(oe)}function q(Y,W){let oe=a.byteLength(W);return b(Y,oe),e("writeString: %s",W),Y.write(W,"utf8")}function he(Y,W,oe){q(Y,W),q(Y,oe)}function ne(Y,W){return e("writeNumberCached: number: %d",W),e("writeNumberCached: %o",i[W]),Y.write(i[W])}function te(Y,W){let oe=l(W);return e("writeNumberGenerated: %o",oe),Y.write(oe)}function ce(Y,W){let oe=g(W);return e("write4ByteNumber: %o",oe),Y.write(oe)}function V(Y,W){typeof W=="string"?q(Y,W):W?(b(Y,W.length),Y.write(W)):b(Y,0)}function le(Y,W){if(typeof W!="object"||W.length!=null)return{length:1,write(){Z(Y,{},0)}};let oe=0;function X(J,re){let we=s.propertiesTypes[J],pe=0;switch(we){case"byte":{if(typeof re!="boolean")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"int8":{if(typeof re!="number"||re<0||re>255)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"binary":{if(re&&re===null)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(re)+2;break}case"int16":{if(typeof re!="number"||re<0||re>65535)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3;break}case"int32":{if(typeof re!="number"||re<0||re>4294967295)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=5;break}case"var":{if(typeof re!="number"||re<0||re>268435455)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(p(re));break}case"string":{if(typeof re!="string")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3+a.byteLength(re.toString());break}case"pair":{if(typeof re!="object")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=Object.getOwnPropertyNames(re).reduce((L,H)=>{let se=re[H];return Array.isArray(se)?L+=se.reduce((be,ve)=>(be+=3+a.byteLength(H.toString())+2+a.byteLength(ve.toString()),be),0):L+=3+a.byteLength(H.toString())+2+a.byteLength(re[H].toString()),L},0);break}default:return Y.destroy(new Error(`Invalid property ${J}: ${re}`)),!1}return pe}if(W)for(let J in W){let re=0,we=0,pe=W[J];if(pe!==void 0){if(Array.isArray(pe))for(let L=0;Lre;){let pe=J.shift();if(pe&&W[pe])delete W[pe],we=le(Y,W);else return!1}return we}function ee(Y,W,oe){switch(s.propertiesTypes[W]){case"byte":{Y.write(a.from([s.properties[W]])),Y.write(a.from([+oe]));break}case"int8":{Y.write(a.from([s.properties[W]])),Y.write(a.from([oe]));break}case"binary":{Y.write(a.from([s.properties[W]])),V(Y,oe);break}case"int16":{Y.write(a.from([s.properties[W]])),b(Y,oe);break}case"int32":{Y.write(a.from([s.properties[W]])),ce(Y,oe);break}case"var":{Y.write(a.from([s.properties[W]])),G(Y,oe);break}case"string":{Y.write(a.from([s.properties[W]])),q(Y,oe);break}case"pair":{Object.getOwnPropertyNames(oe).forEach(X=>{let J=oe[X];Array.isArray(J)?J.forEach(re=>{Y.write(a.from([s.properties[W]])),he(Y,X.toString(),re.toString())}):(Y.write(a.from([s.properties[W]])),he(Y,X.toString(),J.toString()))});break}default:return Y.destroy(new Error(`Invalid property ${W} value: ${oe}`)),!1}}function Z(Y,W,oe){G(Y,oe);for(let X in W)if(Object.prototype.hasOwnProperty.call(W,X)&&W[X]!=null){let J=W[X];if(Array.isArray(J))for(let re=0;re{ge(),me(),ye();var s=ua(),{EventEmitter:a}=(Zt(),Ke(qt)),{Buffer:c}=(st(),Ke(ot));function n(t,e){let i=new r;return s(t,i,e),i.concat()}var r=class extends a{constructor(){super(),this._array=new Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0,e=new Array(this._array.length),i=this._array,l=0,d;for(d=0;d{ge(),me(),ye(),f.parser=iu().parser,f.generate=au(),f.writeToStream=ua()}),uu=Se((f,h)=>{ge(),me(),ye(),h.exports=a;function s(n){return n instanceof Gr?Gr.from(n):new n.constructor(n.buffer.slice(),n.byteOffset,n.length)}function a(n){if(n=n||{},n.circles)return c(n);let r=new Map;if(r.set(Date,d=>new Date(d)),r.set(Map,(d,p)=>new Map(e(Array.from(d),p))),r.set(Set,(d,p)=>new Set(e(Array.from(d),p))),n.constructorHandlers)for(let d of n.constructorHandlers)r.set(d[0],d[1]);let t=null;return n.proto?l:i;function e(d,p){let g=Object.keys(d),b=new Array(g.length);for(let E=0;Enew Date(g)),e.set(Map,(g,b)=>new Map(l(Array.from(g),b))),e.set(Set,(g,b)=>new Set(l(Array.from(g),b))),n.constructorHandlers)for(let g of n.constructorHandlers)e.set(g[0],g[1]);let i=null;return n.proto?p:d;function l(g,b){let E=Object.keys(g),S=new Array(E.length);for(let x=0;x{ge(),me(),ye(),h.exports=uu()()}),hu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.validateTopic=h,f.validateTopics=s;function h(a){let c=a.split("/");for(let n=0;n{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=tr(),s={objectMode:!0},a={clean:!0},c=class{options;_inflights;constructor(n){this.options=n||{},this.options={...a,...n},this._inflights=new Map}put(n,r){return this._inflights.set(n.messageId,n),r&&r(),this}createStream(){let n=new h.Readable(s),r=[],t=!1,e=0;return this._inflights.forEach((i,l)=>{r.push(i)}),n._read=()=>{!t&&e{if(!t)return t=!0,setTimeout(()=>{n.emit("close")},0),n},n}del(n,r){let t=this._inflights.get(n.messageId);return t?(this._inflights.delete(n.messageId),r(null,t)):r&&r(new Error("missing packet")),this}get(n,r){let t=this._inflights.get(n.messageId);return t?r(null,t):r&&r(new Error("missing packet")),this}close(n){this.options.clean&&(this._inflights=null),n&&n()}};f.default=c}),fu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=[0,16,128,131,135,144,145,151,153],s=(a,c,n)=>{a.log("handlePublish: packet %o",c),n=typeof n<"u"?n:a.noop;let r=c.topic.toString(),t=c.payload,{qos:e}=c,{messageId:i}=c,{options:l}=a;if(a.options.protocolVersion===5){let d;if(c.properties&&(d=c.properties.topicAlias),typeof d<"u")if(r.length===0)if(d>0&&d<=65535){let p=a.topicAliasRecv.getTopicByAlias(d);if(p)r=p,a.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",r,d);else{a.log("handlePublish :: unregistered topic alias. alias: %d",d),a.emit("error",new Error("Received unregistered Topic Alias"));return}}else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}else if(a.topicAliasRecv.put(r,d))a.log("handlePublish :: registered topic: %s - alias: %d",r,d);else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(a.log("handlePublish: qos %d",e),e){case 2:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for pubrec"));p?a._sendPacket({cmd:"pubrec",messageId:i,reasonCode:p},n):a.incomingStore.put(c,()=>{a._sendPacket({cmd:"pubrec",messageId:i},n)})});break}case 1:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for puback"));p||a.emit("message",r,t,c),a.handleMessage(c,g=>{if(g)return n&&n(g);a._sendPacket({cmd:"puback",messageId:i,reasonCode:p},n)})});break}case 0:a.emit("message",r,t,c),a.handleMessage(c,n);break;default:a.log("handlePublish: unknown QoS. Doing nothing.");break}};f.default=s}),pu=Se((f,h)=>{h.exports={version:"5.14.0"}}),ar=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.MQTTJS_VERSION=f.nextTick=f.ErrorWithSubackPacket=f.ErrorWithReasonCode=void 0,f.applyMixin=a;var h=class ha extends Error{code;constructor(n,r){super(n),this.code=r,Object.setPrototypeOf(this,ha.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};f.ErrorWithReasonCode=h;var s=class fa extends Error{packet;constructor(n,r){super(n),this.packet=r,Object.setPrototypeOf(this,fa.prototype),Object.getPrototypeOf(this).name="ErrorWithSubackPacket"}};f.ErrorWithSubackPacket=s;function a(c,n,r=!1){let t=[n];for(;;){let e=t[0],i=Object.getPrototypeOf(e);if(i?.prototype)t.unshift(i);else break}for(let e of t)for(let i of Object.getOwnPropertyNames(e.prototype))(r||i!=="constructor")&&Object.defineProperty(c.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i)??Object.create(null))}f.nextTick=typeof Ge?.nextTick=="function"?Ge.nextTick:c=>{setTimeout(c,0)},f.MQTTJS_VERSION=pu().version}),Zr=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.ReasonCodes=void 0;var h=ar();f.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var s=(a,c)=>{let{messageId:n}=c,r=c.cmd,t=null,e=a.outgoing[n]?a.outgoing[n].cb:null,i=null;if(!e){a.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(a.log("_handleAck :: packet type",r),r){case"pubcomp":case"puback":{let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._removeOutgoingAndStoreMessage(n,e);break}case"pubrec":{t={cmd:"pubrel",qos:2,messageId:n};let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._sendPacket(t);break}case"suback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n);let l=c.granted;for(let d=0;d{delete a._resubscribeTopics[b]})}}delete a.messageIdToTopic[n],a._invokeStoreProcessingQueue(),e(i,c);break}case"unsuback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n),a._invokeStoreProcessingQueue(),e(null,c);break}default:a.emit("error",new Error("unrecognized packet type"))}a.disconnecting&&Object.keys(a.outgoing).length===0&&a.emit("outgoingEmpty")};f.default=s}),du=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=ar(),s=Zr(),a=(c,n)=>{let{options:r}=c,t=r.protocolVersion,e=t===5?n.reasonCode:n.returnCode;if(t!==5){let i=new h.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${t}`,e);c.emit("error",i);return}c.handleAuth(n,(i,l)=>{if(i){c.emit("error",i);return}if(e===24)c.reconnecting=!1,c._sendPacket(l);else{let d=new h.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[e]}`,e);c.emit("error",d)}})};f.default=a}),gu=Se(f=>{var g,b,E,S,x,y,v,A,_,R,w,O,T,M,U,k,z,G,q,he,ne,te,ce,V,le,B,ee,Z,yi,Ae,Y,W,oe,pa,J,re,we,Lt,Dt,mi,Er,Ar,Ye,bi,fr,Ft,vi,fe;ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.LRUCache=void 0;var h=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,s=new Set,a=typeof Ge=="object"&&Ge?Ge:{},c=(Be,o,u,m)=>{typeof a.emitWarning=="function"?a.emitWarning(Be,o,u,m):console.error(`[${u}] ${o}: ${Be}`)},n=globalThis.AbortController,r=globalThis.AbortSignal;if(typeof n>"u"){r=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(u,m){this._onabort.push(m)}},n=class{constructor(){o()}signal=new r;abort(u){if(!this.signal.aborted){this.signal.reason=u,this.signal.aborted=!0;for(let m of this.signal._onabort)m(u);this.signal.onabort?.(u)}}};let Be=a.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",o=()=>{Be&&(Be=!1,c("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",o))}}var t=Be=>!s.has(Be),e=Be=>Be&&Be===Math.floor(Be)&&Be>0&&isFinite(Be),i=Be=>e(Be)?Be<=Math.pow(2,8)?Uint8Array:Be<=Math.pow(2,16)?Uint16Array:Be<=Math.pow(2,32)?Uint32Array:Be<=Number.MAX_SAFE_INTEGER?l:null:null,l=class extends Array{constructor(Be){super(Be),this.fill(0)}},d=(g=class{heap;length;static create(o){let u=i(o);if(!u)return[];De(g,b,!0);let m=new g(o,u);return De(g,b,!1),m}constructor(o,u){if(!D(g,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(o),this.length=0}push(o){this.heap[this.length++]=o}pop(){return this.heap[--this.length]}},b=new WeakMap,qe(g,b,!1),g),p=(fe=class{constructor(o){qe(this,Z);qe(this,x);qe(this,y);qe(this,v);qe(this,A);qe(this,_);qe(this,R);it(this,"ttl");it(this,"ttlResolution");it(this,"ttlAutopurge");it(this,"updateAgeOnGet");it(this,"updateAgeOnHas");it(this,"allowStale");it(this,"noDisposeOnSet");it(this,"noUpdateTTL");it(this,"maxEntrySize");it(this,"sizeCalculation");it(this,"noDeleteOnFetchRejection");it(this,"noDeleteOnStaleGet");it(this,"allowStaleOnFetchAbort");it(this,"allowStaleOnFetchRejection");it(this,"ignoreFetchAbort");qe(this,w);qe(this,O);qe(this,T);qe(this,M);qe(this,U);qe(this,k);qe(this,z);qe(this,G);qe(this,q);qe(this,he);qe(this,ne);qe(this,te);qe(this,ce);qe(this,V);qe(this,le);qe(this,B);qe(this,ee);qe(this,Ae,()=>{});qe(this,Y,()=>{});qe(this,W,()=>{});qe(this,oe,()=>!1);qe(this,J,o=>{});qe(this,re,(o,u,m)=>{});qe(this,we,(o,u,m,C)=>{if(m||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});it(this,E,"LRUCache");let{max:u=0,ttl:m,ttlResolution:C=1,ttlAutopurge:N,updateAgeOnGet:K,updateAgeOnHas:de,allowStale:$,dispose:ie,disposeAfter:Re,noDisposeOnSet:Te,noUpdateTTL:Le,maxSize:Ue=0,maxEntrySize:Xe=0,sizeCalculation:Fe,fetchMethod:We,memoMethod:je,noDeleteOnFetchRejection:tt,noDeleteOnStaleGet:He,allowStaleOnFetchRejection:$e,allowStaleOnFetchAbort:nt,ignoreFetchAbort:dt}=o;if(u!==0&&!e(u))throw new TypeError("max option must be a nonnegative integer");let lt=u?i(u):Array;if(!lt)throw new Error("invalid max value: "+u);if(De(this,x,u),De(this,y,Ue),this.maxEntrySize=Xe||D(this,y),this.sizeCalculation=Fe,this.sizeCalculation){if(!D(this,y)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(je!==void 0&&typeof je!="function")throw new TypeError("memoMethod must be a function if defined");if(De(this,R,je),We!==void 0&&typeof We!="function")throw new TypeError("fetchMethod must be a function if specified");if(De(this,_,We),De(this,B,!!We),De(this,T,new Map),De(this,M,new Array(u).fill(void 0)),De(this,U,new Array(u).fill(void 0)),De(this,k,new lt(u)),De(this,z,new lt(u)),De(this,G,0),De(this,q,0),De(this,he,d.create(u)),De(this,w,0),De(this,O,0),typeof ie=="function"&&De(this,v,ie),typeof Re=="function"?(De(this,A,Re),De(this,ne,[])):(De(this,A,void 0),De(this,ne,void 0)),De(this,le,!!D(this,v)),De(this,ee,!!D(this,A)),this.noDisposeOnSet=!!Te,this.noUpdateTTL=!!Le,this.noDeleteOnFetchRejection=!!tt,this.allowStaleOnFetchRejection=!!$e,this.allowStaleOnFetchAbort=!!nt,this.ignoreFetchAbort=!!dt,this.maxEntrySize!==0){if(D(this,y)!==0&&!e(D(this,y)))throw new TypeError("maxSize must be a positive integer if specified");if(!e(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ne(this,Z,pa).call(this)}if(this.allowStale=!!$,this.noDeleteOnStaleGet=!!He,this.updateAgeOnGet=!!K,this.updateAgeOnHas=!!de,this.ttlResolution=e(C)||C===0?C:1,this.ttlAutopurge=!!N,this.ttl=m||0,this.ttl){if(!e(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ne(this,Z,yi).call(this)}if(D(this,x)===0&&this.ttl===0&&D(this,y)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!D(this,x)&&!D(this,y)){let j="LRU_CACHE_UNBOUNDED";t(j)&&(s.add(j),c("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",j,fe))}}static unsafeExposeInternals(o){return{starts:D(o,ce),ttls:D(o,V),sizes:D(o,te),keyMap:D(o,T),keyList:D(o,M),valList:D(o,U),next:D(o,k),prev:D(o,z),get head(){return D(o,G)},get tail(){return D(o,q)},free:D(o,he),isBackgroundFetch:u=>{var m;return Ne(m=o,Z,Ye).call(m,u)},backgroundFetch:(u,m,C,N)=>{var K;return Ne(K=o,Z,Ar).call(K,u,m,C,N)},moveToTail:u=>{var m;return Ne(m=o,Z,fr).call(m,u)},indexes:u=>{var m;return Ne(m=o,Z,Lt).call(m,u)},rindexes:u=>{var m;return Ne(m=o,Z,Dt).call(m,u)},isStale:u=>{var m;return D(m=o,oe).call(m,u)}}}get max(){return D(this,x)}get maxSize(){return D(this,y)}get calculatedSize(){return D(this,O)}get size(){return D(this,w)}get fetchMethod(){return D(this,_)}get memoMethod(){return D(this,R)}get dispose(){return D(this,v)}get disposeAfter(){return D(this,A)}getRemainingTTL(o){return D(this,T).has(o)?1/0:0}*entries(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&D(this,M)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,M)[o],D(this,U)[o]])}*rentries(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&D(this,M)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,M)[o],D(this,U)[o]])}*keys(){for(let o of Ne(this,Z,Lt).call(this)){let u=D(this,M)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*rkeys(){for(let o of Ne(this,Z,Dt).call(this)){let u=D(this,M)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*values(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}*rvalues(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}[(S=Symbol.iterator,E=Symbol.toStringTag,S)](){return this.entries()}find(o,u={}){for(let m of Ne(this,Z,Lt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;if(N!==void 0&&o(N,D(this,M)[m],this))return this.get(D(this,M)[m],u)}}forEach(o,u=this){for(let m of Ne(this,Z,Lt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;N!==void 0&&o.call(u,N,D(this,M)[m],this)}}rforEach(o,u=this){for(let m of Ne(this,Z,Dt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;N!==void 0&&o.call(u,N,D(this,M)[m],this)}}purgeStale(){let o=!1;for(let u of Ne(this,Z,Dt).call(this,{allowStale:!0}))D(this,oe).call(this,u)&&(Ne(this,Z,Ft).call(this,D(this,M)[u],"expire"),o=!0);return o}info(o){let u=D(this,T).get(o);if(u===void 0)return;let m=D(this,U)[u],C=Ne(this,Z,Ye).call(this,m)?m.__staleWhileFetching:m;if(C===void 0)return;let N={value:C};if(D(this,V)&&D(this,ce)){let K=D(this,V)[u],de=D(this,ce)[u];if(K&&de){let $=K-(h.now()-de);N.ttl=$,N.start=Date.now()}}return D(this,te)&&(N.size=D(this,te)[u]),N}dump(){let o=[];for(let u of Ne(this,Z,Lt).call(this,{allowStale:!0})){let m=D(this,M)[u],C=D(this,U)[u],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;if(N===void 0||m===void 0)continue;let K={value:N};if(D(this,V)&&D(this,ce)){K.ttl=D(this,V)[u];let de=h.now()-D(this,ce)[u];K.start=Math.floor(Date.now()-de)}D(this,te)&&(K.size=D(this,te)[u]),o.unshift([m,K])}return o}load(o){this.clear();for(let[u,m]of o){if(m.start){let C=Date.now()-m.start;m.start=h.now()-C}this.set(u,m.value,m)}}set(o,u,m={}){var Le,Ue,Xe;if(u===void 0)return this.delete(o),this;let{ttl:C=this.ttl,start:N,noDisposeOnSet:K=this.noDisposeOnSet,sizeCalculation:de=this.sizeCalculation,status:$}=m,{noUpdateTTL:ie=this.noUpdateTTL}=m,Re=D(this,we).call(this,o,u,m.size||0,de);if(this.maxEntrySize&&Re>this.maxEntrySize)return $&&($.set="miss",$.maxEntrySizeExceeded=!0),Ne(this,Z,Ft).call(this,o,"set"),this;let Te=D(this,w)===0?void 0:D(this,T).get(o);if(Te===void 0)Te=D(this,w)===0?D(this,q):D(this,he).length!==0?D(this,he).pop():D(this,w)===D(this,x)?Ne(this,Z,Er).call(this,!1):D(this,w),D(this,M)[Te]=o,D(this,U)[Te]=u,D(this,T).set(o,Te),D(this,k)[D(this,q)]=Te,D(this,z)[Te]=D(this,q),De(this,q,Te),br(this,w)._++,D(this,re).call(this,Te,Re,$),$&&($.set="add"),ie=!1;else{Ne(this,Z,fr).call(this,Te);let Fe=D(this,U)[Te];if(u!==Fe){if(D(this,B)&&Ne(this,Z,Ye).call(this,Fe)){Fe.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:We}=Fe;We!==void 0&&!K&&(D(this,le)&&((Le=D(this,v))==null||Le.call(this,We,o,"set")),D(this,ee)&&D(this,ne)?.push([We,o,"set"]))}else K||(D(this,le)&&((Ue=D(this,v))==null||Ue.call(this,Fe,o,"set")),D(this,ee)&&D(this,ne)?.push([Fe,o,"set"]));if(D(this,J).call(this,Te),D(this,re).call(this,Te,Re,$),D(this,U)[Te]=u,$){$.set="replace";let We=Fe&&Ne(this,Z,Ye).call(this,Fe)?Fe.__staleWhileFetching:Fe;We!==void 0&&($.oldValue=We)}}else $&&($.set="update")}if(C!==0&&!D(this,V)&&Ne(this,Z,yi).call(this),D(this,V)&&(ie||D(this,W).call(this,Te,C,N),$&&D(this,Y).call(this,$,Te)),!K&&D(this,ee)&&D(this,ne)){let Fe=D(this,ne),We;for(;We=Fe?.shift();)(Xe=D(this,A))==null||Xe.call(this,...We)}return this}pop(){var o;try{for(;D(this,w);){let u=D(this,U)[D(this,G)];if(Ne(this,Z,Er).call(this,!0),Ne(this,Z,Ye).call(this,u)){if(u.__staleWhileFetching)return u.__staleWhileFetching}else if(u!==void 0)return u}}finally{if(D(this,ee)&&D(this,ne)){let u=D(this,ne),m;for(;m=u?.shift();)(o=D(this,A))==null||o.call(this,...m)}}}has(o,u={}){let{updateAgeOnHas:m=this.updateAgeOnHas,status:C}=u,N=D(this,T).get(o);if(N!==void 0){let K=D(this,U)[N];if(Ne(this,Z,Ye).call(this,K)&&K.__staleWhileFetching===void 0)return!1;if(D(this,oe).call(this,N))C&&(C.has="stale",D(this,Y).call(this,C,N));else return m&&D(this,Ae).call(this,N),C&&(C.has="hit",D(this,Y).call(this,C,N)),!0}else C&&(C.has="miss");return!1}peek(o,u={}){let{allowStale:m=this.allowStale}=u,C=D(this,T).get(o);if(C===void 0||!m&&D(this,oe).call(this,C))return;let N=D(this,U)[C];return Ne(this,Z,Ye).call(this,N)?N.__staleWhileFetching:N}async fetch(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,ttl:K=this.ttl,noDisposeOnSet:de=this.noDisposeOnSet,size:$=0,sizeCalculation:ie=this.sizeCalculation,noUpdateTTL:Re=this.noUpdateTTL,noDeleteOnFetchRejection:Te=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Le=this.allowStaleOnFetchRejection,ignoreFetchAbort:Ue=this.ignoreFetchAbort,allowStaleOnFetchAbort:Xe=this.allowStaleOnFetchAbort,context:Fe,forceRefresh:We=!1,status:je,signal:tt}=u;if(!D(this,B))return je&&(je.fetch="get"),this.get(o,{allowStale:m,updateAgeOnGet:C,noDeleteOnStaleGet:N,status:je});let He={allowStale:m,updateAgeOnGet:C,noDeleteOnStaleGet:N,ttl:K,noDisposeOnSet:de,size:$,sizeCalculation:ie,noUpdateTTL:Re,noDeleteOnFetchRejection:Te,allowStaleOnFetchRejection:Le,allowStaleOnFetchAbort:Xe,ignoreFetchAbort:Ue,status:je,signal:tt},$e=D(this,T).get(o);if($e===void 0){je&&(je.fetch="miss");let nt=Ne(this,Z,Ar).call(this,o,$e,He,Fe);return nt.__returned=nt}else{let nt=D(this,U)[$e];if(Ne(this,Z,Ye).call(this,nt)){let F=m&&nt.__staleWhileFetching!==void 0;return je&&(je.fetch="inflight",F&&(je.returnedStale=!0)),F?nt.__staleWhileFetching:nt.__returned=nt}let dt=D(this,oe).call(this,$e);if(!We&&!dt)return je&&(je.fetch="hit"),Ne(this,Z,fr).call(this,$e),C&&D(this,Ae).call(this,$e),je&&D(this,Y).call(this,je,$e),nt;let lt=Ne(this,Z,Ar).call(this,o,$e,He,Fe),j=lt.__staleWhileFetching!==void 0&&m;return je&&(je.fetch=dt?"stale":"refresh",j&&dt&&(je.returnedStale=!0)),j?lt.__staleWhileFetching:lt.__returned=lt}}async forceFetch(o,u={}){let m=await this.fetch(o,u);if(m===void 0)throw new Error("fetch() returned undefined");return m}memo(o,u={}){let m=D(this,R);if(!m)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:N,...K}=u,de=this.get(o,K);if(!N&&de!==void 0)return de;let $=m(o,de,{options:K,context:C});return this.set(o,$,K),$}get(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,status:K}=u,de=D(this,T).get(o);if(de!==void 0){let $=D(this,U)[de],ie=Ne(this,Z,Ye).call(this,$);return K&&D(this,Y).call(this,K,de),D(this,oe).call(this,de)?(K&&(K.get="stale"),ie?(K&&m&&$.__staleWhileFetching!==void 0&&(K.returnedStale=!0),m?$.__staleWhileFetching:void 0):(N||Ne(this,Z,Ft).call(this,o,"expire"),K&&m&&(K.returnedStale=!0),m?$:void 0)):(K&&(K.get="hit"),ie?$.__staleWhileFetching:(Ne(this,Z,fr).call(this,de),C&&D(this,Ae).call(this,de),$))}else K&&(K.get="miss")}delete(o){return Ne(this,Z,Ft).call(this,o,"delete")}clear(){return Ne(this,Z,vi).call(this,"delete")}},x=new WeakMap,y=new WeakMap,v=new WeakMap,A=new WeakMap,_=new WeakMap,R=new WeakMap,w=new WeakMap,O=new WeakMap,T=new WeakMap,M=new WeakMap,U=new WeakMap,k=new WeakMap,z=new WeakMap,G=new WeakMap,q=new WeakMap,he=new WeakMap,ne=new WeakMap,te=new WeakMap,ce=new WeakMap,V=new WeakMap,le=new WeakMap,B=new WeakMap,ee=new WeakMap,Z=new WeakSet,yi=function(){let o=new l(D(this,x)),u=new l(D(this,x));De(this,V,o),De(this,ce,u),De(this,W,(N,K,de=h.now())=>{if(u[N]=K!==0?de:0,o[N]=K,K!==0&&this.ttlAutopurge){let $=setTimeout(()=>{D(this,oe).call(this,N)&&Ne(this,Z,Ft).call(this,D(this,M)[N],"expire")},K+1);$.unref&&$.unref()}}),De(this,Ae,N=>{u[N]=o[N]!==0?h.now():0}),De(this,Y,(N,K)=>{if(o[K]){let de=o[K],$=u[K];if(!de||!$)return;N.ttl=de,N.start=$,N.now=m||C();let ie=N.now-$;N.remainingTTL=de-ie}});let m=0,C=()=>{let N=h.now();if(this.ttlResolution>0){m=N;let K=setTimeout(()=>m=0,this.ttlResolution);K.unref&&K.unref()}return N};this.getRemainingTTL=N=>{let K=D(this,T).get(N);if(K===void 0)return 0;let de=o[K],$=u[K];if(!de||!$)return 1/0;let ie=(m||C())-$;return de-ie},De(this,oe,N=>{let K=u[N],de=o[N];return!!de&&!!K&&(m||C())-K>de})},Ae=new WeakMap,Y=new WeakMap,W=new WeakMap,oe=new WeakMap,pa=function(){let o=new l(D(this,x));De(this,O,0),De(this,te,o),De(this,J,u=>{De(this,O,D(this,O)-o[u]),o[u]=0}),De(this,we,(u,m,C,N)=>{if(Ne(this,Z,Ye).call(this,m))return 0;if(!e(C))if(N){if(typeof N!="function")throw new TypeError("sizeCalculation must be a function");if(C=N(m,u),!e(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C}),De(this,re,(u,m,C)=>{if(o[u]=m,D(this,y)){let N=D(this,y)-o[u];for(;D(this,O)>N;)Ne(this,Z,Er).call(this,!0)}De(this,O,D(this,O)+o[u]),C&&(C.entrySize=m,C.totalCalculatedSize=D(this,O))})},J=new WeakMap,re=new WeakMap,we=new WeakMap,Lt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,q);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,G)));)u=D(this,z)[u]},Dt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,G);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,q)));)u=D(this,k)[u]},mi=function(o){return o!==void 0&&D(this,T).get(D(this,M)[o])===o},Er=function(o){var N;let u=D(this,G),m=D(this,M)[u],C=D(this,U)[u];return D(this,B)&&Ne(this,Z,Ye).call(this,C)?C.__abortController.abort(new Error("evicted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((N=D(this,v))==null||N.call(this,C,m,"evict")),D(this,ee)&&D(this,ne)?.push([C,m,"evict"])),D(this,J).call(this,u),o&&(D(this,M)[u]=void 0,D(this,U)[u]=void 0,D(this,he).push(u)),D(this,w)===1?(De(this,G,De(this,q,0)),D(this,he).length=0):De(this,G,D(this,k)[u]),D(this,T).delete(m),br(this,w)._--,u},Ar=function(o,u,m,C){let N=u===void 0?void 0:D(this,U)[u];if(Ne(this,Z,Ye).call(this,N))return N;let K=new n,{signal:de}=m;de?.addEventListener("abort",()=>K.abort(de.reason),{signal:K.signal});let $={signal:K.signal,options:m,context:C},ie=(Fe,We=!1)=>{let{aborted:je}=K.signal,tt=m.ignoreFetchAbort&&Fe!==void 0;if(m.status&&(je&&!We?(m.status.fetchAborted=!0,m.status.fetchError=K.signal.reason,tt&&(m.status.fetchAbortIgnored=!0)):m.status.fetchResolved=!0),je&&!tt&&!We)return Te(K.signal.reason);let He=Ue;return D(this,U)[u]===Ue&&(Fe===void 0?He.__staleWhileFetching?D(this,U)[u]=He.__staleWhileFetching:Ne(this,Z,Ft).call(this,o,"fetch"):(m.status&&(m.status.fetchUpdated=!0),this.set(o,Fe,$.options))),Fe},Re=Fe=>(m.status&&(m.status.fetchRejected=!0,m.status.fetchError=Fe),Te(Fe)),Te=Fe=>{let{aborted:We}=K.signal,je=We&&m.allowStaleOnFetchAbort,tt=je||m.allowStaleOnFetchRejection,He=tt||m.noDeleteOnFetchRejection,$e=Ue;if(D(this,U)[u]===Ue&&(!He||$e.__staleWhileFetching===void 0?Ne(this,Z,Ft).call(this,o,"fetch"):je||(D(this,U)[u]=$e.__staleWhileFetching)),tt)return m.status&&$e.__staleWhileFetching!==void 0&&(m.status.returnedStale=!0),$e.__staleWhileFetching;if($e.__returned===$e)throw Fe},Le=(Fe,We)=>{var tt;let je=(tt=D(this,_))==null?void 0:tt.call(this,o,N,$);je&&je instanceof Promise&&je.then(He=>Fe(He===void 0?void 0:He),We),K.signal.addEventListener("abort",()=>{(!m.ignoreFetchAbort||m.allowStaleOnFetchAbort)&&(Fe(void 0),m.allowStaleOnFetchAbort&&(Fe=He=>ie(He,!0)))})};m.status&&(m.status.fetchDispatched=!0);let Ue=new Promise(Le).then(ie,Re),Xe=Object.assign(Ue,{__abortController:K,__staleWhileFetching:N,__returned:void 0});return u===void 0?(this.set(o,Xe,{...$.options,status:void 0}),u=D(this,T).get(o)):D(this,U)[u]=Xe,Xe},Ye=function(o){if(!D(this,B))return!1;let u=o;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof n},bi=function(o,u){D(this,z)[u]=o,D(this,k)[o]=u},fr=function(o){o!==D(this,q)&&(o===D(this,G)?De(this,G,D(this,k)[o]):Ne(this,Z,bi).call(this,D(this,z)[o],D(this,k)[o]),Ne(this,Z,bi).call(this,D(this,q),o),De(this,q,o))},Ft=function(o,u){var C,N;let m=!1;if(D(this,w)!==0){let K=D(this,T).get(o);if(K!==void 0)if(m=!0,D(this,w)===1)Ne(this,Z,vi).call(this,u);else{D(this,J).call(this,K);let de=D(this,U)[K];if(Ne(this,Z,Ye).call(this,de)?de.__abortController.abort(new Error("deleted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((C=D(this,v))==null||C.call(this,de,o,u)),D(this,ee)&&D(this,ne)?.push([de,o,u])),D(this,T).delete(o),D(this,M)[K]=void 0,D(this,U)[K]=void 0,K===D(this,q))De(this,q,D(this,z)[K]);else if(K===D(this,G))De(this,G,D(this,k)[K]);else{let $=D(this,z)[K];D(this,k)[$]=D(this,k)[K];let ie=D(this,k)[K];D(this,z)[ie]=D(this,z)[K]}br(this,w)._--,D(this,he).push(K)}}if(D(this,ee)&&D(this,ne)?.length){let K=D(this,ne),de;for(;de=K?.shift();)(N=D(this,A))==null||N.call(this,...de)}return m},vi=function(o){var u,m;for(let C of Ne(this,Z,Dt).call(this,{allowStale:!0})){let N=D(this,U)[C];if(Ne(this,Z,Ye).call(this,N))N.__abortController.abort(new Error("deleted"));else{let K=D(this,M)[C];D(this,le)&&((u=D(this,v))==null||u.call(this,N,K,o)),D(this,ee)&&D(this,ne)?.push([N,K,o])}}if(D(this,T).clear(),D(this,U).fill(void 0),D(this,M).fill(void 0),D(this,V)&&D(this,ce)&&(D(this,V).fill(0),D(this,ce).fill(0)),D(this,te)&&D(this,te).fill(0),De(this,G,0),De(this,q,0),D(this,he).length=0,De(this,O,0),De(this,w,0),D(this,ee)&&D(this,ne)){let C=D(this,ne),N;for(;N=C?.shift();)(m=D(this,A))==null||m.call(this,...N)}},fe);f.LRUCache=p}),Rt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.ContainerIterator=f.Container=f.Base=void 0;var h=class{constructor(c=0){this.iteratorType=c}equals(c){return this.o===c.o}};f.ContainerIterator=h;var s=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};f.Base=s;var a=class extends s{};f.Container=a}),yu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.S=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.i=0,this.S=[]}push(c){return this.S.push(c),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},a=s;f.default=a}),mu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.j=0,this.q=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.q=[],this.i=this.j=0}push(c){let n=this.q.length;if(this.j/n>.5&&this.j+this.i>=n&&n>4096){let r=this.i;for(let t=0;t{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[],n=function(t,e){return t>e?-1:t>1;for(let e=this.i-1>>1;e>=0;--e)this.k(e,t)}m(c){let n=this.C[c];for(;c>0;){let r=c-1>>1,t=this.C[r];if(this.v(t,n)<=0)break;this.C[c]=t,c=r}this.C[c]=n}k(c,n){let r=this.C[c];for(;c0&&(t=e,i=this.C[e]),this.v(i,r)>=0)break;this.C[c]=i,c=t}this.C[c]=r}clear(){this.i=0,this.C.length=0}push(c){this.C.push(c),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let c=this.C[0],n=this.C.pop();return this.i-=1,this.i&&(this.C[0]=n,this.k(0,this.i>>1)),c}top(){return this.C[0]}find(c){return this.C.indexOf(c)>=0}remove(c){let n=this.C.indexOf(c);return n<0?!1:(n===0?this.pop():n===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(n,1,this.C.pop()),this.i-=1,this.m(n),this.k(n,this.i>>1)),!0)}updateItem(c){let n=this.C.indexOf(c);return n<0?!1:(this.m(n),this.k(n,this.i>>1),!0)}toArray(){return[...this.C]}},a=s;f.default=a}),po=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Container{},a=s;f.default=a}),jt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.throwIteratorAccessError=h;function h(){throw new RangeError("Iterator access denied!")}}),da=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.RandomIterator=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(c,n){super(n),this.o=c,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,s.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,s.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,s.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,s.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(c){this.container.setElementByPos(this.o,c)}};f.RandomIterator=a}),vu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ga extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ga(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=!0){if(super(),Array.isArray(t))this.J=e?[...t]:t,this.i=t.length;else{this.J=[];let i=this;t.forEach(function(l){i.pushBack(l)})}}clear(){this.i=0,this.J.length=0}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J[t]}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J.splice(t,1),this.i-=1,this.i}eraseElementByValue(t){let e=0;for(let i=0;ithis.i-1)throw new RangeError;this.J[t]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;return this.J.splice(t,0,...new Array(i).fill(e)),this.i+=i,this.i}find(t){for(let e=0;e{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(po()),s=Rt(),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class ya extends s.ContainerIterator{constructor(i,l,d,p){super(p),this.o=i,this.h=l,this.container=d,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l}set pointer(i){this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l=i}copy(){return new ya(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let i=this;e.forEach(function(l){i.pushBack(l)})}V(e){let{L:i,B:l}=e;i.B=l,l.L=i,e===this.p&&(this.p=l),e===this._&&(this._=i),this.i-=1}G(e,i){let l=i.B,d={l:e,L:i,B:l};i.B=d,l.L=d,i===this.h&&(this.p=d),l===this.h&&(this._=d),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return i.l}eraseElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return this.V(i),this.i}eraseElementByValue(e){let i=this.p;for(;i!==this.h;)i.l===e&&this.V(i),i=i.B;return this.i}eraseElementByIterator(e){let i=e.o;return i===this.h&&(0,a.throwIteratorAccessError)(),e=e.next(),this.V(i),e}pushBack(e){return this.G(e,this._),this.i}popBack(){if(this.i===0)return;let e=this._.l;return this.V(this._),e}pushFront(e){return this.G(e,this.h),this.i}popFront(){if(this.i===0)return;let e=this.p.l;return this.V(this.p),e}setElementByPos(e,i){if(e<0||e>this.i-1)throw new RangeError;let l=this.p;for(;e--;)l=l.B;l.l=i}insert(e,i,l=1){if(e<0||e>this.i)throw new RangeError;if(l<=0)return this.i;if(e===0)for(;l--;)this.pushFront(i);else if(e===this.i)for(;l--;)this.pushBack(i);else{let d=this.p;for(let g=1;g{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ma extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ma(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let i=(()=>{if(typeof t.length=="number")return t.length;if(typeof t.size=="number")return t.size;if(typeof t.size=="function")return t.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=e,this.P=Math.max(Math.ceil(i/this.F),1);for(let p=0;p>1)-(l>>1),this.D=this.N=this.F-i%this.F>>1;let d=this;t.forEach(function(p){d.pushBack(p)})}T(){let t=[],e=Math.max(this.P>>1,1);for(let i=0;i>1}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(t){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,t}pushFront(t){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=t,this.i}popFront(){if(this.i===0)return;let t=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:e,curNodePointerIndex:i}=this.O(t);return this.A[e][i]}setElementByPos(t,e){if(t<0||t>this.i-1)throw new RangeError;let{curNodeBucketIndex:i,curNodePointerIndex:l}=this.O(t);this.A[i][l]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;if(t===0)for(;i--;)this.pushFront(e);else if(t===this.i)for(;i--;)this.pushBack(e);else{let l=[];for(let d=t;dthis.i-1)throw new RangeError;if(t===0)this.popFront();else if(t===this.i-1)this.popBack();else{let e=[];for(let l=t+1;lt;)this.popBack();return this.i}sort(t){let e=[];for(let i=0;i{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.TreeNodeEnableIndex=f.TreeNode=void 0;var h=class{constructor(a,c){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=a,this.l=c}L(){let a=this;if(a.ee===1&&a.tt.tt===a)a=a.W;else if(a.U)for(a=a.U;a.W;)a=a.W;else{let c=a.tt;for(;c.U===a;)a=c,c=a.tt;a=c}return a}B(){let a=this;if(a.W){for(a=a.W;a.U;)a=a.U;return a}else{let c=a.tt;for(;c.W===a;)a=c,c=a.tt;return a.W!==c?c:a}}te(){let a=this.tt,c=this.W,n=c.U;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.U=this,this.tt=c,this.W=n,n&&(n.tt=this),c}se(){let a=this.tt,c=this.U,n=c.W;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.W=this,this.tt=c,this.U=n,n&&(n.tt=this),c}};f.TreeNode=h;var s=class extends h{constructor(){super(...arguments),this.rt=1}te(){let a=super.te();return this.ie(),a.ie(),a}se(){let a=super.se();return this.ie(),a.ie(),a}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};f.TreeNodeEnableIndex=s}),ba=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Su(),s=Rt(),a=jt(),c=class extends s.Container{constructor(r=function(e,i){return ei?1:0},t=!1){super(),this.Y=void 0,this.v=r,t?(this.re=h.TreeNodeEnableIndex,this.M=function(e,i,l){let d=this.ne(e,i,l);if(d){let p=d.tt;for(;p!==this.h;)p.rt+=1,p=p.tt;let g=this.he(d);if(g){let{parentNode:b,grandParent:E,curNode:S}=g;b.ie(),E.ie(),S.ie()}}return this.i},this.V=function(e){let i=this.fe(e);for(;i!==this.h;)i.rt-=1,i=i.tt}):(this.re=h.TreeNode,this.M=function(e,i,l){let d=this.ne(e,i,l);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)r=r.W;else if(i>0)e=r,r=r.U;else return r}return e}Z(r,t){let e=this.h;for(;r;)this.v(r.u,t)<=0?r=r.W:(e=r,r=r.U);return e}$(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)e=r,r=r.W;else if(i>0)r=r.U;else return r}return e}rr(r,t){let e=this.h;for(;r;)this.v(r.u,t)<0?(e=r,r=r.W):r=r.U;return e}ue(r){for(;;){let t=r.tt;if(t===this.h)return;if(r.ee===1){r.ee=0;return}if(r===t.U){let e=t.W;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.te():t.te();else if(e.W&&e.W.ee===1){e.ee=t.ee,t.ee=0,e.W.ee=0,t===this.Y?this.Y=t.te():t.te();return}else e.U&&e.U.ee===1?(e.ee=1,e.U.ee=0,e.se()):(e.ee=1,r=t)}else{let e=t.U;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.se():t.se();else if(e.U&&e.U.ee===1){e.ee=t.ee,t.ee=0,e.U.ee=0,t===this.Y?this.Y=t.se():t.se();return}else e.W&&e.W.ee===1?(e.ee=1,e.W.ee=0,e.te()):(e.ee=1,r=t)}}}fe(r){if(this.i===1)return this.clear(),this.h;let t=r;for(;t.U||t.W;){if(t.W)for(t=t.W;t.U;)t=t.U;else t=t.U;[r.u,t.u]=[t.u,r.u],[r.l,t.l]=[t.l,r.l],r=t}this.h.U===t?this.h.U=t.tt:this.h.W===t&&(this.h.W=t.tt),this.ue(t);let e=t.tt;return t===e.U?e.U=void 0:e.W=void 0,this.i-=1,this.Y.ee=0,e}oe(r,t){return r===void 0?!1:this.oe(r.U,t)||t(r)?!0:this.oe(r.W,t)}he(r){for(;;){let t=r.tt;if(t.ee===0)return;let e=t.tt;if(t===e.U){let i=e.W;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.W){if(r.ee=0,r.U&&(r.U.tt=t),r.W&&(r.W.tt=e),t.W=r.U,e.U=r.W,r.U=t,r.W=e,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.se():e.se(),e.ee=1}else{let i=e.U;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.U){if(r.ee=0,r.U&&(r.U.tt=e),r.W&&(r.W.tt=t),e.W=r.U,t.U=r.W,r.U=e,r.W=t,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.te():e.te(),e.ee=1}return}}ne(r,t,e){if(this.Y===void 0){this.i+=1,this.Y=new this.re(r,t),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let i,l=this.h.U,d=this.v(l.u,r);if(d===0){l.l=t;return}else if(d>0)l.U=new this.re(r,t),l.U.tt=l,i=l.U,this.h.U=i;else{let p=this.h.W,g=this.v(p.u,r);if(g===0){p.l=t;return}else if(g<0)p.W=new this.re(r,t),p.W.tt=p,i=p.W,this.h.W=i;else{if(e!==void 0){let b=e.o;if(b!==this.h){let E=this.v(b.u,r);if(E===0){b.l=t;return}else if(E>0){let S=b.L(),x=this.v(S.u,r);if(x===0){S.l=t;return}else x<0&&(i=new this.re(r,t),S.W===void 0?(S.W=i,i.tt=S):(b.U=i,i.tt=b))}}}if(i===void 0)for(i=this.Y;;){let b=this.v(i.u,r);if(b>0){if(i.U===void 0){i.U=new this.re(r,t),i.U.tt=i,i=i.U;break}i=i.U}else if(b<0){if(i.W===void 0){i.W=new this.re(r,t),i.W.tt=i,i=i.W;break}i=i.W}else{i.l=t;return}}}}return this.i+=1,i}I(r,t){for(;r;){let e=this.v(r.u,t);if(e<0)r=r.W;else if(e>0)r=r.U;else return r}return r||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(r,t){let e=r.o;if(e===this.h&&(0,a.throwIteratorAccessError)(),this.i===1)return e.u=t,!0;if(e===this.h.U)return this.v(e.B().u,t)>0?(e.u=t,!0):!1;if(e===this.h.W)return this.v(e.L().u,t)<0?(e.u=t,!0):!1;let i=e.L().u;if(this.v(i,t)>=0)return!1;let l=e.B().u;return this.v(l,t)<=0?!1:(e.u=t,!0)}eraseElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=0,e=this;return this.oe(this.Y,function(i){return r===t?(e.V(i),!0):(t+=1,!1)}),this.i}eraseElementByKey(r){if(this.i===0)return!1;let t=this.I(this.Y,r);return t===this.h?!1:(this.V(t),!0)}eraseElementByIterator(r){let t=r.o;t===this.h&&(0,a.throwIteratorAccessError)();let e=t.W===void 0;return r.iteratorType===0?e&&r.next():(!e||t.U===void 0)&&r.next(),this.V(t),r}forEach(r){let t=0;for(let e of this)r(e,t++,this)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t,e=0;for(let i of this){if(e===r){t=i;break}e+=1}return t}getHeight(){if(this.i===0)return 0;let r=function(t){return t?Math.max(r(t.U),r(t.W))+1:0};return r(this.Y)}},n=c;f.default=n}),va=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(n,r,t){super(t),this.o=n,this.h=r,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let n=this.o,r=this.h.tt;if(n===this.h)return r?r.rt-1:0;let t=0;for(n.U&&(t+=n.U.rt);n!==r;){let e=n.tt;n===e.W&&(t+=1,e.U&&(t+=e.U.rt)),n=e}return t}},c=a;f.default=c}),Eu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class wa extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.u}copy(){return new wa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.insert(p)})}*K(e){e!==void 0&&(yield*this.K(e.U),yield e.u,yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(e,i){return this.M(e,void 0,i)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}union(e){let i=this;return e.forEach(function(l){i.insert(l)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Au=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class _a extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new _a(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.setElement(p[0],p[1])})}*K(e){e!==void 0&&(yield*this.K(e.U),yield[e.u,e.l],yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i===0)return;let e=this.h.U;return[e.u,e.l]}back(){if(this.i===0)return;let e=this.h.W;return[e.u,e.l]}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}setElement(e,i,l){return this.M(e,i,l)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}getElementByKey(e){return this.I(this.Y,e).l}union(e){let i=this;return e.forEach(function(l){i.setElement(l[0],l[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Sa=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=h;function h(s){let a=typeof s;return a==="object"&&s!==null||a==="function"}}),Ea=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.HashContainerIterator=f.HashContainer=void 0;var h=Rt(),s=c(Sa()),a=jt();function c(t){return t&&t.t?t:{default:t}}var n=class extends h.ContainerIterator{constructor(t,e,i){super(i),this.o=t,this.h=e,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}};f.HashContainerIterator=n;var r=class extends h.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(t){let{L:e,B:i}=t;e.B=i,i.L=e,t===this.p&&(this.p=i),t===this._&&(this._=e),this.i-=1}M(t,e,i){i===void 0&&(i=(0,s.default)(t));let l;if(i){let d=t[this.HASH_TAG];if(d!==void 0)return this.H[d].l=e,this.i;Object.defineProperty(t,this.HASH_TAG,{value:this.H.length,configurable:!0}),l={u:t,l:e,L:this._,B:this.h},this.H.push(l)}else{let d=this.g[t];if(d)return d.l=e,this.i;l={u:t,l:e,L:this._,B:this.h},this.g[t]=l}return this.i===0?(this.p=l,this.h.B=l):this._.B=l,this._=l,this.h.L=l,++this.i}I(t,e){if(e===void 0&&(e=(0,s.default)(t)),e){let i=t[this.HASH_TAG];return i===void 0?this.h:this.H[i]}else return this.g[t]||this.h}clear(){let t=this.HASH_TAG;this.H.forEach(function(e){delete e.u[t]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(t,e){let i;if(e===void 0&&(e=(0,s.default)(t)),e){let l=t[this.HASH_TAG];if(l===void 0)return!1;delete t[this.HASH_TAG],i=this.H[l],delete this.H[l]}else{if(i=this.g[t],i===void 0)return!1;delete this.g[t]}return this.V(i),!0}eraseElementByIterator(t){let e=t.o;return e===this.h&&(0,a.throwIteratorAccessError)(),this.V(e),t.next()}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;let e=this.p;for(;t--;)e=e.B;return this.V(e),this.i}};f.HashContainer=r}),xu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=jt(),a=class Aa extends h.HashContainerIterator{constructor(t,e,i,l){super(t,e,l),this.container=i}get pointer(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o.u}copy(){return new Aa(this.o,this.h,this.container,this.iteratorType)}},c=class extends h.HashContainer{constructor(r=[]){super();let t=this;r.forEach(function(e){t.insert(e)})}begin(){return new a(this.p,this.h,this)}end(){return new a(this.h,this.h,this)}rBegin(){return new a(this._,this.h,this,1)}rEnd(){return new a(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(r,t){return this.M(r,void 0,t)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=this.p;for(;r--;)t=t.B;return t.u}find(r,t){let e=this.I(r,t);return new a(e,this.h,this)}forEach(r){let t=0,e=this.p;for(;e!==this.h;)r(e.u,t++,this),e=e.B}[Symbol.iterator](){return(function*(){let r=this.p;for(;r!==this.h;)yield r.u,r=r.B}).bind(this)()}},n=c;f.default=n}),Iu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=c(Sa()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class xa extends h.HashContainerIterator{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new xa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.HashContainer{constructor(e=[]){super();let i=this;e.forEach(function(l){i.setElement(l[0],l[1])})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(e,i,l){return this.M(e,i,l)}getElementByKey(e,i){if(i===void 0&&(i=(0,s.default)(e)),i){let d=e[this.HASH_TAG];return d!==void 0?this.H[d].l:void 0}let l=this.g[e];return l?l.l:void 0}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return[i.u,i.l]}find(e,i){let l=this.I(e,i);return new n(l,this.h,this)}forEach(e){let i=0,l=this.p;for(;l!==this.h;)e([l.u,l.l],i++,this),l=l.B}[Symbol.iterator](){return(function*(){let e=this.p;for(;e!==this.h;)yield[e.u,e.l],e=e.B}).bind(this)()}},t=r;f.default=t}),Ou=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),Object.defineProperty(f,"Deque",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(f,"HashMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(f,"HashSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(f,"LinkList",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(f,"OrderedMap",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(f,"OrderedSet",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(f,"PriorityQueue",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(f,"Queue",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(f,"Stack",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(f,"Vector",{enumerable:!0,get:function(){return c.default}});var h=d(yu()),s=d(mu()),a=d(bu()),c=d(vu()),n=d(wu()),r=d(_u()),t=d(Eu()),e=d(Au()),i=d(xu()),l=d(Iu());function d(p){return p&&p.t?p:{default:p}}}),ku=Se((f,h)=>{ge(),me(),ye();var s=Ou().OrderedSet,a=Pt()("number-allocator:trace"),c=Pt()("number-allocator:error");function n(t,e){this.low=t,this.high=e}n.prototype.equals=function(t){return this.low===t.low&&this.high===t.high},n.prototype.compare=function(t){return this.lowi.compare(l)),a("Create"),this.clear()}r.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},r.prototype.alloc=function(){if(this.ss.size()===0)return a("alloc():empty"),null;let t=this.ss.begin(),e=t.pointer.low,i=t.pointer.high,l=e;return l+1<=i?this.ss.updateKeyByIterator(t,new n(e+1,i)):this.ss.eraseElementByPos(0),a("alloc():"+l),l},r.prototype.use=function(t){let e=new n(t,t),i=this.ss.lowerBound(e);if(!i.equals(this.ss.end())){let l=i.pointer.low,d=i.pointer.high;return i.pointer.equals(e)?(this.ss.eraseElementByIterator(i),a("use():"+t),!0):l>t?!1:l===t?(this.ss.updateKeyByIterator(i,new n(l+1,d)),a("use():"+t),!0):d===t?(this.ss.updateKeyByIterator(i,new n(l,d-1)),a("use():"+t),!0):(this.ss.updateKeyByIterator(i,new n(t+1,d)),this.ss.insert(new n(l,t-1)),a("use():"+t),!0)}return a("use():failed"),!1},r.prototype.free=function(t){if(tthis.max){c("free():"+t+" is out of range");return}let e=new n(t,t),i=this.ss.upperBound(e);if(i.equals(this.ss.end())){if(i.equals(this.ss.begin())){this.ss.insert(e);return}i.pre();let l=i.pointer.high;i.pointer.high+1===t?this.ss.updateKeyByIterator(i,new n(l,t)):this.ss.insert(e)}else if(i.equals(this.ss.begin()))if(t+1===i.pointer.low){let l=i.pointer.high;this.ss.updateKeyByIterator(i,new n(t,l))}else this.ss.insert(e);else{let l=i.pointer.low,d=i.pointer.high;i.pre();let p=i.pointer.low;i.pointer.high+1===t?t+1===l?(this.ss.eraseElementByIterator(i),this.ss.updateKeyByIterator(i,new n(p,d))):this.ss.updateKeyByIterator(i,new n(p,t)):t+1===l?(this.ss.eraseElementByIterator(i.next()),this.ss.insert(new n(t,d))):this.ss.insert(e)}a("free():"+t)},r.prototype.clear=function(){a("clear()"),this.ss.clear(),this.ss.insert(new n(this.min,this.max))},r.prototype.intervalCount=function(){return this.ss.size()},r.prototype.dump=function(){console.log("length:"+this.ss.size());for(let t of this.ss)console.log(t)},h.exports=r}),Ia=Se((f,h)=>{ge(),me(),ye();var s=ku();h.exports.NumberAllocator=s}),Tu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=gu(),s=Ia(),a=class{aliasToTopic;topicToAlias;max;numberAllocator;length;constructor(c){c>0&&(this.aliasToTopic=new h.LRUCache({max:c}),this.topicToAlias={},this.numberAllocator=new s.NumberAllocator(1,c),this.max=c,this.length=0)}put(c,n){if(n===0||n>this.max)return!1;let r=this.aliasToTopic.get(n);return r&&delete this.topicToAlias[r],this.aliasToTopic.set(n,c),this.topicToAlias[c]=n,this.numberAllocator.use(n),this.length=this.aliasToTopic.size,!0}getTopicByAlias(c){return this.aliasToTopic.get(c)}getAliasByTopic(c){let n=this.topicToAlias[c];return typeof n<"u"&&this.aliasToTopic.get(n),n}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};f.default=a}),Pu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(f,"__esModule",{value:!0});var s=Zr(),a=h(Tu()),c=ar(),n=(r,t)=>{r.log("_handleConnack");let{options:e}=r,i=e.protocolVersion===5?t.reasonCode:t.returnCode;if(clearTimeout(r.connackTimer),delete r.topicAliasSend,t.properties){if(t.properties.topicAliasMaximum){if(t.properties.topicAliasMaximum>65535){r.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}t.properties.topicAliasMaximum>0&&(r.topicAliasSend=new a.default(t.properties.topicAliasMaximum))}t.properties.serverKeepAlive&&e.keepalive&&(e.keepalive=t.properties.serverKeepAlive),t.properties.maximumPacketSize&&(e.properties||(e.properties={}),e.properties.maximumPacketSize=t.properties.maximumPacketSize)}if(i===0)r.reconnecting=!1,r._onConnect(t);else if(i>0){let l=new c.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[i]}`,i);r.emit("error",l),r.options.reconnectOnConnackError&&r._cleanUp(!0)}};f.default=n}),Cu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(s,a,c)=>{s.log("handling pubrel packet");let n=typeof c<"u"?c:s.noop,{messageId:r}=a,t={cmd:"pubcomp",messageId:r};s.incomingStore.get(a,(e,i)=>{e?s._sendPacket(t,n):(s.emit("message",i.topic,i.payload,i),s.handleMessage(i,l=>{if(l)return n(l);s.incomingStore.del(i,s.noop),s._sendPacket(t,n)}))})};f.default=h}),Ru=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(fu()),a=h(du()),c=h(Pu()),n=h(Zr()),r=h(Cu()),t=(e,i,l)=>{let{options:d}=e;if(d.protocolVersion===5&&d.properties&&d.properties.maximumPacketSize&&d.properties.maximumPacketSize{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{nextId;constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let s=this.nextId++;return this.nextId===65536&&(this.nextId=1),s}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(s){return!0}deallocate(s){}clear(){}};f.default=h}),ju=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{aliasToTopic;max;length;constructor(s){this.aliasToTopic={},this.max=s}put(s,a){return a===0||a>this.max?!1:(this.aliasToTopic[a]=s,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(s){return this.aliasToTopic[s]}clear(){this.aliasToTopic={}}};f.default=h}),Mu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(f,"__esModule",{value:!0}),f.TypedEventEmitter=void 0;var s=h((Zt(),Ke(qt))),a=ar(),c=class{};f.TypedEventEmitter=c,(0,a.applyMixin)(c,s.default)}),en=Se((f,h)=>{ge(),me(),ye();function s(a){"@babel/helpers - typeof";return h.exports=s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},h.exports.__esModule=!0,h.exports.default=h.exports,s(a)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Bu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c,n){if(s(c)!="object"||!c)return c;var r=c[Symbol.toPrimitive];if(r!==void 0){var t=r.call(c,n||"default");if(s(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(c)}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Nu=Se((f,h)=>{ge(),me(),ye();var s=en().default,a=Bu();function c(n){var r=a(n,"string");return s(r)=="symbol"?r:r+""}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),Uu=Se((f,h)=>{ge(),me(),ye();var s=Nu();function a(c,n,r){return(n=s(n))in c?Object.defineProperty(c,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):c[n]=r,c}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Lu=Se((f,h)=>{ge(),me(),ye();function s(a){if(Array.isArray(a))return a}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Du=Se((f,h)=>{ge(),me(),ye();function s(a,c){var n=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(n!=null){var r,t,e,i,l=[],d=!0,p=!1;try{if(e=(n=n.call(a)).next,c===0){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=e.call(n)).done)&&(l.push(r.value),l.length!==c);d=!0);}catch(g){p=!0,t=g}finally{try{if(!d&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(p)throw t}}return l}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Fu=Se((f,h)=>{ge(),me(),ye();function s(a,c){(c==null||c>a.length)&&(c=a.length);for(var n=0,r=Array(c);n{ge(),me(),ye();var s=Fu();function a(c,n){if(c){if(typeof c=="string")return s(c,n);var r={}.toString.call(c).slice(8,-1);return r==="Object"&&c.constructor&&(r=c.constructor.name),r==="Map"||r==="Set"?Array.from(c):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(c,n):void 0}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),$u=Se((f,h)=>{ge(),me(),ye();function s(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),qu=Se((f,h)=>{ge(),me(),ye();var s=Lu(),a=Du(),c=Wu(),n=$u();function r(t,e){return s(t)||a(t,e)||c(t,e)||n()}h.exports=r,h.exports.__esModule=!0,h.exports.default=h.exports}),ka=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f):typeof define=="function"&&define.amd?define(["exports"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.fastUniqueNumbers={}))})(f,function(s){var a=function(g){return function(b){var E=g(b);return b.add(E),E}},c=function(g){return function(b,E){return g.set(b,E),E}},n=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,r=536870912,t=r*2,e=function(g,b){return function(E){var S=b.get(E),x=S===void 0?E.size:Sn)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;E.has(x);)x=Math.floor(Math.random()*n);return g(E,x)}},i=new WeakMap,l=c(i),d=e(l,i),p=a(d);s.addUniqueNumber=p,s.generateUniqueNumber=d})}),Vu=Se((f,h)=>{ge(),me(),ye();function s(c,n,r,t,e,i,l){try{var d=c[i](l),p=d.value}catch(g){return void r(g)}d.done?n(p):Promise.resolve(p).then(t,e)}function a(c){return function(){var n=this,r=arguments;return new Promise(function(t,e){var i=c.apply(n,r);function l(p){s(i,t,e,l,d,"next",p)}function d(p){s(i,t,e,l,d,"throw",p)}l(void 0)})}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ta=Se((f,h)=>{ge(),me(),ye();function s(a,c){this.v=a,this.k=c}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Pa=Se((f,h)=>{ge(),me(),ye();function s(a,c,n,r){var t=Object.defineProperty;try{t({},"",{})}catch{t=0}h.exports=s=function(e,i,l,d){function p(g,b){s(e,g,function(E){return this._invoke(g,b,E)})}i?t?t(e,i,{value:l,enumerable:!d,configurable:!d,writable:!d}):e[i]=l:(p("next",0),p("throw",1),p("return",2))},h.exports.__esModule=!0,h.exports.default=h.exports,s(a,c,n,r)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Ca=Se((f,h)=>{ge(),me(),ye();var s=Pa();function a(){var c,n,r=typeof Symbol=="function"?Symbol:{},t=r.iterator||"@@iterator",e=r.toStringTag||"@@toStringTag";function i(x,y,v,A){var _=y&&y.prototype instanceof d?y:d,R=Object.create(_.prototype);return s(R,"_invoke",(function(w,O,T){var M,U,k,z=0,G=T||[],q=!1,he={p:0,n:0,v:c,a:ne,f:ne.bind(c,4),d:function(te,ce){return M=te,U=0,k=c,he.n=ce,l}};function ne(te,ce){for(U=te,k=ce,n=0;!q&&z&&!V&&n3?(V=ee===ce)&&(k=le[(U=le[4])?5:(U=3,3)],le[4]=le[5]=c):le[0]<=B&&((V=te<2&&Bce||ce>ee)&&(le[4]=te,le[5]=ce,he.n=ee,U=0))}if(V||te>1)return l;throw q=!0,ce}return function(te,ce,V){if(z>1)throw TypeError("Generator is already running");for(q&&ce===1&&ne(ce,V),U=ce,k=V;(n=U<2?c:k)||!q;){M||(U?U<3?(U>1&&(he.n=-1),ne(U,k)):he.n=k:he.v=k);try{if(z=2,M){if(U||(te="next"),n=M[te]){if(!(n=n.call(M,k)))throw TypeError("iterator result is not an object");if(!n.done)return n;k=n.value,U<2&&(U=0)}else U===1&&(n=M.return)&&n.call(M),U<2&&(k=TypeError("The iterator does not provide a '"+te+"' method"),U=1);M=c}else if((n=(q=he.n<0)?k:w.call(O,he))!==l)break}catch(le){M=c,U=1,k=le}finally{z=1}}return{value:n,done:q}}})(x,v,A),!0),R}var l={};function d(){}function p(){}function g(){}n=Object.getPrototypeOf;var b=[][t]?n(n([][t]())):(s(n={},t,function(){return this}),n),E=g.prototype=d.prototype=Object.create(b);function S(x){return Object.setPrototypeOf?Object.setPrototypeOf(x,g):(x.__proto__=g,s(x,e,"GeneratorFunction")),x.prototype=Object.create(E),x}return p.prototype=g,s(E,"constructor",g),s(g,"constructor",p),p.displayName="GeneratorFunction",s(g,e,"GeneratorFunction"),s(E),s(E,e,"Generator"),s(E,t,function(){return this}),s(E,"toString",function(){return"[object Generator]"}),(h.exports=a=function(){return{w:i,m:S}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ra=Se((f,h)=>{ge(),me(),ye();var s=Ta(),a=Pa();function c(n,r){function t(i,l,d,p){try{var g=n[i](l),b=g.value;return b instanceof s?r.resolve(b.v).then(function(E){t("next",E,d,p)},function(E){t("throw",E,d,p)}):r.resolve(b).then(function(E){g.value=E,d(g)},function(E){return t("throw",E,d,p)})}catch(E){p(E)}}var e;this.next||(a(c.prototype),a(c.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),a(this,"_invoke",function(i,l,d){function p(){return new r(function(g,b){t(i,d,g,b)})}return e=e?e.then(p,p):p()},!0)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),ja=Se((f,h)=>{ge(),me(),ye();var s=Ca(),a=Ra();function c(n,r,t,e,i){return new a(s().w(n,r,t,e),i||Promise)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),zu=Se((f,h)=>{ge(),me(),ye();var s=ja();function a(c,n,r,t,e){var i=s(c,n,r,t,e);return i.next().then(function(l){return l.done?l.value:i.next()})}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ku=Se((f,h)=>{ge(),me(),ye();function s(a){var c=Object(a),n=[];for(var r in c)n.unshift(r);return function t(){for(;n.length;)if((r=n.pop())in c)return t.value=r,t.done=!1,t;return t.done=!0,t}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Hu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c){if(c!=null){var n=c[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(c);if(typeof c.next=="function")return c;if(!isNaN(c.length))return{next:function(){return c&&r>=c.length&&(c=void 0),{value:c&&c[r++],done:!c}}}}throw new TypeError(s(c)+" is not iterable")}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Gu=Se((f,h)=>{ge(),me(),ye();var s=Ta(),a=Ca(),c=zu(),n=ja(),r=Ra(),t=Ku(),e=Hu();function i(){var l=a(),d=l.m(i),p=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function g(S){var x=typeof S=="function"&&S.constructor;return!!x&&(x===p||(x.displayName||x.name)==="GeneratorFunction")}var b={throw:1,return:2,break:3,continue:3};function E(S){var x,y;return function(v){x||(x={stop:function(){return y(v.a,2)},catch:function(){return v.v},abrupt:function(A,_){return y(v.a,b[A],_)},delegateYield:function(A,_,R){return x.resultName=_,y(v.d,e(A),R)},finish:function(A){return y(v.f,A)}},y=function(A,_,R){v.p=x.prev,v.n=x.next;try{return A(_,R)}finally{x.next=v.n}}),x.resultName&&(x[x.resultName]=v.v,x.resultName=void 0),x.sent=v.v,x.next=v.n;try{return S.call(this,x)}finally{v.p=x.prev,v.n=x.next}}}return(h.exports=i=function(){return{wrap:function(S,x,y,v){return l.w(E(S),x,y,v&&v.reverse())},isGeneratorFunction:g,mark:l.m,awrap:function(S,x){return new s(S,x)},AsyncIterator:r,async:function(S,x,y,v,A){return(g(x)?n:c)(E(S),x,y,v,A)},keys:t,values:e}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=i,h.exports.__esModule=!0,h.exports.default=h.exports}),Qu=Se((f,h)=>{ge(),me(),ye();var s=Gu()();h.exports=s;try{regeneratorRuntime=s}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}}),Yu=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Uu(),qu(),ka(),Vu(),Qu()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/slicedToArray","fast-unique-numbers","@babel/runtime/helpers/asyncToGenerator","@babel/runtime/regenerator"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.brokerFactory={},s._defineProperty,s._slicedToArray,s.fastUniqueNumbers,s._asyncToGenerator,s._regeneratorRuntime))})(f,function(s,a,c,n,r,t){var e=function(y){return typeof y.start=="function"},i=new WeakMap;function l(y,v){var A=Object.keys(y);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(y);v&&(_=_.filter(function(R){return Object.getOwnPropertyDescriptor(y,R).enumerable})),A.push.apply(A,_)}return A}function d(y){for(var v=1;v1&&arguments[1]!==void 0?arguments[1]:null,he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return new Promise(function(ne,te){var ce=n.generateUniqueNumber(_);_.set(ce,{reject:te,resolve:ne}),q===null?A.postMessage({id:ce,method:G},he):A.postMessage({id:ce,method:G,params:q},he)})},w=function(G,q){var he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];A.postMessage({id:null,method:G,params:q},he)},O={},T=0,M=Object.entries(v);T{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,en(),Yu(),ka()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/typeof","broker-factory","fast-unique-numbers"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimersBroker={},s._typeof,s.brokerFactory,s.fastUniqueNumbers))})(f,function(s,a,c,n){var r=new Map([[0,null]]),t=new Map([[0,null]]),e=c.createBroker({clearInterval:function(l){var d=l.call;return function(p){a(r.get(p))==="symbol"&&(r.set(p,null),d("clear",{timerId:p,timerType:"interval"}).then(function(){r.delete(p)}))}},clearTimeout:function(l){var d=l.call;return function(p){a(t.get(p))==="symbol"&&(t.set(p,null),d("clear",{timerId:p,timerType:"timeout"}).then(function(){t.delete(p)}))}},setInterval:function(l){var d=l.call;return function(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Ju()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimers={},s.workerTimersBroker))})(f,function(s,a){var c=function(d,p){var g=null;return function(){if(g!==null)return g;var b=new Blob([p],{type:"application/javascript; charset=utf-8"}),E=URL.createObjectURL(b);return g=d(E),setTimeout(function(){return URL.revokeObjectURL(E)}),g}},n=`(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},79:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r(79);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156:e=>{e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u,a,i=[],s=!0,c=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=u.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},293:e=>{function t(e,t,r,n,o,u,a){try{var i=e[u](a),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var a=e.apply(r,n);function i(e){t(a,o,u,i,s,"next",e)}function s(e){t(a,o,u,i,s,"throw",e)}i(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,s=r(i),c=a(s,i),f=t(c);e.addUniqueNumber=f,e.generateUniqueNumber=c}(t)},472:function(e,t,r){!function(e,t,r,n){"use strict";var o=function(e,t){return function(r){var o=t.get(r);if(void 0===o)return Promise.resolve(!1);var u=n(o,2),a=u[0],i=u[1];return e(a),t.delete(r),i(!1),Promise.resolve(!0)}},u=function(e,t){var r=function(n,o,u,a){var i=n-e.now();i>0?o.set(a,[t(r,i,n,o,u,a),u]):(o.delete(a),u(!0))};return r},a=function(e,t,r,n){return function(o,u,a){var i=o+u-t.timeOrigin,s=i-t.now();return new Promise((function(t){e.set(a,[r(n,s,i,e,t,a),t])}))}},i=new Map,s=o(globalThis.clearTimeout,i),c=new Map,f=o(globalThis.clearTimeout,c),l=u(performance,globalThis.setTimeout),p=a(i,performance,globalThis.setTimeout,l),d=a(c,performance,globalThis.setTimeout,l);r.createWorker(self,{clear:function(){var r=e(t.mark((function e(r){var n,o,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.timerId,o=r.timerType,e.next=1,"interval"===o?s(n):f(n);case 1:return u=e.sent,e.abrupt("return",{result:u});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}(),set:function(){var r=e(t.mark((function e(r){var n,o,u,a,i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.delay,o=r.now,u=r.timerId,a=r.timerType,e.next=1,("interval"===a?p:d)(n,o,u);case 1:return i=e.sent,e.abrupt("return",{result:i});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}()})}(r(293),r(756),r(623),r(715))},546:e=>{function t(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,o){if(r)a?a(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var u=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};u("next",0),u("throw",1),u("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){"use strict";var u={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},a=function(e,t){return Object.assign(new Error(e),{status:t})},i=function(e){return a('The requested method called "'.concat(e,'" is not supported.'),u.METHOD_NOT_FOUND)},s=function(e){return a('The handler of the method called "'.concat(e,'" returned no required result.'),u.INTERNAL_ERROR)},c=function(e){return a('The handler of the method called "'.concat(e,'" returned an unexpected result.'),u.INTERNAL_ERROR)},f=function(e){return a('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),u.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var u,a,f,l,p,d,v,x,y,b,h,m,_,g,w;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=o.data,a=u.id,f=u.method,l=u.params,p=n[f],t.prev=1,void 0!==p){t.next=2;break}throw i(f);case 2:if(void 0!==(d=void 0===l?p():p(l))){t.next=3;break}throw s(f);case 3:if(!(d instanceof Promise)){t.next=5;break}return t.next=4,d;case 4:g=t.sent,t.next=6;break;case 5:g=d;case 6:if(v=g,null!==a){t.next=8;break}if(void 0===v.result){t.next=7;break}throw c(f);case 7:t.next=10;break;case 8:if(void 0!==v.result){t.next=9;break}throw c(f);case 9:x=v.result,y=v.transferables,b=void 0===y?[]:y,e.postMessage({id:a,result:x},b);case 10:t.next=12;break;case 11:t.prev=11,w=t.catch(1),h=w.message,m=w.status,_=void 0===m?-32603:m,e.postMessage({error:{code:_,message:h},id:a});case 12:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),s=r(373),c=r(579);function f(){"use strict";var t=o(),r=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,d[e],t)},delegateYield:function(e,o,u){return t.resultName=o,r(n.d,c(e),u)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,r,n,o){return t.w(v(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:i,async:function(e,t,r,n,o){return(p(t)?a:u)(v(e),t,r,n,o)},keys:s,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},715:(e,t,r)=>{var n=r(987),o=r(156),u=r(122),a=r(752);e.exports=function(e,t){return n(e)||o(e,t)||u(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function u(e,o,a,i){try{var s=t[e](o),c=s.value;return c instanceof n?r.resolve(c.v).then((function(e){u("next",e,a,i)}),(function(e){u("throw",e,a,i)})):r.resolve(c).then((function(e){s.value=e,a(s)}),(function(e){return u("throw",e,a,i)}))}catch(e){i(e)}}var a;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),o(this,"_invoke",(function(e,t,n){function o(){return new r((function(t,r){u(e,n,t,r)}))}return a=a?a.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,u){var a=n(e,t,r,o,u);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,u,a){return new o(n().w(e,t,r,u),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},987:e=>{e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function s(e,o,u,a){var i=o&&o.prototype instanceof f?o:f,s=Object.create(i.prototype);return n(s,"_invoke",function(e,n,o){var u,a,i,s=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return u=e,a=0,i=t,p.n=r,c}};function d(e,n){for(a=e,i=n,r=0;!l&&s&&!o&&r3?(o=v===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=t):u[0]<=d&&((o=e<2&&dn||n>v)&&(u[4]=e,u[5]=n,p.n=v,a=0))}if(o||e>1)return c;throw l=!0,n}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),a=f,i=v;(r=a<2?t:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),d(a,i)):p.n=i:p.v=i);try{if(s=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=t}else if((r=(l=p.n<0)?i:e.call(n,p))!==c)break}catch(e){u=t,a=1,i=e}finally{s=1}}return{value:r,done:l}}}(e,u,a),!0),s}var c={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][a]?r(r([][a]())):(n(r={},a,(function(){return this})),r),v=p.prototype=f.prototype=Object.create(d);function x(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,(function(){return this})),n(v,"toString",(function(){return"[object Generator]"})),(e.exports=o=function(){return{w:s,m:x}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,r=c(a.load,n),t=function(d){return r().clearInterval(d)},e=function(d){return r().clearTimeout(d)},i=function(){var d;return(d=r()).setInterval.apply(d,arguments)},l=function(){var d;return(d=r()).setTimeout.apply(d,arguments)};s.clearInterval=t,s.clearTimeout=e,s.setInterval=i,s.setTimeout=l})}),tn=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.isReactNativeBrowser=f.isWebWorker=void 0;var h=()=>typeof window<"u"?typeof navigator<"u"&&navigator.userAgent?.toLowerCase().indexOf(" electron/")>-1&&Ge?.versions?!Object.prototype.hasOwnProperty.call(Ge.versions,"electron"):typeof window.document<"u":!1,s=()=>!!(typeof self=="object"&&self?.constructor?.name?.includes("WorkerGlobalScope")),a=()=>typeof navigator<"u"&&navigator.product==="ReactNative",c=h()||s()||a();f.isWebWorker=s(),f.isReactNativeBrowser=a(),f.default=c}),Zu=Se(f=>{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(i,l,d,p){p===void 0&&(p=d);var g=Object.getOwnPropertyDescriptor(l,d);(!g||("get"in g?!l.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,p,g)}:function(i,l,d,p){p===void 0&&(p=d),i[p]=l[d]}),s=f&&f.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),a=f&&f.__importStar||(function(){var i=function(l){return i=Object.getOwnPropertyNames||function(d){var p=[];for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(p[p.length]=g);return p},i(l)};return function(l){if(l&&l.__esModule)return l;var d={};if(l!=null)for(var p=i(l),g=0;gsetInterval(i,l),clear:i=>clearInterval(i)},e=i=>{switch(i){case"native":return t;case"worker":return r;case"auto":default:return n.default&&!n.isWebWorker&&!n.isReactNativeBrowser?r:t}};f.default=e}),Ma=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(Zu()),a=class{_keepalive;timerId;timer;destroyed=!1;counter;client;_keepaliveTimeoutTimestamp;_intervalEvery;get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(c,n){this.client=c,this.timer=typeof n=="object"&&"set"in n&&"clear"in n?n:(0,s.default)(n),this.setKeepalive(c.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(c){if(c*=1e3,isNaN(c)||c<=0||c>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${c}`);this._keepalive=c,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${c}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let c=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+c,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};f.default=a}),wi=Se(f=>{var _;ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(R,w,O,T){T===void 0&&(T=O);var M=Object.getOwnPropertyDescriptor(w,O);(!M||("get"in M?!w.__esModule:M.writable||M.configurable))&&(M={enumerable:!0,get:function(){return w[O]}}),Object.defineProperty(R,T,M)}:function(R,w,O,T){T===void 0&&(T=O),R[T]=w[O]}),s=f&&f.__setModuleDefault||(Object.create?function(R,w){Object.defineProperty(R,"default",{enumerable:!0,value:w})}:function(R,w){R.default=w}),a=f&&f.__importStar||(function(){var R=function(w){return R=Object.getOwnPropertyNames||function(O){var T=[];for(var M in O)Object.prototype.hasOwnProperty.call(O,M)&&(T[T.length]=M);return T},R(w)};return function(w){if(w&&w.__esModule)return w;var O={};if(w!=null)for(var T=R(w),M=0;M{let w=R.shift();(0,b.nextTick)(()=>{w(...R)})}),v={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,subscribeBatchSize:null,writeCache:!0,timerVariant:"auto"},A=(_=class extends E.TypedEventEmitter{connected;disconnecting;disconnected;reconnecting;incomingStore;outgoingStore;options;queueQoSZero;_reconnectCount;log;messageIdProvider;outgoing;messageIdToTopic;noop;keepaliveManager;stream;queue;streamBuilder;_resubscribeTopics;connackTimer;reconnectTimer;_storeProcessing;_packetIdsDuringStoreProcessing;_storeProcessingQueue;_firstConnection;topicAliasRecv;topicAliasSend;_deferredReconnect;connackPacket;static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(w,O){super(),this.options=O||{};for(let T in v)typeof this.options[T]>"u"?this.options[T]=v[T]:this.options[T]=O[T];this.log=this.options.log||(0,e.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",_.VERSION),x.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",x.default?"browser":"node"),this.log("MqttClient :: options.protocol",O.protocol),this.log("MqttClient :: options.protocolVersion",O.protocolVersion),this.log("MqttClient :: options.username",O.username),this.log("MqttClient :: options.keepalive",O.keepalive),this.log("MqttClient :: options.reconnectPeriod",O.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",O.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",O.properties?O.properties.topicAliasMaximum:void 0),this.options.clientId=typeof O.clientId=="string"?O.clientId:_.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=O.protocolVersion===5&&O.customHandleAcks?O.customHandleAcks:(...T)=>{T[3](null,0)},this.options.writeCache||(n.default.writeToStream.cacheNumbers=!1),this.streamBuilder=w,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new p.default:this.options.messageIdProvider,this.outgoingStore=O.outgoingStore||new l.default,this.incomingStore=O.incomingStore||new l.default,this.queueQoSZero=O.queueQoSZero===void 0?!0:O.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,O.properties&&O.properties.topicAliasMaximum>0&&(O.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new g.default(O.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:T}=this,M=()=>{let U=T.shift();this.log("deliver :: entry %o",U);let k=null;if(!U){this._resubscribe();return}k=U.packet,this.log("deliver :: call _sendPacket for %o",k);let z=!0;k.messageId&&k.messageId!==0&&(this.messageIdProvider.register(k.messageId)||(z=!1)),z?this._sendPacket(k,G=>{U.cb&&U.cb(G),M()}):(this.log("messageId: %d has already used. The message is skipped and removed.",k.messageId),M())};this.log("connect :: sending queued packets"),M()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(w,O){O()}handleMessage(w,O){O()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){let w=new r.Writable,O=n.default.parser(this.options),T=null,M=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),O.on("packet",q=>{this.log("parser :: on packet push to packets array."),M.push(q)});let U=()=>{this.log("work :: getting next packet in queue");let q=M.shift();if(q)this.log("work :: packet pulled from queue"),(0,d.default)(this,q,k);else{this.log("work :: no packets in queue");let he=T;T=null,this.log("work :: done flag is %s",!!he),he&&he()}},k=()=>{if(M.length)(0,b.nextTick)(U);else{let q=T;T=null,q()}};w._write=(q,he,ne)=>{T=ne,this.log("writable stream :: parsing buffer"),O.parse(q),U()};let z=q=>{this.log("streamErrorHandler :: error",q.message),q.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",q)):this.noop(q)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(w),this.stream.on("error",z),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let G={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(G.will={...this.options.will,payload:this.options.will?.payload}),this.topicAliasRecv&&(G.properties||(G.properties={}),this.topicAliasRecv&&(G.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(G),O.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let q={cmd:"auth",reasonCode:0,...this.options.authPacket};this._writePacket(q)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(w,O,T,M){this.log("publish :: message `%s` to topic `%s`",O,w);let{options:U}=this;typeof T=="function"&&(M=T,T=null),T=T||{},T={qos:0,retain:!1,dup:!1,...T};let{qos:k,retain:z,dup:G,properties:q,cbStorePut:he}=T;if(this._checkDisconnecting(M))return this;let ne=()=>{let te=0;if((k===1||k===2)&&(te=this._nextId(),te===null))return this.log("No messageId left"),!1;let ce={cmd:"publish",topic:w,payload:O,qos:k,retain:z,messageId:te,dup:G};switch(U.protocolVersion===5&&(ce.properties=q),this.log("publish :: qos",k),k){case 1:case 2:this.outgoing[ce.messageId]={volatile:!1,cb:M||this.noop},this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,void 0,he);break;default:this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,M,he);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:T.cbStorePut,callback:M}),this}publishAsync(w,O,T){return new Promise((M,U)=>{this.publish(w,O,T,(k,z)=>{k?U(k):M(z)})})}subscribe(w,O,T){let M=this.options.protocolVersion;typeof O=="function"&&(T=O),T=T||this.noop;let U=!1,k=[];typeof w=="string"?(w=[w],k=w):Array.isArray(w)?k=w:typeof w=="object"&&(U=w.resubscribe,delete w.resubscribe,k=Object.keys(w));let z=i.validateTopics(k);if(z!==null)return y(T,new Error(`Invalid topic ${z}`)),this;if(this._checkDisconnecting(T))return this.log("subscribe: discconecting true"),this;let G={qos:0};M===5&&(G.nl=!1,G.rap=!1,G.rh=0),O={...G,...O};let{properties:q}=O,he=[],ne=(V,le)=>{if(le=le||O,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,V)||this._resubscribeTopics[V].qos{this.log("subscribe: array topic %s",V),ne(V)}):Object.keys(w).forEach(V=>{this.log("subscribe: object topic %s, %o",V,w[V]),ne(V,w[V])}),!he.length)return T(null,[]),this;let te=(V,le)=>{let B={cmd:"subscribe",subscriptions:V,messageId:le};if(q&&(B.properties=q),this.options.resubscribe){this.log("subscribe :: resubscribe true");let Z=[];V.forEach(ue=>{if(this.options.reconnectPeriod>0){let Ae={qos:ue.qos};M===5&&(Ae.nl=ue.nl||!1,Ae.rap=ue.rap||!1,Ae.rh=ue.rh||0,Ae.properties=ue.properties),this._resubscribeTopics[ue.topic]=Ae,Z.push(ue.topic)}}),this.messageIdToTopic[B.messageId]=Z}let ee=new Promise((Z,ue)=>{this.outgoing[B.messageId]={volatile:!0,cb(Ae,Y){if(!Ae){let{granted:W}=Y;for(let oe=0;oe{let V=this.options.subscribeBatchSize??he.length,le=[];for(let B=0;B{T(null,he,B.at(-1))}).catch(B=>{T(B,he,B.packet)}),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ce())&&this._storeProcessingQueue.push({invoke:ce,callback:T}),this}subscribeAsync(w,O){return new Promise((T,M)=>{this.subscribe(w,O,(U,k)=>{U?M(U):T(k)})})}unsubscribe(w,O,T){typeof w=="string"&&(w=[w]),typeof O=="function"&&(T=O),T=T||this.noop;let M=i.validateTopics(w);if(M!==null)return y(T,new Error(`Invalid topic ${M}`)),this;if(this._checkDisconnecting(T))return this;let U=()=>{let k=this._nextId();if(k===null)return this.log("No messageId left"),!1;let z={cmd:"unsubscribe",messageId:k,unsubscriptions:[]};return typeof w=="string"?z.unsubscriptions=[w]:Array.isArray(w)&&(z.unsubscriptions=w),this.options.resubscribe&&z.unsubscriptions.forEach(G=>{delete this._resubscribeTopics[G]}),typeof O=="object"&&O.properties&&(z.properties=O.properties),this.outgoing[z.messageId]={volatile:!0,cb:T},this.log("unsubscribe: call _sendPacket"),this._sendPacket(z),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!U())&&this._storeProcessingQueue.push({invoke:U,callback:T}),this}unsubscribeAsync(w,O){return new Promise((T,M)=>{this.unsubscribe(w,O,(U,k)=>{U?M(U):T(k)})})}end(w,O,T){this.log("end :: (%s)",this.options.clientId),(w==null||typeof w!="boolean")&&(T=T||O,O=w,w=!1),typeof O!="object"&&(T=T||O,O=null),this.log("end :: cb? %s",!!T),(!T||typeof T!="function")&&(T=this.noop);let M=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(k=>{this.outgoingStore.close(z=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),T){let G=k||z;this.log("end :: closeStores: invoking callback with args"),T(G)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},U=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,w),this._cleanUp(w,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,b.nextTick)(M)},O)};return this.disconnecting?(T(),this):(this._clearReconnect(),this.disconnecting=!0,!w&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,U,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),U()),this)}endAsync(w,O){return new Promise((T,M)=>{this.end(w,O,U=>{U?M(U):T()})})}removeOutgoingMessage(w){if(this.outgoing[w]){let{cb:O}=this.outgoing[w];this._removeOutgoingAndStoreMessage(w,()=>{O(new Error("Message removed"))})}return this}reconnect(w){this.log("client reconnect");let O=()=>{w?(this.options.incomingStore=w.incomingStore,this.options.outgoingStore=w.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=O:O(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(w=>{this.outgoing[w].volatile&&typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(w=>{typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_removeTopicAliasAndRecoverTopicName(w){let O;w.properties&&(O=w.properties.topicAlias);let T=w.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",O,T),T.length===0){if(typeof O>"u")return new Error("Unregistered Topic Alias");if(T=this.topicAliasSend.getTopicByAlias(O),typeof T>"u")return new Error("Unregistered Topic Alias");w.topic=T}O&&delete w.properties.topicAlias}_checkDisconnecting(w){return this.disconnecting&&(w&&w!==this.noop?w(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(w,O,T={}){if(O&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",O)),this.log("_cleanUp :: forced? %s",w),w)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let M={cmd:"disconnect",...T};this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(M,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),y(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),O&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",O),O())}_storeAndSend(w,O,T){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",w.cmd);let M=w,U;if(M.cmd==="publish"&&(M=(0,t.default)(w),U=this._removeTopicAliasAndRecoverTopicName(M),U))return O&&O(U);this.outgoingStore.put(M,k=>{if(k)return O&&O(k);T(),this._writePacket(w,O)})}_applyTopicAlias(w){if(this.options.protocolVersion===5&&w.cmd==="publish"){let O;w.properties&&(O=w.properties.topicAlias);let T=w.topic.toString();if(this.topicAliasSend)if(O){if(T.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",T,O),!this.topicAliasSend.put(T,O)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",T,O),new Error("Sending Topic Alias out of range")}else T.length!==0&&(this.options.autoAssignTopicAlias?(O=this.topicAliasSend.getAliasByTopic(T),O?(w.topic="",w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",T,O)):(O=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(T,O),w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",T,O))):this.options.autoUseTopicAlias&&(O=this.topicAliasSend.getAliasByTopic(T),O&&(w.topic="",w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto use topic: %s - alias: %d",T,O))));else if(O)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",T,O),new Error("Sending Topic Alias out of range")}}_noop(w){this.log("noop ::",w)}_writePacket(w,O){this.log("_writePacket :: packet: %O",w),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",w),this.log("_writePacket :: writing to stream");let T=n.default.writeToStream(w,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",T),!T&&O&&O!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",O)):O&&(this.log("_writePacket :: invoking cb"),O())}_sendPacket(w,O,T,M){this.log("_sendPacket :: (%s) :: start",this.options.clientId),T=T||this.noop,O=O||this.noop;let U=this._applyTopicAlias(w);if(U){O(U);return}if(!this.connected){if(w.cmd==="auth"){this._writePacket(w,O);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(w,O,T);return}if(M){this._writePacket(w,O);return}switch(w.cmd){case"publish":break;case"pubrel":this._storeAndSend(w,O,T);return;default:this._writePacket(w,O);return}switch(w.qos){case 2:case 1:this._storeAndSend(w,O,T);break;case 0:default:this._writePacket(w,O);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(w,O,T){this.log("_storePacket :: packet: %o",w),this.log("_storePacket :: cb? %s",!!O),T=T||this.noop;let M=w;if(M.cmd==="publish"){M=(0,t.default)(w);let k=this._removeTopicAliasAndRecoverTopicName(M);if(k)return O&&O(k)}let U=M.qos||0;U===0&&this.queueQoSZero||M.cmd!=="publish"?this.queue.push({packet:M,cb:O}):U>0?(O=this.outgoing[M.messageId]?this.outgoing[M.messageId].cb:null,this.outgoingStore.put(M,k=>{if(k)return O&&O(k);T()})):O&&O(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new S.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(w=!1){this.keepaliveManager&&this.options.keepalive&&(w||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let w=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&w.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let O=0;O{let T=this.outgoingStore.createStream(),M=()=>{T.destroy(),T=null,this._flushStoreProcessingQueue(),U()},U=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",M),T.on("error",z=>{U(),this._flushStoreProcessingQueue(),this.removeListener("close",M),this.emit("error",z)});let k=()=>{if(!T)return;let z=T.read(1),G;if(!z){T.once("readable",k);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[z.messageId]){k();return}!this.disconnecting&&!this.reconnectTimer?(G=this.outgoing[z.messageId]?this.outgoing[z.messageId].cb:null,this.outgoing[z.messageId]={volatile:!1,cb(q,he){G&&G(q,he),k()}},this._packetIdsDuringStoreProcessing[z.messageId]=!0,this.messageIdProvider.register(z.messageId)?this._sendPacket(z,void 0,void 0,!0):this.log("messageId: %d has already used.",z.messageId)):T.destroy&&T.destroy()};T.on("end",()=>{let z=!0;for(let G in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[G]){z=!1;break}this.removeListener("close",M),z?(U(),this._invokeAllStoreProcessingQueue(),this.emit("connect",w)):O()}),k()};O()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let w=this._storeProcessingQueue[0];if(w&&w.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let w of this._storeProcessingQueue)w.cbStorePut&&w.cbStorePut(new Error("Connection closed")),w.callback&&w.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(w,O){delete this.outgoing[w],this.outgoingStore.del({messageId:w},(T,M)=>{O(T,M),this.messageIdProvider.deallocate(w),this._invokeStoreProcessingQueue()})}},it(_,"VERSION",b.MQTTJS_VERSION),_);f.default=A}),ec=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=Ia(),s=class{numberAllocator;lastId;constructor(){this.numberAllocator=new h.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(a){return this.numberAllocator.use(a)}deallocate(a){this.numberAllocator.free(a)}clear(){this.numberAllocator.clear()}};f.default=s});function tc(){if(_i)return xr;_i=!0;let f=2147483647,h=36,s=1,a=26,c=38,n=700,r=72,t=128,e="-",i=/^xn--/,l=/[^\0-\x7F]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=h-s,b=Math.floor,E=String.fromCharCode;function S(M){throw new RangeError(p[M])}function x(M,U){let k=[],z=M.length;for(;z--;)k[z]=U(M[z]);return k}function y(M,U){let k=M.split("@"),z="";k.length>1&&(z=k[0]+"@",M=k[1]),M=M.replace(d,".");let G=M.split("."),q=x(G,U).join(".");return z+q}function v(M){let U=[],k=0,z=M.length;for(;k=55296&&G<=56319&&kString.fromCodePoint(...M),_=function(M){return M>=48&&M<58?26+(M-48):M>=65&&M<91?M-65:M>=97&&M<123?M-97:h},R=function(M,U){return M+22+75*(M<26)-((U!=0)<<5)},w=function(M,U,k){let z=0;for(M=k?b(M/n):M>>1,M+=b(M/U);M>g*a>>1;z+=h)M=b(M/g);return b(z+(g+1)*M/(M+c))},O=function(M){let U=[],k=M.length,z=0,G=t,q=r,he=M.lastIndexOf(e);he<0&&(he=0);for(let ne=0;ne=128&&S("not-basic"),U.push(M.charCodeAt(ne));for(let ne=he>0?he+1:0;ne=k&&S("invalid-input");let B=_(M.charCodeAt(ne++));B>=h&&S("invalid-input"),B>b((f-z)/V)&&S("overflow"),z+=B*V;let ee=le<=q?s:le>=q+a?a:le-q;if(Bb(f/Z)&&S("overflow"),V*=Z}let ce=U.length+1;q=w(z-te,ce,te==0),b(z/ce)>f-G&&S("overflow"),G+=b(z/ce),z%=ce,U.splice(z++,0,G)}return String.fromCodePoint(...U)},T=function(M){let U=[];M=v(M);let k=M.length,z=t,G=0,q=r;for(let te of M)te<128&&U.push(E(te));let he=U.length,ne=he;for(he&&U.push(e);ne=z&&Vb((f-G)/ce)&&S("overflow"),G+=(te-z)*ce,z=te;for(let V of M)if(Vf&&S("overflow"),V===z){let le=G;for(let B=h;;B+=h){let ee=B<=q?s:B>=q+a?a:B-q;if(le{ge(),me(),ye(),xr={},_i=!1,Wt=tc(),Wt.decode,Wt.encode,Wt.toASCII,Wt.toUnicode,Wt.ucs2,Wt.version});function nc(){return Ei||(Ei=!0,Si=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var f={},h=Symbol("test"),s=Object(h);if(typeof h=="string"||Object.prototype.toString.call(h)!=="[object Symbol]"||Object.prototype.toString.call(s)!=="[object Symbol]")return!1;var a=42;f[h]=a;for(h in f)return!1;if(typeof Object.keys=="function"&&Object.keys(f).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(f).length!==0)return!1;var c=Object.getOwnPropertySymbols(f);if(c.length!==1||c[0]!==h||!Object.prototype.propertyIsEnumerable.call(f,h))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var n=Object.getOwnPropertyDescriptor(f,h);if(n.value!==a||n.enumerable!==!0)return!1}return!0}),Si}function ic(){return xi||(xi=!0,Ai=Error),Ai}function oc(){return Oi||(Oi=!0,Ii=EvalError),Ii}function sc(){return Ti||(Ti=!0,ki=RangeError),ki}function ac(){return Ci||(Ci=!0,Pi=ReferenceError),Pi}function Ba(){return ji||(ji=!0,Ri=SyntaxError),Ri}function mr(){return Bi||(Bi=!0,Mi=TypeError),Mi}function lc(){return Ui||(Ui=!0,Ni=URIError),Ni}function uc(){if(Li)return Ir;Li=!0;var f=typeof Symbol<"u"&&Symbol,h=nc();return Ir=function(){return typeof f!="function"||typeof Symbol!="function"||typeof f("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:h()},Ir}function cc(){if(Di)return Or;Di=!0;var f={__proto__:null,foo:{}},h=Object;return Or=function(){return{__proto__:f}.foo===f.foo&&!(f instanceof h)},Or}function hc(){if(Fi)return kr;Fi=!0;var f="Function.prototype.bind called on incompatible ",h=Object.prototype.toString,s=Math.max,a="[object Function]",c=function(t,e){for(var i=[],l=0;l"u"||!E?f:E(Uint8Array),y={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?f:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?f:ArrayBuffer,"%ArrayIteratorPrototype%":g&&E?E([][Symbol.iterator]()):f,"%AsyncFromSyncIteratorPrototype%":f,"%AsyncFunction%":S,"%AsyncGenerator%":S,"%AsyncGeneratorFunction%":S,"%AsyncIteratorPrototype%":S,"%Atomics%":typeof Atomics>"u"?f:Atomics,"%BigInt%":typeof BigInt>"u"?f:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?f:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?f:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?f:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":h,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?f:Float32Array,"%Float64Array%":typeof Float64Array>"u"?f:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?f:FinalizationRegistry,"%Function%":e,"%GeneratorFunction%":S,"%Int8Array%":typeof Int8Array>"u"?f:Int8Array,"%Int16Array%":typeof Int16Array>"u"?f:Int16Array,"%Int32Array%":typeof Int32Array>"u"?f:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&E?E(E([][Symbol.iterator]())):f,"%JSON%":typeof JSON=="object"?JSON:f,"%Map%":typeof Map>"u"?f:Map,"%MapIteratorPrototype%":typeof Map>"u"||!g||!E?f:E(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?f:Promise,"%Proxy%":typeof Proxy>"u"?f:Proxy,"%RangeError%":a,"%ReferenceError%":c,"%Reflect%":typeof Reflect>"u"?f:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?f:Set,"%SetIteratorPrototype%":typeof Set>"u"||!g||!E?f:E(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?f:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&E?E(""[Symbol.iterator]()):f,"%Symbol%":g?Symbol:f,"%SyntaxError%":n,"%ThrowTypeError%":p,"%TypedArray%":x,"%TypeError%":r,"%Uint8Array%":typeof Uint8Array>"u"?f:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?f:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?f:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?f:Uint32Array,"%URIError%":t,"%WeakMap%":typeof WeakMap>"u"?f:WeakMap,"%WeakRef%":typeof WeakRef>"u"?f:WeakRef,"%WeakSet%":typeof WeakSet>"u"?f:WeakSet};if(E)try{null.error}catch(ne){var v=E(E(ne));y["%Error.prototype%"]=v}var A=function ne(te){var ce;if(te==="%AsyncFunction%")ce=i("async function () {}");else if(te==="%GeneratorFunction%")ce=i("function* () {}");else if(te==="%AsyncGeneratorFunction%")ce=i("async function* () {}");else if(te==="%AsyncGenerator%"){var V=ne("%AsyncGeneratorFunction%");V&&(ce=V.prototype)}else if(te==="%AsyncIteratorPrototype%"){var le=ne("%AsyncGenerator%");le&&E&&(ce=E(le.prototype))}return y[te]=ce,ce},_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},R=go(),w=fc(),O=R.call(Function.call,Array.prototype.concat),T=R.call(Function.apply,Array.prototype.splice),M=R.call(Function.call,String.prototype.replace),U=R.call(Function.call,String.prototype.slice),k=R.call(Function.call,RegExp.prototype.exec),z=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,G=/\\(\\)?/g,q=function(ne){var te=U(ne,0,1),ce=U(ne,-1);if(te==="%"&&ce!=="%")throw new n("invalid intrinsic syntax, expected closing `%`");if(ce==="%"&&te!=="%")throw new n("invalid intrinsic syntax, expected opening `%`");var V=[];return M(ne,z,function(le,B,ee,Z){V[V.length]=ee?M(Z,G,"$1"):B||le}),V},he=function(ne,te){var ce=ne,V;if(w(_,ce)&&(V=_[ce],ce="%"+V[0]+"%"),w(y,ce)){var le=y[ce];if(le===S&&(le=A(ce)),typeof le>"u"&&!te)throw new r("intrinsic "+ne+" exists, but is not available. Please file an issue!");return{alias:V,name:ce,value:le}}throw new n("intrinsic "+ne+" does not exist!")};return Cr=function(ne,te){if(typeof ne!="string"||ne.length===0)throw new r("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof te!="boolean")throw new r('"allowMissing" argument must be a boolean');if(k(/^%?[^%]*%?$/,ne)===null)throw new n("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ce=q(ne),V=ce.length>0?ce[0]:"",le=he("%"+V+"%",te),B=le.name,ee=le.value,Z=!1,ue=le.alias;ue&&(V=ue[0],T(ce,O([0,1],ue)));for(var Ae=1,Y=!0;Ae=ce.length){var J=l(ee,W);Y=!!J,Y&&"get"in J&&!("originalValue"in J.get)?ee=J.get:ee=ee[W]}else Y=w(ee,W),ee=ee[W];Y&&!Z&&(y[B]=ee)}}return ee},Cr}function yo(){if(Vi)return Rr;Vi=!0;var f=lr(),h=f("%Object.defineProperty%",!0)||!1;if(h)try{h({},"a",{value:1})}catch{h=!1}return Rr=h,Rr}function Na(){if(zi)return jr;zi=!0;var f=lr(),h=f("%Object.getOwnPropertyDescriptor%",!0);if(h)try{h([],"length")}catch{h=null}return jr=h,jr}function pc(){if(Ki)return Mr;Ki=!0;var f=yo(),h=Ba(),s=mr(),a=Na();return Mr=function(c,n,r){if(!c||typeof c!="object"&&typeof c!="function")throw new s("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var t=arguments.length>3?arguments[3]:null,e=arguments.length>4?arguments[4]:null,i=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,d=!!a&&a(c,n);if(f)f(c,n,{configurable:i===null&&d?d.configurable:!i,enumerable:t===null&&d?d.enumerable:!t,value:r,writable:e===null&&d?d.writable:!e});else if(l||!t&&!e&&!i)c[n]=r;else throw new h("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Mr}function dc(){if(Hi)return Br;Hi=!0;var f=yo(),h=function(){return!!f};return h.hasArrayLengthDefineBug=function(){if(!f)return null;try{return f([],"length",{value:1}).length!==1}catch{return!0}},Br=h,Br}function gc(){if(Gi)return Nr;Gi=!0;var f=lr(),h=pc(),s=dc()(),a=Na(),c=mr(),n=f("%Math.floor%");return Nr=function(r,t){if(typeof r!="function")throw new c("`fn` is not a function");if(typeof t!="number"||t<0||t>4294967295||n(t)!==t)throw new c("`length` must be a positive 32-bit integer");var e=arguments.length>2&&!!arguments[2],i=!0,l=!0;if("length"in r&&a){var d=a(r,"length");d&&!d.configurable&&(i=!1),d&&!d.writable&&(l=!1)}return(i||l||!e)&&(s?h(r,"length",t,!0,!0):h(r,"length",t)),r},Nr}function yc(){if(Qi)return ir;Qi=!0;var f=go(),h=lr(),s=gc(),a=mr(),c=h("%Function.prototype.apply%"),n=h("%Function.prototype.call%"),r=h("%Reflect.apply%",!0)||f.call(n,c),t=yo(),e=h("%Math.max%");ir=function(l){if(typeof l!="function")throw new a("a function is required");var d=r(f,n,arguments);return s(d,1+e(0,l.length-(arguments.length-1)),!0)};var i=function(){return r(f,c,arguments)};return t?t(ir,"apply",{value:i}):ir.apply=i,ir}function mc(){if(Yi)return Ur;Yi=!0;var f=lr(),h=yc(),s=h(f("String.prototype.indexOf"));return Ur=function(a,c){var n=f(a,!!c);return typeof n=="function"&&s(a,".prototype.")>-1?h(n):n},Ur}var Si,Ei,Ai,xi,Ii,Oi,ki,Ti,Pi,Ci,Ri,ji,Mi,Bi,Ni,Ui,Ir,Li,Or,Di,kr,Fi,Tr,Wi,Pr,$i,Cr,qi,Rr,Vi,jr,zi,Mr,Ki,Br,Hi,Nr,Gi,ir,Qi,Ur,Yi,bc=yt(()=>{ge(),me(),ye(),Si={},Ei=!1,Ai={},xi=!1,Ii={},Oi=!1,ki={},Ti=!1,Pi={},Ci=!1,Ri={},ji=!1,Mi={},Bi=!1,Ni={},Ui=!1,Ir={},Li=!1,Or={},Di=!1,kr={},Fi=!1,Tr={},Wi=!1,Pr={},$i=!1,Cr={},qi=!1,Rr={},Vi=!1,jr={},zi=!1,Mr={},Ki=!1,Br={},Hi=!1,Nr={},Gi=!1,ir={},Qi=!1,Ur={},Yi=!1});function mo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function vc(){!Xt||!Yt||(Xt=!1,Yt.length?St=Yt.concat(St):dr=-1,St.length&&Ua())}function Ua(){if(!Xt){var f=setTimeout(vc,0);Xt=!0;for(var h=St.length;h;){for(Yt=St,St=[];++dr1)for(var s=1;s{ge(),me(),ye(),St=[],Xt=!1,dr=-1,La.prototype.run=function(){this.fun.apply(null,this.array)},Oo="browser",ko="x64",To="browser",Po={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Co=["/usr/bin/node"],Ro=[],jo="v16.8.0",Mo={},Bo=function(f,h){console.warn((h?h+": ":"")+f)},No=function(f){mo("binding")},Uo=function(f){return 0},Lo=function(){return"/"},Do=function(f){},Fo={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},Wo=ht,$o=[],qo={},Vo=!1,zo={},Ko=ht,Ho=ht,vr=function(){return{}},Go=vr,Qo=vr,Yo=ht,Jo=ht,Xo=ht,Zo={},es={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},ts=ht,rs=ht,ns=ht,is=ht,os=ht,ss=ht,as=ht,ls=void 0,us=void 0,cs=void 0,hs=ht,fs=2,ps=1,ds="/bin/usr/node",gs=9229,ys="node",ms=[],bs=ht,kt={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},kt.now===void 0&&(sn=Date.now(),kt.timing&&kt.timing.navigationStart&&(sn=kt.timing.navigationStart),kt.now=()=>Date.now()-sn),Lr=1e9,on.bigint=function(f){var h=on(f);return typeof BigInt>"u"?h[0]*Lr+h[1]:BigInt(h[0]*Lr)+BigInt(h[1])},vs=10,ws={},_s=0,Ss=Nt,Es=Nt,As=Nt,xs=Nt,Is=Nt,Os=ht,ks=Nt,Ts=Nt,bo={version:jo,versions:Mo,arch:ko,platform:To,release:Fo,_rawDebug:Wo,moduleLoadList:$o,binding:No,_linkedBinding:_c,_events:ws,_eventsCount:_s,_maxListeners:vs,on:Nt,addListener:Ss,once:Es,off:As,removeListener:xs,removeAllListeners:Is,emit:Os,prependListener:ks,prependOnceListener:Ts,listeners:kc,domain:qo,_exiting:Vo,config:zo,dlopen:Sc,uptime:Oc,_getActiveRequests:Ec,_getActiveHandles:Ac,reallyExit:Ko,_kill:Ho,cpuUsage:vr,resourceUsage:Go,memoryUsage:Qo,kill:Yo,exit:Jo,openStdin:Xo,allowedNodeEnvironmentFlags:Zo,assert:xc,features:es,_fatalExceptions:ts,setUncaughtExceptionCaptureCallback:rs,hasUncaughtExceptionCaptureCallback:Ic,emitWarning:Bo,nextTick:wc,_tickCallback:ns,_debugProcess:is,_debugEnd:os,_startProfilerIdleNotifier:ss,_stopProfilerIdleNotifier:as,stdout:ls,stdin:cs,stderr:us,abort:hs,umask:Uo,chdir:Do,cwd:Lo,env:Po,title:Oo,argv:Co,execArgv:Ro,pid:fs,ppid:ps,execPath:ds,debugPort:gs,hrtime:on,argv0:ys,_preload_modules:ms,setSourceMapsEnabled:bs}});function Tc(){if(Ji)return Dr;Ji=!0;var f=bo;function h(n){if(typeof n!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(n))}function s(n,r){for(var t="",e=0,i=-1,l=0,d,p=0;p<=n.length;++p){if(p2){var g=t.lastIndexOf("/");if(g!==t.length-1){g===-1?(t="",e=0):(t=t.slice(0,g),e=t.length-1-t.lastIndexOf("/")),i=p,l=0;continue}}else if(t.length===2||t.length===1){t="",e=0,i=p,l=0;continue}}r&&(t.length>0?t+="/..":t="..",e=2)}else t.length>0?t+="/"+n.slice(i+1,p):t=n.slice(i+1,p),e=p-i-1;i=p,l=0}else d===46&&l!==-1?++l:l=-1}return t}function a(n,r){var t=r.dir||r.root,e=r.base||(r.name||"")+(r.ext||"");return t?t===r.root?t+e:t+n+e:e}var c={resolve:function(){for(var n="",r=!1,t,e=arguments.length-1;e>=-1&&!r;e--){var i;e>=0?i=arguments[e]:(t===void 0&&(t=f.cwd()),i=t),h(i),i.length!==0&&(n=i+"/"+n,r=i.charCodeAt(0)===47)}return n=s(n,!r),r?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(n){if(h(n),n.length===0)return".";var r=n.charCodeAt(0)===47,t=n.charCodeAt(n.length-1)===47;return n=s(n,!r),n.length===0&&!r&&(n="."),n.length>0&&t&&(n+="/"),r?"/"+n:n},isAbsolute:function(n){return h(n),n.length>0&&n.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var n,r=0;r0&&(n===void 0?n=t:n+="/"+t)}return n===void 0?".":c.normalize(n)},relative:function(n,r){if(h(n),h(r),n===r||(n=c.resolve(n),r=c.resolve(r),n===r))return"";for(var t=1;tg){if(r.charCodeAt(l+E)===47)return r.slice(l+E+1);if(E===0)return r.slice(l+E)}else i>g&&(n.charCodeAt(t+E)===47?b=E:E===0&&(b=0));break}var S=n.charCodeAt(t+E),x=r.charCodeAt(l+E);if(S!==x)break;S===47&&(b=E)}var y="";for(E=t+b+1;E<=e;++E)(E===e||n.charCodeAt(E)===47)&&(y.length===0?y+="..":y+="/..");return y.length>0?y+r.slice(l+b):(l+=b,r.charCodeAt(l)===47&&++l,r.slice(l))},_makeLong:function(n){return n},dirname:function(n){if(h(n),n.length===0)return".";for(var r=n.charCodeAt(0),t=r===47,e=-1,i=!0,l=n.length-1;l>=1;--l)if(r=n.charCodeAt(l),r===47){if(!i){e=l;break}}else i=!1;return e===-1?t?"/":".":t&&e===1?"//":n.slice(0,e)},basename:function(n,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');h(n);var t=0,e=-1,i=!0,l;if(r!==void 0&&r.length>0&&r.length<=n.length){if(r.length===n.length&&r===n)return"";var d=r.length-1,p=-1;for(l=n.length-1;l>=0;--l){var g=n.charCodeAt(l);if(g===47){if(!i){t=l+1;break}}else p===-1&&(i=!1,p=l+1),d>=0&&(g===r.charCodeAt(d)?--d===-1&&(e=l):(d=-1,e=p))}return t===e?e=p:e===-1&&(e=n.length),n.slice(t,e)}else{for(l=n.length-1;l>=0;--l)if(n.charCodeAt(l)===47){if(!i){t=l+1;break}}else e===-1&&(i=!1,e=l+1);return e===-1?"":n.slice(t,e)}},extname:function(n){h(n);for(var r=-1,t=0,e=-1,i=!0,l=0,d=n.length-1;d>=0;--d){var p=n.charCodeAt(d);if(p===47){if(!i){t=d+1;break}continue}e===-1&&(i=!1,e=d+1),p===46?r===-1?r=d:l!==1&&(l=1):r!==-1&&(l=-1)}return r===-1||e===-1||l===0||l===1&&r===e-1&&r===t+1?"":n.slice(r,e)},format:function(n){if(n===null||typeof n!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof n);return a("/",n)},parse:function(n){h(n);var r={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return r;var t=n.charCodeAt(0),e=t===47,i;e?(r.root="/",i=1):i=0;for(var l=-1,d=0,p=-1,g=!0,b=n.length-1,E=0;b>=i;--b){if(t=n.charCodeAt(b),t===47){if(!g){d=b+1;break}continue}p===-1&&(g=!1,p=b+1),t===46?l===-1?l=b:E!==1&&(E=1):l!==-1&&(E=-1)}return l===-1||p===-1||E===0||E===1&&l===p-1&&l===d+1?p!==-1&&(d===0&&e?r.base=r.name=n.slice(1,p):r.base=r.name=n.slice(d,p)):(d===0&&e?(r.name=n.slice(1,l),r.base=n.slice(1,p)):(r.name=n.slice(d,l),r.base=n.slice(d,p)),r.ext=n.slice(l,p)),d>0?r.dir=n.slice(0,d-1):e&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};return c.posix=c,Dr=c,Dr}var Dr,Ji,Xi,Pc=yt(()=>{ge(),me(),ye(),Da(),Dr={},Ji=!1,Xi=Tc()}),Fa={};or(Fa,{URL:()=>Ya,Url:()=>za,default:()=>ft,fileURLToPath:()=>$a,format:()=>Ka,parse:()=>Qa,pathToFileURL:()=>qa,resolve:()=>Ha,resolveObject:()=>Ga});function Cc(){if(Zi)return Fr;Zi=!0;var f=typeof Map=="function"&&Map.prototype,h=Object.getOwnPropertyDescriptor&&f?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,s=f&&h&&typeof h.get=="function"?h.get:null,a=f&&Map.prototype.forEach,c=typeof Set=="function"&&Set.prototype,n=Object.getOwnPropertyDescriptor&&c?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,r=c&&n&&typeof n.get=="function"?n.get:null,t=c&&Set.prototype.forEach,e=typeof WeakMap=="function"&&WeakMap.prototype,i=e?WeakMap.prototype.has:null,l=typeof WeakSet=="function"&&WeakSet.prototype,d=l?WeakSet.prototype.has:null,p=typeof WeakRef=="function"&&WeakRef.prototype,g=p?WeakRef.prototype.deref:null,b=Boolean.prototype.valueOf,E=Object.prototype.toString,S=Function.prototype.toString,x=String.prototype.match,y=String.prototype.slice,v=String.prototype.replace,A=String.prototype.toUpperCase,_=String.prototype.toLowerCase,R=RegExp.prototype.test,w=Array.prototype.concat,O=Array.prototype.join,T=Array.prototype.slice,M=Math.floor,U=typeof BigInt=="function"?BigInt.prototype.valueOf:null,k=Object.getOwnPropertySymbols,z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,G=typeof Symbol=="function"&&typeof Symbol.iterator=="object",q=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===G||!0)?Symbol.toStringTag:null,he=Object.prototype.propertyIsEnumerable,ne=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function($){return $.__proto__}:null);function te($,ie){if($===1/0||$===-1/0||$!==$||$&&$>-1e3&&$<1e3||R.call(/e/,ie))return ie;var Re=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof $=="number"){var Te=$<0?-M(-$):M($);if(Te!==$){var Le=String(Te),Ue=y.call(ie,Le.length+1);return v.call(Le,Re,"$&_")+"."+v.call(v.call(Ue,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(ie,Re,"$&_")}var ce=Va,V=ce.custom,le=J(V)?V:null;Fr=function $(ie,Re,Te,Le){var Ue=Re||{};if(pe(Ue,"quoteStyle")&&Ue.quoteStyle!=="single"&&Ue.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(pe(Ue,"maxStringLength")&&(typeof Ue.maxStringLength=="number"?Ue.maxStringLength<0&&Ue.maxStringLength!==1/0:Ue.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var Xe=pe(Ue,"customInspect")?Ue.customInspect:!0;if(typeof Xe!="boolean"&&Xe!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(pe(Ue,"indent")&&Ue.indent!==null&&Ue.indent!==" "&&!(parseInt(Ue.indent,10)===Ue.indent&&Ue.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(pe(Ue,"numericSeparator")&&typeof Ue.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Fe=Ue.numericSeparator;if(typeof ie>"u")return"undefined";if(ie===null)return"null";if(typeof ie=="boolean")return ie?"true":"false";if(typeof ie=="string")return fe(ie,Ue);if(typeof ie=="number"){if(ie===0)return 1/0/ie>0?"0":"-0";var We=String(ie);return Fe?te(ie,We):We}if(typeof ie=="bigint"){var je=String(ie)+"n";return Fe?te(ie,je):je}var tt=typeof Ue.depth>"u"?5:Ue.depth;if(typeof Te>"u"&&(Te=0),Te>=tt&&tt>0&&typeof ie=="object")return Z(ie)?"[Array]":"[Object]";var He=N(Ue,Te);if(typeof Le>"u")Le=[];else if(se(Le,ie)>=0)return"[Circular]";function $e(ze,bt,At){if(bt&&(Le=T.call(Le),Le.push(bt)),At){var Qe={depth:Ue.depth};return pe(Ue,"quoteStyle")&&(Qe.quoteStyle=Ue.quoteStyle),$(ze,Qe,Te+1,Le)}return $(ze,Ue,Te+1,Le)}if(typeof ie=="function"&&!Ae(ie)){var nt=H(ie),dt=de(ie,$e);return"[Function"+(nt?": "+nt:" (anonymous)")+"]"+(dt.length>0?" { "+O.call(dt,", ")+" }":"")}if(J(ie)){var lt=G?v.call(String(ie),/^(Symbol\(.*\))_[^)]*$/,"$1"):z.call(ie);return typeof ie=="object"&&!G?o(lt):lt}if(Oe(ie)){for(var j="<"+_.call(String(ie.nodeName)),F=ie.attributes||[],ke=0;ke",j}if(Z(ie)){if(ie.length===0)return"[]";var Pe=de(ie,$e);return He&&!C(Pe)?"["+K(Pe,He)+"]":"[ "+O.call(Pe,", ")+" ]"}if(Y(ie)){var Me=de(ie,$e);return!("cause"in Error.prototype)&&"cause"in ie&&!he.call(ie,"cause")?"{ ["+String(ie)+"] "+O.call(w.call("[cause]: "+$e(ie.cause),Me),", ")+" }":Me.length===0?"["+String(ie)+"]":"{ ["+String(ie)+"] "+O.call(Me,", ")+" }"}if(typeof ie=="object"&&Xe){if(le&&typeof ie[le]=="function"&&ce)return ce(ie,{depth:tt-Te});if(Xe!=="symbol"&&typeof ie.inspect=="function")return ie.inspect()}if(be(ie)){var rt=[];return a&&a.call(ie,function(ze,bt){rt.push($e(bt,ie,!0)+" => "+$e(ze,ie))}),m("Map",s.call(ie),rt,He)}if(Q(ie)){var at=[];return t&&t.call(ie,function(ze){at.push($e(ze,ie))}),m("Set",r.call(ie),at,He)}if(ve(ie))return u("WeakMap");if(_e(ie))return u("WeakSet");if(Ee(ie))return u("WeakRef");if(oe(ie))return o($e(Number(ie)));if(re(ie))return o($e(U.call(ie)));if(X(ie))return o(b.call(ie));if(W(ie))return o($e(String(ie)));if(typeof window<"u"&&ie===window)return"{ [object Window] }";if(typeof globalThis<"u"&&ie===globalThis||typeof Wr<"u"&&ie===Wr)return"{ [object globalThis] }";if(!ue(ie)&&!Ae(ie)){var mt=de(ie,$e),Mt=ne?ne(ie)===Object.prototype:ie instanceof Object||ie.constructor===Object,zt=ie instanceof Object?"":"null prototype",Kt=!Mt&&q&&Object(ie)===ie&&q in ie?y.call(L(ie),8,-1):zt?"Object":"",Ht=Mt||typeof ie.constructor!="function"?"":ie.constructor.name?ie.constructor.name+" ":"",Et=Ht+(Kt||zt?"["+O.call(w.call([],Kt||[],zt||[]),": ")+"] ":"");return mt.length===0?Et+"{}":He?Et+"{"+K(mt,He)+"}":Et+"{ "+O.call(mt,", ")+" }"}return String(ie)};function B($,ie,Re){var Te=(Re.quoteStyle||ie)==="double"?'"':"'";return Te+$+Te}function ee($){return v.call(String($),/"/g,""")}function Z($){return L($)==="[object Array]"&&(!q||!(typeof $=="object"&&q in $))}function ue($){return L($)==="[object Date]"&&(!q||!(typeof $=="object"&&q in $))}function Ae($){return L($)==="[object RegExp]"&&(!q||!(typeof $=="object"&&q in $))}function Y($){return L($)==="[object Error]"&&(!q||!(typeof $=="object"&&q in $))}function W($){return L($)==="[object String]"&&(!q||!(typeof $=="object"&&q in $))}function oe($){return L($)==="[object Number]"&&(!q||!(typeof $=="object"&&q in $))}function X($){return L($)==="[object Boolean]"&&(!q||!(typeof $=="object"&&q in $))}function J($){if(G)return $&&typeof $=="object"&&$ instanceof Symbol;if(typeof $=="symbol")return!0;if(!$||typeof $!="object"||!z)return!1;try{return z.call($),!0}catch{}return!1}function re($){if(!$||typeof $!="object"||!U)return!1;try{return U.call($),!0}catch{}return!1}var we=Object.prototype.hasOwnProperty||function($){return $ in(this||Wr)};function pe($,ie){return we.call($,ie)}function L($){return E.call($)}function H($){if($.name)return $.name;var ie=x.call(S.call($),/^function\s*([\w$]+)/);return ie?ie[1]:null}function se($,ie){if($.indexOf)return $.indexOf(ie);for(var Re=0,Te=$.length;Reie.maxStringLength){var Re=$.length-ie.maxStringLength,Te="... "+Re+" more character"+(Re>1?"s":"");return fe(y.call($,0,ie.maxStringLength),ie)+Te}var Le=v.call(v.call($,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Be);return B(Le,"single",ie)}function Be($){var ie=$.charCodeAt(0),Re={8:"b",9:"t",10:"n",12:"f",13:"r"}[ie];return Re?"\\"+Re:"\\x"+(ie<16?"0":"")+A.call(ie.toString(16))}function o($){return"Object("+$+")"}function u($){return $+" { ? }"}function m($,ie,Re,Te){var Le=Te?K(Re,Te):O.call(Re,", ");return $+" ("+ie+") {"+Le+"}"}function C($){for(var ie=0;ie<$.length;ie++)if(se($[ie],` `)>=0)return!1;return!0}function N($,ie){var Re;if($.indent===" ")Re=" ";else if(typeof $.indent=="number"&&$.indent>0)Re=O.call(Array($.indent+1)," ");else return null;return{base:Re,prev:O.call(Array(ie+1),Re)}}function K($,ie){if($.length===0)return"";var Re=` diff --git a/packages/modules/web_themes/koala/web/assets/store-init-B2y2b7C6.js b/packages/modules/web_themes/koala/web/assets/store-init-B2y2b7C6.js new file mode 100644 index 0000000000..a81adfa1e5 --- /dev/null +++ b/packages/modules/web_themes/koala/web/assets/store-init-B2y2b7C6.js @@ -0,0 +1 @@ +import{b as t}from"./index-BffAdZ7B.js";import{u as o}from"./mqtt-store-2RAlxljy.js";const s=t(()=>{o().initialize()});export{s as default}; diff --git a/packages/modules/web_themes/koala/web/assets/store-init-WQ5XFokr.js b/packages/modules/web_themes/koala/web/assets/store-init-WQ5XFokr.js deleted file mode 100644 index 91b42befd8..0000000000 --- a/packages/modules/web_themes/koala/web/assets/store-init-WQ5XFokr.js +++ /dev/null @@ -1 +0,0 @@ -import{b as t}from"./index-DQS_YrrO.js";import{u as o}from"./mqtt-store-N-bUJWDJ.js";const s=t(()=>{o().initialize()});export{s as default}; diff --git a/packages/modules/web_themes/koala/web/index.html b/packages/modules/web_themes/koala/web/index.html index 194de97592..f49e0412ad 100644 --- a/packages/modules/web_themes/koala/web/index.html +++ b/packages/modules/web_themes/koala/web/index.html @@ -1,3 +1,3 @@ -openWB +openWB
\ No newline at end of file From 7445f2bafb61736dffdaf0b0adb26b7b4b0ea681 Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:53:31 +0200 Subject: [PATCH 10/42] Scheduled charging (#2688) * fix corrupt plans * uncomment * flake8 --- packages/helpermodules/command.py | 23 +++---- packages/helpermodules/update_config.py | 92 ++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 15 deletions(-) diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index d75438229f..1eadb9705a 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -81,20 +81,15 @@ def _get_max_ids(self) -> None: max_id = default for topic, payload in received_topics.items(): if re.search(topic_str, topic) is not None: - try: - if id_topic == "autolock_plan": - for plan in payload["autolock"]["plans"]: - max_id = max(plan["id"], max_id) - elif id_topic == "charge_template_scheduled_plan": - for plan in payload["chargemode"]["scheduled_charging"]["plans"]: - max_id = max(plan["id"], max_id) - elif id_topic == "charge_template_time_charging_plan": - for plan in payload["time_charging"]["plans"]: - max_id = max(plan["id"], max_id) - except KeyError: - # überspringe Profile, die keinen Eintrag für Pläne haben. - # Da gab es einen Bug beim Kopieren. - pass + if id_topic == "autolock_plan": + for plan in payload["autolock"]["plans"]: + max_id = max(plan["id"], max_id) + elif id_topic == "charge_template_scheduled_plan": + for plan in payload["chargemode"]["scheduled_charging"]["plans"]: + max_id = max(plan["id"], max_id) + elif id_topic == "charge_template_time_charging_plan": + for plan in payload["time_charging"]["plans"]: + max_id = max(plan["id"], max_id) setattr(self, f'max_id_{id_topic}', max_id) Pub().pub("openWB/set/command/max_id/"+id_topic, max_id) for id_topic, topic_str, default in self.MAX_IDS["topic"]: diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index b51e6dbf9c..f5ce2c377b 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -57,7 +57,7 @@ class UpdateConfig: - DATASTORE_VERSION = 93 + DATASTORE_VERSION = 94 valid_topic = [ "^openWB/bat/config/bat_control_permitted$", @@ -2425,3 +2425,93 @@ def upgrade(topic: str, payload) -> Optional[dict]: return {topic: payload} self._loop_all_received_topics(upgrade) self.__update_topic("openWB/system/datastore_version", 93) + + def upgrade_datastore_93(self) -> None: + # Pläne die keinen plans Key haben, id=None + max_id = -1 + none_id = False + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/vehicle/template/charge_template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + try: + for plan in payload["chargemode"]["scheduled_charging"]["plans"]: + try: + max_id = max(plan["id"], max_id) + except TypeError: + if plan["id"] is None: + none_id = True + else: + raise TypeError(f"Plan {plan} hat keinen Key 'id' und ist kein NoneType.") + except KeyError: + payload["chargemode"]["scheduled_charging"].update({"plans": []}) + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/vehicle/template/charge_template/{get_index(topic)}", payload) + if none_id: + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/vehicle/template/charge_template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + for plan in payload["chargemode"]["scheduled_charging"]["plans"]: + if plan["id"] is None: + plan["id"] = max_id + 1 + max_id += 1 + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/vehicle/template/charge_template/{get_index(topic)}", payload) + + max_id = -1 + none_id = False + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/vehicle/template/charge_template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + try: + for plan in payload["time_charging"]["plans"]: + try: + max_id = max(plan["id"], max_id) + except TypeError: + if plan["id"] is None: + none_id = True + else: + raise TypeError(f"Plan {plan} hat keinen Key 'id' und ist kein NoneType.") + except KeyError: + payload["time_charging"].update({"plans": []}) + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/vehicle/template/charge_template/{get_index(topic)}", payload) + if none_id: + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/vehicle/template/charge_template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + for plan in payload["time_charging"]["plans"]: + if plan["id"] is None: + plan["id"] = max_id + 1 + max_id += 1 + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/vehicle/template/charge_template/{get_index(topic)}", payload) + + max_id = -1 + none_id = False + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/chargepoint/template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + try: + for plan in payload["autolock"]["plans"]: + try: + max_id = max(plan["id"], max_id) + except TypeError: + if plan["id"] is None: + none_id = True + else: + raise TypeError(f"Plan {plan} hat keinen Key 'id' und ist kein NoneType.") + except KeyError: + payload["autolock"].update({"plans": []}) + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/chargepoint/template/{get_index(topic)}", payload) + if none_id: + for topic, payload in self.all_received_topics.items(): + if re.search("openWB/chargepoint/template/[0-9]+$", topic) is not None: + payload = decode_payload(payload) + for plan in payload["autolock"]["plans"]: + if plan["id"] is None: + plan["id"] = max_id + 1 + max_id += 1 + self.all_received_topics[topic] = json.dumps(payload, ensure_ascii=False).encode("utf-8") + Pub().pub(f"openWB/set/chargepoint/template/{get_index(topic)}", payload) + self.__update_topic("openWB/system/datastore_version", 94) From 42a6b9d265f3e4503ddf82e67091d2f3844f493a Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:32:51 +0200 Subject: [PATCH 11/42] build UI (#2690) --- .../assets/{ChargeLog-e7acf03d.js => ChargeLog-036b633c.js} | 2 +- ...allation-4bbfab0c.js => ChargePointInstallation-0bbbc31c.js} | 2 +- web/settings/assets/{Chart-899aaa0c.js => Chart-8895dc32.js} | 2 +- .../assets/{CloudConfig-74bbfdff.js => CloudConfig-968a3074.js} | 2 +- .../{DataManagement-337c2c94.js => DataManagement-6ae64151.js} | 2 +- .../assets/{DebugConfig-f413af66.js => DebugConfig-80e2cdf1.js} | 2 +- ...ChargeConfig-f5f65896.js => GeneralChargeConfig-4eeb378a.js} | 2 +- .../{GeneralConfig-1aa02fdc.js => GeneralConfig-b20b00f2.js} | 2 +- ...nstallation-6515151f.js => HardwareInstallation-c5885604.js} | 2 +- ...ationConfig-ed3f2bff.js => IdentificationConfig-83719926.js} | 2 +- ...nstallAssistant-ad73a366.js => InstallAssistant-ebc6d414.js} | 2 +- ...stantStep0-4316f81d.js => InstallAssistantStep0-136d436d.js} | 2 +- ...stantStep1-2c79328f.js => InstallAssistantStep1-2b912516.js} | 2 +- ...antStep10-b27cf512.js => InstallAssistantStep10-832ca0fb.js} | 2 +- ...stantStep2-4bb75653.js => InstallAssistantStep2-ef61c521.js} | 2 +- ...stantStep3-c4997725.js => InstallAssistantStep3-e93db963.js} | 2 +- ...stantStep4-abf0a08d.js => InstallAssistantStep4-32729289.js} | 2 +- ...tStep4.1-98043578.js => InstallAssistantStep4.1-9118c7fc.js} | 2 +- ...stantStep5-ee0ba959.js => InstallAssistantStep5-4f5376eb.js} | 2 +- ...stantStep6-60f17c70.js => InstallAssistantStep6-5462c71a.js} | 2 +- ...stantStep7-881db088.js => InstallAssistantStep7-770032ea.js} | 2 +- ...stantStep8-174b8e4b.js => InstallAssistantStep8-10142ea9.js} | 2 +- ...stantStep9-21d7f4da.js => InstallAssistantStep9-491da28b.js} | 2 +- ...ate-27c622cd.js => InstallAssistantStepTemplate-e058d6c6.js} | 2 +- .../assets/{IoConfig-83896e35.js => IoConfig-f463e4c2.js} | 2 +- .../{LegalSettings-0495f43d.js => LegalSettings-91c84c8b.js} | 2 +- ...ementConfig-9ba2529d.js => LoadManagementConfig-93e246a9.js} | 2 +- ...qttBridgeConfig-0cb3253c.js => MqttBridgeConfig-3fd6be01.js} | 2 +- ...bSortableList-227b0e79.js => OpenwbSortableList-0c9bfbcf.js} | 2 +- ...nalComponents-eab310e0.js => OptionalComponents-5a739fed.js} | 2 +- .../{PVChargeConfig-e427d7a6.js => PVChargeConfig-22a027f2.js} | 2 +- web/settings/assets/{Status-f48d27b8.js => Status-9c9c8fbe.js} | 2 +- .../assets/{Support-d39bee6a.js => Support-1b1bf87d.js} | 2 +- web/settings/assets/{System-5b07ce9f.js => System-6050454e.js} | 2 +- .../{TestingStore-be12c671.js => TestingStore-9ee088d7.js} | 2 +- .../{VehicleConfig-2e0daf8e.js => VehicleConfig-d6afdbf7.js} | 2 +- .../{backup_cloud-08aafac7.js => backup_cloud-3f7ed752.js} | 2 +- .../{backup_cloud-436cb5f2.js => backup_cloud-638ca88c.js} | 2 +- .../{backup_cloud-170635e1.js => backup_cloud-dbe8cfeb.js} | 2 +- .../{backup_cloud-acb80510.js => backup_cloud-fbb1f20b.js} | 2 +- web/settings/assets/{bat-b9d525a8.js => bat-099bdc33.js} | 2 +- web/settings/assets/{bat-3999cc82.js => bat-15f709a3.js} | 2 +- web/settings/assets/{bat-4626ba65.js => bat-17034055.js} | 2 +- web/settings/assets/{bat-ff0fd7a4.js => bat-25fd3dc5.js} | 2 +- web/settings/assets/{bat-bfa3303d.js => bat-2665ec8d.js} | 2 +- web/settings/assets/{bat-845f69cb.js => bat-335bdc21.js} | 2 +- web/settings/assets/{bat-a037c1ad.js => bat-5b4283f7.js} | 2 +- web/settings/assets/{bat-2f1c9807.js => bat-608d4690.js} | 2 +- web/settings/assets/{bat-f9655da7.js => bat-68705b91.js} | 2 +- web/settings/assets/{bat-f2c5f46a.js => bat-6e434c5a.js} | 2 +- web/settings/assets/{bat-2429ce05.js => bat-732436f9.js} | 2 +- web/settings/assets/{bat-37c3cc3b.js => bat-7a097c4b.js} | 2 +- web/settings/assets/{bat-43e9cde4.js => bat-82d8349c.js} | 2 +- web/settings/assets/{bat-0b64db60.js => bat-a22314d2.js} | 2 +- web/settings/assets/{bat-6b9fff6c.js => bat-a845e12a.js} | 2 +- web/settings/assets/{bat-513d9188.js => bat-b9569430.js} | 2 +- web/settings/assets/{bat-ccce56c3.js => bat-ce2850ac.js} | 2 +- web/settings/assets/{bat-ba22f76f.js => bat-e3a33070.js} | 2 +- web/settings/assets/{bat-5ef99d8c.js => bat-e3d6b389.js} | 2 +- web/settings/assets/{bat-b7a74be0.js => bat-e3fd925f.js} | 2 +- web/settings/assets/{bat-58a85a8c.js => bat-ef0647b4.js} | 2 +- web/settings/assets/{bat-3c83952b.js => bat-ff9285e5.js} | 2 +- ...at_smart_energy-35671b9e.js => bat_smart_energy-a6558c75.js} | 2 +- .../assets/{chargePoint-3411e592.js => chargePoint-26fb010d.js} | 2 +- .../assets/{chargePoint-64ce2ff0.js => chargePoint-340264ad.js} | 2 +- .../assets/{chargePoint-d31da4cb.js => chargePoint-4d4e8f32.js} | 2 +- .../assets/{chargePoint-4a3d6c03.js => chargePoint-4f30817e.js} | 2 +- .../assets/{chargePoint-2e5fe02e.js => chargePoint-8ba070ce.js} | 2 +- .../assets/{chargePoint-2e02c1d8.js => chargePoint-b12c58ac.js} | 2 +- .../assets/{chargePoint-ca1cba52.js => chargePoint-e9658d8c.js} | 2 +- .../assets/{commands-9cc92488.js => commands-4dc6f12c.js} | 2 +- .../assets/{commands-6e8b9876.js => commands-4e783bf2.js} | 2 +- ...tion_counter-28c4feb4.js => consumption_counter-4bbfd158.js} | 2 +- .../assets/{counter-6cd21185.js => counter-065e6a09.js} | 2 +- .../assets/{counter-a762a464.js => counter-0982dddf.js} | 2 +- .../assets/{counter-0d3d09ba.js => counter-0f6f7bb9.js} | 2 +- .../assets/{counter-9ab1cf22.js => counter-1057215a.js} | 2 +- .../assets/{counter-95df2c21.js => counter-2799fe18.js} | 2 +- .../assets/{counter-87234fb2.js => counter-2a92287b.js} | 2 +- .../assets/{counter-98126cfc.js => counter-2f1da19e.js} | 2 +- .../assets/{counter-1ada1a81.js => counter-2f20e75a.js} | 2 +- .../assets/{counter-034d35d7.js => counter-335604bd.js} | 2 +- .../assets/{counter-a35b5fec.js => counter-37b8e5fd.js} | 2 +- .../assets/{counter-701a2c72.js => counter-44a15c7a.js} | 2 +- .../assets/{counter-d606c310.js => counter-44f87579.js} | 2 +- .../assets/{counter-15a40a05.js => counter-48265ea7.js} | 2 +- .../assets/{counter-da1dd0be.js => counter-4c652758.js} | 2 +- .../assets/{counter-a327434b.js => counter-4cbc5b0e.js} | 2 +- .../assets/{counter-03d43b57.js => counter-53052143.js} | 2 +- .../assets/{counter-43bb176d.js => counter-66ea4344.js} | 2 +- .../assets/{counter-3b3df318.js => counter-6727feee.js} | 2 +- .../assets/{counter-241c338f.js => counter-6d0ba49a.js} | 2 +- .../assets/{counter-8a0376f6.js => counter-703e8d71.js} | 2 +- .../assets/{counter-7a682293.js => counter-86ccfa9b.js} | 2 +- .../assets/{counter-f01de2ea.js => counter-8d8fa05d.js} | 2 +- .../assets/{counter-f8177ec2.js => counter-941f010e.js} | 2 +- .../assets/{counter-942689fa.js => counter-98a3b8b5.js} | 2 +- .../assets/{counter-c26c7ca0.js => counter-a1135f1c.js} | 2 +- .../assets/{counter-c0da35a2.js => counter-b5dc9c36.js} | 2 +- .../assets/{counter-06424364.js => counter-c9b79b3a.js} | 2 +- .../assets/{counter-ad41b953.js => counter-cd25d9ff.js} | 2 +- .../assets/{counter-16da78bb.js => counter-d16370ae.js} | 2 +- .../assets/{counter-5b6331d0.js => counter-e04e4842.js} | 2 +- .../assets/{counter-51e1f0a5.js => counter-e2f7fa47.js} | 2 +- .../assets/{counter-778d0562.js => counter-e528f0b4.js} | 2 +- .../assets/{counter-6b70c1c4.js => counter-ed9f91cc.js} | 2 +- .../assets/{counter-593a07d0.js => counter-ef1c082d.js} | 2 +- .../assets/{counter-925dec2d.js => counter-f0b83364.js} | 2 +- ..._consumption-452fb197.js => counter_consumption-c0ced540.js} | 2 +- .../assets/{counter_sm-5e4b1fe5.js => counter_sm-4e8cbdf3.js} | 2 +- web/settings/assets/{device-f1d14f4e.js => device-04023927.js} | 2 +- web/settings/assets/{device-37b882f6.js => device-0a768509.js} | 2 +- web/settings/assets/{device-3caedbbd.js => device-1015d6b8.js} | 2 +- web/settings/assets/{device-0c3fc809.js => device-1284e8ee.js} | 2 +- web/settings/assets/{device-cad9fdab.js => device-15d1779e.js} | 2 +- web/settings/assets/{device-6c438877.js => device-182017ef.js} | 2 +- web/settings/assets/{device-c1e4152e.js => device-19bdcd55.js} | 2 +- web/settings/assets/{device-faa95e47.js => device-1e74037a.js} | 2 +- web/settings/assets/{device-90a7548e.js => device-206b02e6.js} | 2 +- web/settings/assets/{device-0f31e958.js => device-215a78fc.js} | 2 +- web/settings/assets/{device-630d88cd.js => device-25fe183a.js} | 2 +- web/settings/assets/{device-6e2f0696.js => device-28431aec.js} | 2 +- web/settings/assets/{device-77829da3.js => device-2b2b66a7.js} | 2 +- web/settings/assets/{device-b915ee50.js => device-2dda66a4.js} | 2 +- web/settings/assets/{device-07e03083.js => device-3073bb5b.js} | 2 +- web/settings/assets/{device-e93f3043.js => device-33b15226.js} | 2 +- web/settings/assets/{device-66218d05.js => device-33c872fb.js} | 2 +- web/settings/assets/{device-ede5926f.js => device-370e0fd6.js} | 2 +- web/settings/assets/{device-e4446102.js => device-3a3324ec.js} | 2 +- web/settings/assets/{device-48658977.js => device-3c447af1.js} | 2 +- web/settings/assets/{device-b6b82861.js => device-3fc427db.js} | 2 +- web/settings/assets/{device-48744246.js => device-413917f9.js} | 2 +- web/settings/assets/{device-78619adc.js => device-4879d7da.js} | 2 +- web/settings/assets/{device-f14cbc13.js => device-4df843fe.js} | 2 +- web/settings/assets/{device-dae4911e.js => device-5c2c62d2.js} | 2 +- web/settings/assets/{device-6065b001.js => device-605fe75f.js} | 2 +- web/settings/assets/{device-a8b3ffa0.js => device-6964d64c.js} | 2 +- web/settings/assets/{device-c6a5b18f.js => device-69ee5a6e.js} | 2 +- web/settings/assets/{device-70a2865d.js => device-6fe5ae18.js} | 2 +- web/settings/assets/{device-fcb0b9c0.js => device-72ce9ff7.js} | 2 +- web/settings/assets/{device-723e5136.js => device-73249dc7.js} | 2 +- web/settings/assets/{device-7dbbe461.js => device-75a17a50.js} | 2 +- web/settings/assets/{device-fef9b6f6.js => device-77ffaea9.js} | 2 +- web/settings/assets/{device-891343b7.js => device-81c64562.js} | 2 +- web/settings/assets/{device-9c39a93c.js => device-84825ea3.js} | 2 +- web/settings/assets/{device-cbcf5efd.js => device-856f00da.js} | 2 +- web/settings/assets/{device-a705c660.js => device-8f001307.js} | 2 +- web/settings/assets/{device-ad797bf7.js => device-903c3f36.js} | 2 +- web/settings/assets/{device-9c1661fe.js => device-90c5f8d5.js} | 2 +- web/settings/assets/{device-3446cb73.js => device-93dded40.js} | 2 +- web/settings/assets/{device-793ea822.js => device-96f13c7c.js} | 2 +- web/settings/assets/{device-6aa86d28.js => device-98941275.js} | 2 +- web/settings/assets/{device-4749b385.js => device-9bc4a595.js} | 2 +- web/settings/assets/{device-d4bdb914.js => device-9c316aba.js} | 2 +- web/settings/assets/{device-6e2ecab6.js => device-a575b2a2.js} | 2 +- web/settings/assets/{device-38d5b6fd.js => device-aaec1882.js} | 2 +- web/settings/assets/{device-c057d288.js => device-b105c9f2.js} | 2 +- web/settings/assets/{device-d2e67bbb.js => device-b226b08b.js} | 2 +- web/settings/assets/{device-7ba6df48.js => device-b3e5aa26.js} | 2 +- web/settings/assets/{device-6dbd2fd0.js => device-b7481224.js} | 2 +- web/settings/assets/{device-4faa8341.js => device-b7b2d824.js} | 2 +- web/settings/assets/{device-0a55e2f7.js => device-b852f0b7.js} | 2 +- web/settings/assets/{device-f626b3aa.js => device-bc261e31.js} | 2 +- web/settings/assets/{device-b028c583.js => device-be2a33ff.js} | 2 +- web/settings/assets/{device-40e95f0e.js => device-bec082f0.js} | 2 +- web/settings/assets/{device-63843d32.js => device-c027752a.js} | 2 +- web/settings/assets/{device-5e2f3c97.js => device-c44ebb29.js} | 2 +- web/settings/assets/{device-75d75106.js => device-ca9f4f83.js} | 2 +- web/settings/assets/{device-838dac1d.js => device-d51aa532.js} | 2 +- web/settings/assets/{device-952016bf.js => device-d52216af.js} | 2 +- web/settings/assets/{device-0bc39379.js => device-daca66ac.js} | 2 +- web/settings/assets/{device-e138ac10.js => device-e145cf9a.js} | 2 +- web/settings/assets/{device-3e65a99e.js => device-e2b16e99.js} | 2 +- web/settings/assets/{device-46241bf0.js => device-e813b901.js} | 2 +- web/settings/assets/{device-7352834a.js => device-ec524a18.js} | 2 +- web/settings/assets/{device-85ba0d9e.js => device-ee42d18f.js} | 2 +- web/settings/assets/{device-5457868d.js => device-f6872f3b.js} | 2 +- web/settings/assets/{device-8f44d501.js => device-f8776d02.js} | 2 +- web/settings/assets/{device-44136cf2.js => device-f95c742c.js} | 2 +- web/settings/assets/{device-1439cbf1.js => device-fa648133.js} | 2 +- web/settings/assets/{device-2d12e320.js => device-fb0b197d.js} | 2 +- web/settings/assets/{device-789bc206.js => device-fb34332c.js} | 2 +- web/settings/assets/{device-51fb9fdb.js => device-fcd8dd54.js} | 2 +- web/settings/assets/{device-8a6b31ac.js => device-fe490678.js} | 2 +- .../{displayTheme-c2dceb48.js => displayTheme-1f129bcc.js} | 2 +- .../{displayTheme-178db1df.js => displayTheme-82cce4cb.js} | 2 +- ...ricity_tariff-b497922e.js => electricity_tariff-13289243.js} | 2 +- ...ricity_tariff-0d25f98f.js => electricity_tariff-20391f2e.js} | 2 +- ...ricity_tariff-d0edfdb4.js => electricity_tariff-404b0387.js} | 2 +- ...ricity_tariff-2304915c.js => electricity_tariff-60e8d417.js} | 2 +- ...ricity_tariff-f3b38e11.js => electricity_tariff-81e0b18f.js} | 2 +- ...ricity_tariff-bde56165.js => electricity_tariff-8a83e04d.js} | 2 +- ...ricity_tariff-030b73c0.js => electricity_tariff-c0643ee5.js} | 2 +- ...ricity_tariff-ed71dfac.js => electricity_tariff-db82b684.js} | 2 +- ...ernal_inverter-8207d928.js => external_inverter-e6cea795.js} | 2 +- web/settings/assets/{index-e4c17b07.js => index-2eee0632.js} | 2 +- .../assets/{inverter-e1663f22.js => inverter-06962b94.js} | 2 +- .../assets/{inverter-e08e7a01.js => inverter-07496b6f.js} | 2 +- .../assets/{inverter-eb5fcf99.js => inverter-0f2a7689.js} | 2 +- .../assets/{inverter-95466897.js => inverter-21915fb8.js} | 2 +- .../assets/{inverter-df3fe723.js => inverter-2b9f64f8.js} | 2 +- .../assets/{inverter-878637c0.js => inverter-2d9ed7ea.js} | 2 +- .../assets/{inverter-84d0a3ba.js => inverter-3e299854.js} | 2 +- .../assets/{inverter-da060ce6.js => inverter-3e76de97.js} | 2 +- .../assets/{inverter-3e8be295.js => inverter-46416042.js} | 2 +- .../assets/{inverter-0852f06a.js => inverter-4fdb3854.js} | 2 +- .../assets/{inverter-208d8966.js => inverter-582ecbdb.js} | 2 +- .../assets/{inverter-ad33b033.js => inverter-5c52c18e.js} | 2 +- .../assets/{inverter-c97efa3a.js => inverter-64474ae0.js} | 2 +- .../assets/{inverter-3dafbe7c.js => inverter-6837c698.js} | 2 +- .../assets/{inverter-c68c3b52.js => inverter-816dc1c7.js} | 2 +- .../assets/{inverter-4b55caa6.js => inverter-84d8bbbe.js} | 2 +- .../assets/{inverter-fd208841.js => inverter-95af7742.js} | 2 +- .../assets/{inverter-fe7c6fda.js => inverter-9f1c12f2.js} | 2 +- .../assets/{inverter-8afb296d.js => inverter-a8bb5951.js} | 2 +- .../assets/{inverter-e4584f68.js => inverter-a9d5f19e.js} | 2 +- .../assets/{inverter-f0a34520.js => inverter-af6e5fbe.js} | 2 +- .../assets/{inverter-f432c082.js => inverter-b342fcab.js} | 2 +- .../assets/{inverter-c71098f4.js => inverter-be42a1ae.js} | 2 +- .../assets/{inverter-10de1272.js => inverter-d8829496.js} | 2 +- .../assets/{inverter-1a358f95.js => inverter-d9cb7f23.js} | 2 +- .../assets/{inverter-b57300f5.js => inverter-e86414ee.js} | 2 +- .../assets/{inverter-0d5f082e.js => inverter-eebadf23.js} | 2 +- .../assets/{inverter-236b1784.js => inverter-ef0228b0.js} | 2 +- .../assets/{inverter-3de69e58.js => inverter-f4f8eb31.js} | 2 +- .../assets/{inverter-fc51cd0b.js => inverter-fc863d2a.js} | 2 +- .../assets/{inverter-36706c9a.js => inverter-fdc3fcb1.js} | 2 +- ...ter_secondary-62644358.js => inverter_secondary-06336d06.js} | 2 +- .../assets/{io_action-b9cbb026.js => io_action-463b6914.js} | 2 +- .../assets/{io_action-e0e64896.js => io_action-7bd7a97f.js} | 2 +- .../assets/{io_action-c0bcbb6c.js => io_action-bdac70f1.js} | 2 +- .../assets/{io_action-976bf2b0.js => io_action-ed20fe66.js} | 2 +- .../assets/{io_device-ff6641fb.js => io_device-8d69d696.js} | 2 +- .../assets/{io_device-9ff50b11.js => io_device-e732c7fa.js} | 2 +- .../assets/{monitoring-8ab638da.js => monitoring-e58bdea3.js} | 2 +- .../assets/{vehicle-081d1860.js => vehicle-0ddcea52.js} | 2 +- .../assets/{vehicle-d5f041d0.js => vehicle-0fbea598.js} | 2 +- .../assets/{vehicle-f5091955.js => vehicle-11565bbb.js} | 2 +- .../assets/{vehicle-54d21a19.js => vehicle-13675add.js} | 2 +- .../assets/{vehicle-e22aaad0.js => vehicle-1bde8cf1.js} | 2 +- .../assets/{vehicle-bc9278d5.js => vehicle-3288206c.js} | 2 +- .../assets/{vehicle-4ee84148.js => vehicle-3a2ce5a8.js} | 2 +- .../assets/{vehicle-fa5f8129.js => vehicle-3a8c6a3b.js} | 2 +- .../assets/{vehicle-3688de48.js => vehicle-5da275c6.js} | 2 +- web/settings/assets/vehicle-62ddb254.js | 1 - .../assets/{vehicle-b55a7355.js => vehicle-64bfc69a.js} | 2 +- .../assets/{vehicle-ce15b972.js => vehicle-6d1ae41c.js} | 2 +- .../assets/{vehicle-81c54b19.js => vehicle-79879d28.js} | 2 +- .../assets/{vehicle-aa814b6d.js => vehicle-8e6d439c.js} | 2 +- .../assets/{vehicle-a44392fc.js => vehicle-916e09c5.js} | 2 +- .../assets/{vehicle-a08311d0.js => vehicle-93664b48.js} | 2 +- .../assets/{vehicle-2e31f054.js => vehicle-9482d119.js} | 2 +- web/settings/assets/vehicle-a97ad9e3.js | 1 + .../assets/{vehicle-02f99327.js => vehicle-b10f3057.js} | 2 +- .../assets/{vehicle-552086ad.js => vehicle-b78c41a7.js} | 2 +- .../assets/{vehicle-5bf23959.js => vehicle-c6f30989.js} | 2 +- .../assets/{vehicle-b6b40aa6.js => vehicle-f779e07f.js} | 2 +- .../assets/{webTheme-9c8ff1fc.js => webTheme-244336f6.js} | 2 +- .../assets/{webTheme-526f053f.js => webTheme-e5349504.js} | 2 +- web/settings/index.html | 2 +- 260 files changed, 259 insertions(+), 259 deletions(-) rename web/settings/assets/{ChargeLog-e7acf03d.js => ChargeLog-036b633c.js} (99%) rename web/settings/assets/{ChargePointInstallation-4bbfab0c.js => ChargePointInstallation-0bbbc31c.js} (94%) rename web/settings/assets/{Chart-899aaa0c.js => Chart-8895dc32.js} (99%) rename web/settings/assets/{CloudConfig-74bbfdff.js => CloudConfig-968a3074.js} (99%) rename web/settings/assets/{DataManagement-337c2c94.js => DataManagement-6ae64151.js} (97%) rename web/settings/assets/{DebugConfig-f413af66.js => DebugConfig-80e2cdf1.js} (99%) rename web/settings/assets/{GeneralChargeConfig-f5f65896.js => GeneralChargeConfig-4eeb378a.js} (92%) rename web/settings/assets/{GeneralConfig-1aa02fdc.js => GeneralConfig-b20b00f2.js} (98%) rename web/settings/assets/{HardwareInstallation-6515151f.js => HardwareInstallation-c5885604.js} (67%) rename web/settings/assets/{IdentificationConfig-ed3f2bff.js => IdentificationConfig-83719926.js} (99%) rename web/settings/assets/{InstallAssistant-ad73a366.js => InstallAssistant-ebc6d414.js} (64%) rename web/settings/assets/{InstallAssistantStep0-4316f81d.js => InstallAssistantStep0-136d436d.js} (95%) rename web/settings/assets/{InstallAssistantStep1-2c79328f.js => InstallAssistantStep1-2b912516.js} (89%) rename web/settings/assets/{InstallAssistantStep10-b27cf512.js => InstallAssistantStep10-832ca0fb.js} (91%) rename web/settings/assets/{InstallAssistantStep2-4bb75653.js => InstallAssistantStep2-ef61c521.js} (90%) rename web/settings/assets/{InstallAssistantStep3-c4997725.js => InstallAssistantStep3-e93db963.js} (91%) rename web/settings/assets/{InstallAssistantStep4-abf0a08d.js => InstallAssistantStep4-32729289.js} (91%) rename web/settings/assets/{InstallAssistantStep4.1-98043578.js => InstallAssistantStep4.1-9118c7fc.js} (90%) rename web/settings/assets/{InstallAssistantStep5-ee0ba959.js => InstallAssistantStep5-4f5376eb.js} (92%) rename web/settings/assets/{InstallAssistantStep6-60f17c70.js => InstallAssistantStep6-5462c71a.js} (94%) rename web/settings/assets/{InstallAssistantStep7-881db088.js => InstallAssistantStep7-770032ea.js} (91%) rename web/settings/assets/{InstallAssistantStep8-174b8e4b.js => InstallAssistantStep8-10142ea9.js} (93%) rename web/settings/assets/{InstallAssistantStep9-21d7f4da.js => InstallAssistantStep9-491da28b.js} (90%) rename web/settings/assets/{InstallAssistantStepTemplate-27c622cd.js => InstallAssistantStepTemplate-e058d6c6.js} (97%) rename web/settings/assets/{IoConfig-83896e35.js => IoConfig-f463e4c2.js} (94%) rename web/settings/assets/{LegalSettings-0495f43d.js => LegalSettings-91c84c8b.js} (97%) rename web/settings/assets/{LoadManagementConfig-9ba2529d.js => LoadManagementConfig-93e246a9.js} (98%) rename web/settings/assets/{MqttBridgeConfig-0cb3253c.js => MqttBridgeConfig-3fd6be01.js} (99%) rename web/settings/assets/{OpenwbSortableList-227b0e79.js => OpenwbSortableList-0c9bfbcf.js} (97%) rename web/settings/assets/{OptionalComponents-eab310e0.js => OptionalComponents-5a739fed.js} (95%) rename web/settings/assets/{PVChargeConfig-e427d7a6.js => PVChargeConfig-22a027f2.js} (99%) rename web/settings/assets/{Status-f48d27b8.js => Status-9c9c8fbe.js} (99%) rename web/settings/assets/{Support-d39bee6a.js => Support-1b1bf87d.js} (99%) rename web/settings/assets/{System-5b07ce9f.js => System-6050454e.js} (99%) rename web/settings/assets/{TestingStore-be12c671.js => TestingStore-9ee088d7.js} (98%) rename web/settings/assets/{VehicleConfig-2e0daf8e.js => VehicleConfig-d6afdbf7.js} (95%) rename web/settings/assets/{backup_cloud-08aafac7.js => backup_cloud-3f7ed752.js} (96%) rename web/settings/assets/{backup_cloud-436cb5f2.js => backup_cloud-638ca88c.js} (93%) rename web/settings/assets/{backup_cloud-170635e1.js => backup_cloud-dbe8cfeb.js} (92%) rename web/settings/assets/{backup_cloud-acb80510.js => backup_cloud-fbb1f20b.js} (84%) rename web/settings/assets/{bat-b9d525a8.js => bat-099bdc33.js} (88%) rename web/settings/assets/{bat-3999cc82.js => bat-15f709a3.js} (97%) rename web/settings/assets/{bat-4626ba65.js => bat-17034055.js} (83%) rename web/settings/assets/{bat-ff0fd7a4.js => bat-25fd3dc5.js} (91%) rename web/settings/assets/{bat-bfa3303d.js => bat-2665ec8d.js} (88%) rename web/settings/assets/{bat-845f69cb.js => bat-335bdc21.js} (91%) rename web/settings/assets/{bat-a037c1ad.js => bat-5b4283f7.js} (88%) rename web/settings/assets/{bat-2f1c9807.js => bat-608d4690.js} (95%) rename web/settings/assets/{bat-f9655da7.js => bat-68705b91.js} (86%) rename web/settings/assets/{bat-f2c5f46a.js => bat-6e434c5a.js} (97%) rename web/settings/assets/{bat-2429ce05.js => bat-732436f9.js} (87%) rename web/settings/assets/{bat-37c3cc3b.js => bat-7a097c4b.js} (88%) rename web/settings/assets/{bat-43e9cde4.js => bat-82d8349c.js} (87%) rename web/settings/assets/{bat-0b64db60.js => bat-a22314d2.js} (87%) rename web/settings/assets/{bat-6b9fff6c.js => bat-a845e12a.js} (84%) rename web/settings/assets/{bat-513d9188.js => bat-b9569430.js} (87%) rename web/settings/assets/{bat-ccce56c3.js => bat-ce2850ac.js} (88%) rename web/settings/assets/{bat-ba22f76f.js => bat-e3a33070.js} (87%) rename web/settings/assets/{bat-5ef99d8c.js => bat-e3d6b389.js} (89%) rename web/settings/assets/{bat-b7a74be0.js => bat-e3fd925f.js} (89%) rename web/settings/assets/{bat-58a85a8c.js => bat-ef0647b4.js} (89%) rename web/settings/assets/{bat-3c83952b.js => bat-ff9285e5.js} (87%) rename web/settings/assets/{bat_smart_energy-35671b9e.js => bat_smart_energy-a6558c75.js} (88%) rename web/settings/assets/{chargePoint-3411e592.js => chargePoint-26fb010d.js} (86%) rename web/settings/assets/{chargePoint-64ce2ff0.js => chargePoint-340264ad.js} (98%) rename web/settings/assets/{chargePoint-d31da4cb.js => chargePoint-4d4e8f32.js} (90%) rename web/settings/assets/{chargePoint-4a3d6c03.js => chargePoint-4f30817e.js} (90%) rename web/settings/assets/{chargePoint-2e5fe02e.js => chargePoint-8ba070ce.js} (92%) rename web/settings/assets/{chargePoint-2e02c1d8.js => chargePoint-b12c58ac.js} (90%) rename web/settings/assets/{chargePoint-ca1cba52.js => chargePoint-e9658d8c.js} (86%) rename web/settings/assets/{commands-9cc92488.js => commands-4dc6f12c.js} (94%) rename web/settings/assets/{commands-6e8b9876.js => commands-4e783bf2.js} (95%) rename web/settings/assets/{consumption_counter-28c4feb4.js => consumption_counter-4bbfd158.js} (93%) rename web/settings/assets/{counter-6cd21185.js => counter-065e6a09.js} (90%) rename web/settings/assets/{counter-a762a464.js => counter-0982dddf.js} (87%) rename web/settings/assets/{counter-0d3d09ba.js => counter-0f6f7bb9.js} (87%) rename web/settings/assets/{counter-9ab1cf22.js => counter-1057215a.js} (89%) rename web/settings/assets/{counter-95df2c21.js => counter-2799fe18.js} (91%) rename web/settings/assets/{counter-87234fb2.js => counter-2a92287b.js} (92%) rename web/settings/assets/{counter-98126cfc.js => counter-2f1da19e.js} (87%) rename web/settings/assets/{counter-1ada1a81.js => counter-2f20e75a.js} (87%) rename web/settings/assets/{counter-034d35d7.js => counter-335604bd.js} (82%) rename web/settings/assets/{counter-a35b5fec.js => counter-37b8e5fd.js} (90%) rename web/settings/assets/{counter-701a2c72.js => counter-44a15c7a.js} (86%) rename web/settings/assets/{counter-d606c310.js => counter-44f87579.js} (84%) rename web/settings/assets/{counter-15a40a05.js => counter-48265ea7.js} (90%) rename web/settings/assets/{counter-da1dd0be.js => counter-4c652758.js} (88%) rename web/settings/assets/{counter-a327434b.js => counter-4cbc5b0e.js} (90%) rename web/settings/assets/{counter-03d43b57.js => counter-53052143.js} (88%) rename web/settings/assets/{counter-43bb176d.js => counter-66ea4344.js} (92%) rename web/settings/assets/{counter-3b3df318.js => counter-6727feee.js} (84%) rename web/settings/assets/{counter-241c338f.js => counter-6d0ba49a.js} (87%) rename web/settings/assets/{counter-8a0376f6.js => counter-703e8d71.js} (87%) rename web/settings/assets/{counter-7a682293.js => counter-86ccfa9b.js} (88%) rename web/settings/assets/{counter-f01de2ea.js => counter-8d8fa05d.js} (85%) rename web/settings/assets/{counter-f8177ec2.js => counter-941f010e.js} (97%) rename web/settings/assets/{counter-942689fa.js => counter-98a3b8b5.js} (97%) rename web/settings/assets/{counter-c26c7ca0.js => counter-a1135f1c.js} (88%) rename web/settings/assets/{counter-c0da35a2.js => counter-b5dc9c36.js} (84%) rename web/settings/assets/{counter-06424364.js => counter-c9b79b3a.js} (88%) rename web/settings/assets/{counter-ad41b953.js => counter-cd25d9ff.js} (87%) rename web/settings/assets/{counter-16da78bb.js => counter-d16370ae.js} (86%) rename web/settings/assets/{counter-5b6331d0.js => counter-e04e4842.js} (86%) rename web/settings/assets/{counter-51e1f0a5.js => counter-e2f7fa47.js} (88%) rename web/settings/assets/{counter-778d0562.js => counter-e528f0b4.js} (96%) rename web/settings/assets/{counter-6b70c1c4.js => counter-ed9f91cc.js} (88%) rename web/settings/assets/{counter-593a07d0.js => counter-ef1c082d.js} (89%) rename web/settings/assets/{counter-925dec2d.js => counter-f0b83364.js} (92%) rename web/settings/assets/{counter_consumption-452fb197.js => counter_consumption-c0ced540.js} (90%) rename web/settings/assets/{counter_sm-5e4b1fe5.js => counter_sm-4e8cbdf3.js} (95%) rename web/settings/assets/{device-f1d14f4e.js => device-04023927.js} (96%) rename web/settings/assets/{device-37b882f6.js => device-0a768509.js} (87%) rename web/settings/assets/{device-3caedbbd.js => device-1015d6b8.js} (91%) rename web/settings/assets/{device-0c3fc809.js => device-1284e8ee.js} (90%) rename web/settings/assets/{device-cad9fdab.js => device-15d1779e.js} (91%) rename web/settings/assets/{device-6c438877.js => device-182017ef.js} (88%) rename web/settings/assets/{device-c1e4152e.js => device-19bdcd55.js} (90%) rename web/settings/assets/{device-faa95e47.js => device-1e74037a.js} (91%) rename web/settings/assets/{device-90a7548e.js => device-206b02e6.js} (96%) rename web/settings/assets/{device-0f31e958.js => device-215a78fc.js} (84%) rename web/settings/assets/{device-630d88cd.js => device-25fe183a.js} (87%) rename web/settings/assets/{device-6e2f0696.js => device-28431aec.js} (92%) rename web/settings/assets/{device-77829da3.js => device-2b2b66a7.js} (81%) rename web/settings/assets/{device-b915ee50.js => device-2dda66a4.js} (93%) rename web/settings/assets/{device-07e03083.js => device-3073bb5b.js} (85%) rename web/settings/assets/{device-e93f3043.js => device-33b15226.js} (87%) rename web/settings/assets/{device-66218d05.js => device-33c872fb.js} (88%) rename web/settings/assets/{device-ede5926f.js => device-370e0fd6.js} (92%) rename web/settings/assets/{device-e4446102.js => device-3a3324ec.js} (87%) rename web/settings/assets/{device-48658977.js => device-3c447af1.js} (84%) rename web/settings/assets/{device-b6b82861.js => device-3fc427db.js} (92%) rename web/settings/assets/{device-48744246.js => device-413917f9.js} (91%) rename web/settings/assets/{device-78619adc.js => device-4879d7da.js} (88%) rename web/settings/assets/{device-f14cbc13.js => device-4df843fe.js} (89%) rename web/settings/assets/{device-dae4911e.js => device-5c2c62d2.js} (91%) rename web/settings/assets/{device-6065b001.js => device-605fe75f.js} (91%) rename web/settings/assets/{device-a8b3ffa0.js => device-6964d64c.js} (87%) rename web/settings/assets/{device-c6a5b18f.js => device-69ee5a6e.js} (90%) rename web/settings/assets/{device-70a2865d.js => device-6fe5ae18.js} (92%) rename web/settings/assets/{device-fcb0b9c0.js => device-72ce9ff7.js} (87%) rename web/settings/assets/{device-723e5136.js => device-73249dc7.js} (95%) rename web/settings/assets/{device-7dbbe461.js => device-75a17a50.js} (92%) rename web/settings/assets/{device-fef9b6f6.js => device-77ffaea9.js} (91%) rename web/settings/assets/{device-891343b7.js => device-81c64562.js} (87%) rename web/settings/assets/{device-9c39a93c.js => device-84825ea3.js} (89%) rename web/settings/assets/{device-cbcf5efd.js => device-856f00da.js} (92%) rename web/settings/assets/{device-a705c660.js => device-8f001307.js} (91%) rename web/settings/assets/{device-ad797bf7.js => device-903c3f36.js} (89%) rename web/settings/assets/{device-9c1661fe.js => device-90c5f8d5.js} (91%) rename web/settings/assets/{device-3446cb73.js => device-93dded40.js} (92%) rename web/settings/assets/{device-793ea822.js => device-96f13c7c.js} (84%) rename web/settings/assets/{device-6aa86d28.js => device-98941275.js} (89%) rename web/settings/assets/{device-4749b385.js => device-9bc4a595.js} (92%) rename web/settings/assets/{device-d4bdb914.js => device-9c316aba.js} (84%) rename web/settings/assets/{device-6e2ecab6.js => device-a575b2a2.js} (89%) rename web/settings/assets/{device-38d5b6fd.js => device-aaec1882.js} (88%) rename web/settings/assets/{device-c057d288.js => device-b105c9f2.js} (84%) rename web/settings/assets/{device-d2e67bbb.js => device-b226b08b.js} (81%) rename web/settings/assets/{device-7ba6df48.js => device-b3e5aa26.js} (91%) rename web/settings/assets/{device-6dbd2fd0.js => device-b7481224.js} (84%) rename web/settings/assets/{device-4faa8341.js => device-b7b2d824.js} (94%) rename web/settings/assets/{device-0a55e2f7.js => device-b852f0b7.js} (81%) rename web/settings/assets/{device-f626b3aa.js => device-bc261e31.js} (87%) rename web/settings/assets/{device-b028c583.js => device-be2a33ff.js} (90%) rename web/settings/assets/{device-40e95f0e.js => device-bec082f0.js} (95%) rename web/settings/assets/{device-63843d32.js => device-c027752a.js} (87%) rename web/settings/assets/{device-5e2f3c97.js => device-c44ebb29.js} (92%) rename web/settings/assets/{device-75d75106.js => device-ca9f4f83.js} (91%) rename web/settings/assets/{device-838dac1d.js => device-d51aa532.js} (94%) rename web/settings/assets/{device-952016bf.js => device-d52216af.js} (96%) rename web/settings/assets/{device-0bc39379.js => device-daca66ac.js} (84%) rename web/settings/assets/{device-e138ac10.js => device-e145cf9a.js} (89%) rename web/settings/assets/{device-3e65a99e.js => device-e2b16e99.js} (83%) rename web/settings/assets/{device-46241bf0.js => device-e813b901.js} (89%) rename web/settings/assets/{device-7352834a.js => device-ec524a18.js} (86%) rename web/settings/assets/{device-85ba0d9e.js => device-ee42d18f.js} (91%) rename web/settings/assets/{device-5457868d.js => device-f6872f3b.js} (86%) rename web/settings/assets/{device-8f44d501.js => device-f8776d02.js} (84%) rename web/settings/assets/{device-44136cf2.js => device-f95c742c.js} (87%) rename web/settings/assets/{device-1439cbf1.js => device-fa648133.js} (92%) rename web/settings/assets/{device-2d12e320.js => device-fb0b197d.js} (92%) rename web/settings/assets/{device-789bc206.js => device-fb34332c.js} (91%) rename web/settings/assets/{device-51fb9fdb.js => device-fcd8dd54.js} (93%) rename web/settings/assets/{device-8a6b31ac.js => device-fe490678.js} (94%) rename web/settings/assets/{displayTheme-c2dceb48.js => displayTheme-1f129bcc.js} (98%) rename web/settings/assets/{displayTheme-178db1df.js => displayTheme-82cce4cb.js} (92%) rename web/settings/assets/{electricity_tariff-b497922e.js => electricity_tariff-13289243.js} (93%) rename web/settings/assets/{electricity_tariff-0d25f98f.js => electricity_tariff-20391f2e.js} (91%) rename web/settings/assets/{electricity_tariff-d0edfdb4.js => electricity_tariff-404b0387.js} (94%) rename web/settings/assets/{electricity_tariff-2304915c.js => electricity_tariff-60e8d417.js} (89%) rename web/settings/assets/{electricity_tariff-f3b38e11.js => electricity_tariff-81e0b18f.js} (98%) rename web/settings/assets/{electricity_tariff-bde56165.js => electricity_tariff-8a83e04d.js} (90%) rename web/settings/assets/{electricity_tariff-030b73c0.js => electricity_tariff-c0643ee5.js} (91%) rename web/settings/assets/{electricity_tariff-ed71dfac.js => electricity_tariff-db82b684.js} (96%) rename web/settings/assets/{external_inverter-8207d928.js => external_inverter-e6cea795.js} (94%) rename web/settings/assets/{index-e4c17b07.js => index-2eee0632.js} (96%) rename web/settings/assets/{inverter-e1663f22.js => inverter-06962b94.js} (88%) rename web/settings/assets/{inverter-e08e7a01.js => inverter-07496b6f.js} (90%) rename web/settings/assets/{inverter-eb5fcf99.js => inverter-0f2a7689.js} (88%) rename web/settings/assets/{inverter-95466897.js => inverter-21915fb8.js} (91%) rename web/settings/assets/{inverter-df3fe723.js => inverter-2b9f64f8.js} (88%) rename web/settings/assets/{inverter-878637c0.js => inverter-2d9ed7ea.js} (90%) rename web/settings/assets/{inverter-84d0a3ba.js => inverter-3e299854.js} (92%) rename web/settings/assets/{inverter-da060ce6.js => inverter-3e76de97.js} (87%) rename web/settings/assets/{inverter-3e8be295.js => inverter-46416042.js} (94%) rename web/settings/assets/{inverter-0852f06a.js => inverter-4fdb3854.js} (88%) rename web/settings/assets/{inverter-208d8966.js => inverter-582ecbdb.js} (88%) rename web/settings/assets/{inverter-ad33b033.js => inverter-5c52c18e.js} (80%) rename web/settings/assets/{inverter-c97efa3a.js => inverter-64474ae0.js} (91%) rename web/settings/assets/{inverter-3dafbe7c.js => inverter-6837c698.js} (87%) rename web/settings/assets/{inverter-c68c3b52.js => inverter-816dc1c7.js} (89%) rename web/settings/assets/{inverter-4b55caa6.js => inverter-84d8bbbe.js} (91%) rename web/settings/assets/{inverter-fd208841.js => inverter-95af7742.js} (83%) rename web/settings/assets/{inverter-fe7c6fda.js => inverter-9f1c12f2.js} (95%) rename web/settings/assets/{inverter-8afb296d.js => inverter-a8bb5951.js} (88%) rename web/settings/assets/{inverter-e4584f68.js => inverter-a9d5f19e.js} (87%) rename web/settings/assets/{inverter-f0a34520.js => inverter-af6e5fbe.js} (84%) rename web/settings/assets/{inverter-f432c082.js => inverter-b342fcab.js} (95%) rename web/settings/assets/{inverter-c71098f4.js => inverter-be42a1ae.js} (89%) rename web/settings/assets/{inverter-10de1272.js => inverter-d8829496.js} (87%) rename web/settings/assets/{inverter-1a358f95.js => inverter-d9cb7f23.js} (94%) rename web/settings/assets/{inverter-b57300f5.js => inverter-e86414ee.js} (88%) rename web/settings/assets/{inverter-0d5f082e.js => inverter-eebadf23.js} (87%) rename web/settings/assets/{inverter-236b1784.js => inverter-ef0228b0.js} (80%) rename web/settings/assets/{inverter-3de69e58.js => inverter-f4f8eb31.js} (89%) rename web/settings/assets/{inverter-fc51cd0b.js => inverter-fc863d2a.js} (86%) rename web/settings/assets/{inverter-36706c9a.js => inverter-fdc3fcb1.js} (88%) rename web/settings/assets/{inverter_secondary-62644358.js => inverter_secondary-06336d06.js} (92%) rename web/settings/assets/{io_action-b9cbb026.js => io_action-463b6914.js} (94%) rename web/settings/assets/{io_action-e0e64896.js => io_action-7bd7a97f.js} (95%) rename web/settings/assets/{io_action-c0bcbb6c.js => io_action-bdac70f1.js} (93%) rename web/settings/assets/{io_action-976bf2b0.js => io_action-ed20fe66.js} (94%) rename web/settings/assets/{io_device-ff6641fb.js => io_device-8d69d696.js} (95%) rename web/settings/assets/{io_device-9ff50b11.js => io_device-e732c7fa.js} (90%) rename web/settings/assets/{monitoring-8ab638da.js => monitoring-e58bdea3.js} (90%) rename web/settings/assets/{vehicle-081d1860.js => vehicle-0ddcea52.js} (89%) rename web/settings/assets/{vehicle-d5f041d0.js => vehicle-0fbea598.js} (94%) rename web/settings/assets/{vehicle-f5091955.js => vehicle-11565bbb.js} (93%) rename web/settings/assets/{vehicle-54d21a19.js => vehicle-13675add.js} (89%) rename web/settings/assets/{vehicle-e22aaad0.js => vehicle-1bde8cf1.js} (91%) rename web/settings/assets/{vehicle-bc9278d5.js => vehicle-3288206c.js} (82%) rename web/settings/assets/{vehicle-4ee84148.js => vehicle-3a2ce5a8.js} (95%) rename web/settings/assets/{vehicle-fa5f8129.js => vehicle-3a8c6a3b.js} (92%) rename web/settings/assets/{vehicle-3688de48.js => vehicle-5da275c6.js} (94%) delete mode 100644 web/settings/assets/vehicle-62ddb254.js rename web/settings/assets/{vehicle-b55a7355.js => vehicle-64bfc69a.js} (91%) rename web/settings/assets/{vehicle-ce15b972.js => vehicle-6d1ae41c.js} (94%) rename web/settings/assets/{vehicle-81c54b19.js => vehicle-79879d28.js} (96%) rename web/settings/assets/{vehicle-aa814b6d.js => vehicle-8e6d439c.js} (97%) rename web/settings/assets/{vehicle-a44392fc.js => vehicle-916e09c5.js} (88%) rename web/settings/assets/{vehicle-a08311d0.js => vehicle-93664b48.js} (86%) rename web/settings/assets/{vehicle-2e31f054.js => vehicle-9482d119.js} (97%) create mode 100644 web/settings/assets/vehicle-a97ad9e3.js rename web/settings/assets/{vehicle-02f99327.js => vehicle-b10f3057.js} (89%) rename web/settings/assets/{vehicle-552086ad.js => vehicle-b78c41a7.js} (89%) rename web/settings/assets/{vehicle-5bf23959.js => vehicle-c6f30989.js} (97%) rename web/settings/assets/{vehicle-b6b40aa6.js => vehicle-f779e07f.js} (89%) rename web/settings/assets/{webTheme-9c8ff1fc.js => webTheme-244336f6.js} (95%) rename web/settings/assets/{webTheme-526f053f.js => webTheme-e5349504.js} (88%) diff --git a/web/settings/assets/ChargeLog-e7acf03d.js b/web/settings/assets/ChargeLog-036b633c.js similarity index 99% rename from web/settings/assets/ChargeLog-e7acf03d.js rename to web/settings/assets/ChargeLog-036b633c.js index d68e5a1ff3..fe38d47c11 100644 --- a/web/settings/assets/ChargeLog-e7acf03d.js +++ b/web/settings/assets/ChargeLog-036b633c.js @@ -1,3 +1,3 @@ -import{l as N,a2 as k,a3 as B,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as x,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-25d394b4.js";import{C as W}from"./index-e4c17b07.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:E},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` +import{l as N,a2 as k,a3 as B,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as x,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-25d394b4.js";import{C as W}from"./index-2eee0632.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:E},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` `)+` `}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[13]})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1,__:[19,20,21,22]}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1,__:[24]}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])),_:1,__:[23]}))])]))])}const Ce=x(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; diff --git a/web/settings/assets/ChargePointInstallation-4bbfab0c.js b/web/settings/assets/ChargePointInstallation-0bbbc31c.js similarity index 94% rename from web/settings/assets/ChargePointInstallation-4bbfab0c.js rename to web/settings/assets/ChargePointInstallation-0bbbc31c.js index d96a383374..ad7f8239fd 100644 --- a/web/settings/assets/ChargePointInstallation-4bbfab0c.js +++ b/web/settings/assets/ChargePointInstallation-0bbbc31c.js @@ -1 +1 @@ -import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as H}from"./index-e4c17b07.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-25d394b4.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-d31da4cb.js"),["assets/chargePoint-d31da4cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-2e5fe02e.js"),["assets/chargePoint-2e5fe02e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-64ce2ff0.js"),["assets/chargePoint-64ce2ff0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-3411e592.js"),["assets/chargePoint-3411e592.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-ca1cba52.js"),["assets/chargePoint-ca1cba52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-4a3d6c03.js"),["assets/chargePoint-4a3d6c03.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-2e02c1d8.js"),["assets/chargePoint-2e02c1d8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-6e8b9876.js"),["assets/commands-6e8b9876.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-9cc92488.js"),["assets/commands-9cc92488.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:0},Oe={key:1},Fe={key:0},Re={key:0},Ne={key:1},Ze={key:1},je={key:0},Je={key:2},$e={key:4};function He(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])),_:1,__:[8]}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[10]}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[12]}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2,__:[15]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[18]})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),u("span",Te,[a(y,{class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),d.endsWith("/0")?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Oe,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Fe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[21]}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Ne,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[22,23,24]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ze,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[25]}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[26,27,28,29]})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[30]}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",je," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2,__:[31,32,33]},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",$e,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[34]}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[37]},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[39,40]},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const Ge=z(ze,[["render",He],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,Ge as b,en as c}; +import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as H}from"./index-2eee0632.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-25d394b4.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-4d4e8f32.js"),["assets/chargePoint-4d4e8f32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-8ba070ce.js"),["assets/chargePoint-8ba070ce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-340264ad.js"),["assets/chargePoint-340264ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-26fb010d.js"),["assets/chargePoint-26fb010d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-e9658d8c.js"),["assets/chargePoint-e9658d8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-4f30817e.js"),["assets/chargePoint-4f30817e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-b12c58ac.js"),["assets/chargePoint-b12c58ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-4e783bf2.js"),["assets/commands-4e783bf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-4dc6f12c.js"),["assets/commands-4dc6f12c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:0},Oe={key:1},Fe={key:0},Re={key:0},Ne={key:1},Ze={key:1},je={key:0},Je={key:2},$e={key:4};function He(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])),_:1,__:[8]}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[10]}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[12]}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2,__:[15]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[18]})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),u("span",Te,[a(y,{class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),d.endsWith("/0")?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Oe,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Fe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[21]}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Ne,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[22,23,24]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ze,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[25]}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[26,27,28,29]})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[30]}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",je," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2,__:[31,32,33]},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",$e,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[34]}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[37]},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[39,40]},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const Ge=z(ze,[["render",He],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,Ge as b,en as c}; diff --git a/web/settings/assets/Chart-899aaa0c.js b/web/settings/assets/Chart-8895dc32.js similarity index 99% rename from web/settings/assets/Chart-899aaa0c.js rename to web/settings/assets/Chart-8895dc32.js index 206e9a5927..41e712c4c7 100644 --- a/web/settings/assets/Chart-899aaa0c.js +++ b/web/settings/assets/Chart-8895dc32.js @@ -1 +1 @@ -import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-e4c17b07.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-94a826eb.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; +import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-2eee0632.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-94a826eb.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; diff --git a/web/settings/assets/CloudConfig-74bbfdff.js b/web/settings/assets/CloudConfig-968a3074.js similarity index 99% rename from web/settings/assets/CloudConfig-74bbfdff.js rename to web/settings/assets/CloudConfig-968a3074.js index a90e1c9f67..30737d5732 100644 --- a/web/settings/assets/CloudConfig-74bbfdff.js +++ b/web/settings/assets/CloudConfig-968a3074.js @@ -1 +1 @@ -import{l as S,aa as q,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-e4c17b07.js";import{_ as Z,u as a,l,m as b,G as r,E as t,A as m,x as p,z as i,D as h,N as I,B as s,q as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(q);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(n))B.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigCreateForm"},N={key:2,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:3,name:"cloudConfigured"},F={class:"row justify-content-center"};function j(n,e,B,G,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),w=a("openwb-base-card"),f=a("openwb-base-text-input"),_=a("openwb-base-button-group-input"),C=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),b(I,null,[r(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[s(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),m("div",M,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=s(" Du musst der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=s(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),b("div",x,[r(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=s(" Du hast der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=s(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?i("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[s(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?i("",!0):(l(),b("form",R,[r(w,{title:"Neuen Zugang erstellen"},{default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>e[21]||(e[21]=[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutze die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an ",-1),m("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),s(" . ",-1)])),_:1,__:[21]})]),_:1})])),d.cloudBridgeKey?i("",!0):(l(),b("form",N,[r(w,{title:"Vorhandenen Zugang einrichten"},h({default:t(()=>[r(f,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),r(f,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),r(_,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[m("div",U,[r(v,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[s(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),b("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[s(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):i("",!0),r(w,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[m("div",F,[r(v,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[s(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>e[26]||(e[26]=[m("span",null,[s(" Mit diesen Zugangsdaten kannst Du dich in der "),m("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1)])),_:1,__:[26]}),r(f,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),r(f,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=m("hr",null,null,-1)),r(_,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:1,__:[30]})])):i("",!0),d.cloudBridgeKey?(l(),p(W,{key:4,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):i("",!0)]))])],64)}const X=Z(K,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{X as default}; +import{l as S,aa as q,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-2eee0632.js";import{_ as Z,u as a,l,m as b,G as r,E as t,A as m,x as p,z as i,D as h,N as I,B as s,q as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(q);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(n))B.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigCreateForm"},N={key:2,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:3,name:"cloudConfigured"},F={class:"row justify-content-center"};function j(n,e,B,G,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),w=a("openwb-base-card"),f=a("openwb-base-text-input"),_=a("openwb-base-button-group-input"),C=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),b(I,null,[r(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[s(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),m("div",M,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=s(" Du musst der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=s(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),b("div",x,[r(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=s(" Du hast der ",-1)),r(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[s(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=s(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?i("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[s(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?i("",!0):(l(),b("form",R,[r(w,{title:"Neuen Zugang erstellen"},{default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>e[21]||(e[21]=[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutze die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an ",-1),m("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),s(" . ",-1)])),_:1,__:[21]})]),_:1})])),d.cloudBridgeKey?i("",!0):(l(),b("form",N,[r(w,{title:"Vorhandenen Zugang einrichten"},h({default:t(()=>[r(f,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),r(f,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),r(_,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[m("div",U,[r(v,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[s(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),b("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[s(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):i("",!0),r(w,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[m("div",F,[r(v,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[s(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>e[26]||(e[26]=[m("span",null,[s(" Mit diesen Zugangsdaten kannst Du dich in der "),m("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1)])),_:1,__:[26]}),r(f,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),r(f,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=m("hr",null,null,-1)),r(_,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(C,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[s(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):i("",!0)]),_:1,__:[30]})])):i("",!0),d.cloudBridgeKey?(l(),p(W,{key:4,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):i("",!0)]))])],64)}const X=Z(K,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/DataManagement-337c2c94.js b/web/settings/assets/DataManagement-6ae64151.js similarity index 97% rename from web/settings/assets/DataManagement-337c2c94.js rename to web/settings/assets/DataManagement-6ae64151.js index bbddd01a3f..bb90ff562a 100644 --- a/web/settings/assets/DataManagement-337c2c94.js +++ b/web/settings/assets/DataManagement-6ae64151.js @@ -1 +1 @@ -import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-a02b6813.js";import{_ as B,C as G}from"./index-e4c17b07.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-25d394b4.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-170635e1.js"),["assets/backup_cloud-170635e1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-acb80510.js"),["assets/backup_cloud-acb80510.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-08aafac7.js"),["assets/backup_cloud-08aafac7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-436cb5f2.js"),["assets/backup_cloud-436cb5f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-8ab638da.js"),["assets/monitoring-8ab638da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,_]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,_]of Object.entries(n))if(_==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),_(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},Re={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringConfigured"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,_,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),R=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),m("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(R,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(x,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",Re,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[v.key]=f,title:v.label,options:r.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":n.monitoringConfigured,"hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))},null,8,["form-name"])]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; +import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-a02b6813.js";import{_ as B,C as G}from"./index-2eee0632.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-25d394b4.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-dbe8cfeb.js"),["assets/backup_cloud-dbe8cfeb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-fbb1f20b.js"),["assets/backup_cloud-fbb1f20b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-3f7ed752.js"),["assets/backup_cloud-3f7ed752.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-638ca88c.js"),["assets/backup_cloud-638ca88c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-e58bdea3.js"),["assets/monitoring-e58bdea3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,_]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,_]of Object.entries(n))if(_==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),_(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},Re={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringConfigured"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,_,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),R=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),m("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(R,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(x,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",Re,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[v.key]=f,title:v.label,options:r.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":n.monitoringConfigured,"hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))},null,8,["form-name"])]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DebugConfig-f413af66.js b/web/settings/assets/DebugConfig-80e2cdf1.js similarity index 99% rename from web/settings/assets/DebugConfig-f413af66.js rename to web/settings/assets/DebugConfig-80e2cdf1.js index 937a51f698..1199236de2 100644 --- a/web/settings/assets/DebugConfig-f413af66.js +++ b/web/settings/assets/DebugConfig-80e2cdf1.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-e4c17b07.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +import{C as x}from"./index-2eee0632.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! `+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=N.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),_=l("openwb-base-select-input"),w=l("openwb-base-alert"),k=l("openwb-base-card");return u(),g(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),g(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[p(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),g(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[p(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),g(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[p(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),g(w,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),p(_,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1,__:[4,5,6]})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Erros",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),_=l("openwb-base-card"),w=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[p(_,{title:"Protokollierung"},{default:r(()=>[p(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])),_:1},8,["model-value"]),p(c,{subtype:"warning"},{default:r(()=>e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])),_:1,__:[5]})]),_:1}),p(w,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),g(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; diff --git a/web/settings/assets/GeneralChargeConfig-f5f65896.js b/web/settings/assets/GeneralChargeConfig-4eeb378a.js similarity index 92% rename from web/settings/assets/GeneralChargeConfig-f5f65896.js rename to web/settings/assets/GeneralChargeConfig-4eeb378a.js index 8b5f737910..9d80aad42f 100644 --- a/web/settings/assets/GeneralChargeConfig-f5f65896.js +++ b/web/settings/assets/GeneralChargeConfig-4eeb378a.js @@ -1 +1 @@ -import{_ as f,C as L}from"./index-e4c17b07.js";import{_ as O}from"./dynamic-import-helper-be004503.js";import{l as q,a6 as D,a7 as F,F as A}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as b,E as r,B as i,F as _,G as n,A as d,a2 as U,a3 as N,N as I,z as y}from"./vendor-25d394b4.js";const M={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},R=B(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),Z={name:"ElectricityTariffConfigFallback",mixins:[R]},H={class:"backup-cloud-fallback"},j={key:1};function G(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+_(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",j,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,_(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);q.add(D,F);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:A},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>O(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-2304915c.js"),["assets/electricity_tariff-2304915c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-d0edfdb4.js"),["assets/electricity_tariff-d0edfdb4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-f3b38e11.js"),["assets/electricity_tariff-f3b38e11.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-bde56165.js"),["assets/electricity_tariff-bde56165.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-b497922e.js"),["assets/electricity_tariff-b497922e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-030b73c0.js"),["assets/electricity_tariff-030b73c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ed71dfac.js"),["assets/electricity_tariff-ed71dfac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-0d25f98f.js"),["assets/electricity_tariff-0d25f98f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function x(t,e,g,W,z,m){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),h=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),b(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),b(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(h,null,{default:r(()=>[i(' Einstellungen für Modul "'+_(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),b(N(m.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=c=>m.updateConfiguration(c))},null,40,["electricity-tariff"]))],64)}const Q=B(K,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),X={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:Q},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Y={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:1},pe={key:0},ge={key:1},fe={key:0};function me(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),h=u("openwb-base-range-input"),c=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),C=u("openwb-electricity-tariff-proxy"),$=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",Y,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),b(h,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):y("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(c,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:20,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):y("",!0),n(c,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:m.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>m.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(C,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>m.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):y("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speicher-Entladung",buttons:[{buttonValue:"no_limit",text:"immer"},{buttonValue:"limit_stop",text:"gesperrt, wenn Fahrzeug lädt"},{buttonValue:"limit_to_home_consumption",text:"für Hausverbrauch"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>e[32]||(e[32]=[i(" Wenn das Entladen des Speichers immer erlaubt ist, wird das Fahrzeug aus dem Speicher geladen anstatt Strom aus dem Netz zu beziehen. ",-1),d("br",null,null,-1),i(' Im Modus "gesperrt, wenn Fahrzeug lädt", wird die Entladung nur zugelassen, wenn alle Fahrzeuge im Modus PV-Laden ohne Mindeststrom oder Zielladen mit PV-Überschuss laden.',-1),d("br",null,null,-1),i(' Wenn das Entladen des Speichers auf den Hausverbrauch begrenzt ist und mindestens Fahrzeuge nicht im Modus PV-Laden ohne Mindeststrom oder Zielladen lädt, wird die Entladung des Speichers in Höhe des Hausverbrauchs zugelassen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "gesperrt, wenn Fahrzeug lädt".',-1),d("br",null,null,-1),i(" Diese Einstellung übersteuert ggf die Einstellungen zur Speicher-Beachtung im Modus PV-Laden. ",-1)])),_:1},8,["model-value"])])):(a(),s("div",de,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[33]})]))])):y("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,V;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",pe,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(a(),s("div",ge,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=v=>t.updateState("openWB/optional/ocpp/config",v,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[35]||(e[35]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[35]}),n($,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=v=>t.updateState("openWB/optional/ocpp/config",v,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":(V=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:V.version,"onUpdate:modelValue":e[13]||(e[13]=v=>t.updateState("openWB/optional/ocpp/config",v,"version"))},null,8,["model-value"])])):y("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const ce=B(X,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{R as E,ye as G}; +import{_ as f,C as L}from"./index-2eee0632.js";import{_ as O}from"./dynamic-import-helper-be004503.js";import{l as q,a6 as D,a7 as F,F as A}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as b,E as r,B as i,F as _,G as n,A as d,a2 as U,a3 as N,N as I,z as y}from"./vendor-25d394b4.js";const M={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},R=B(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),Z={name:"ElectricityTariffConfigFallback",mixins:[R]},H={class:"backup-cloud-fallback"},j={key:1};function G(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+_(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",j,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,_(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);q.add(D,F);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:A},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>O(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-60e8d417.js"),["assets/electricity_tariff-60e8d417.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-404b0387.js"),["assets/electricity_tariff-404b0387.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-81e0b18f.js"),["assets/electricity_tariff-81e0b18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-8a83e04d.js"),["assets/electricity_tariff-8a83e04d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-13289243.js"),["assets/electricity_tariff-13289243.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-c0643ee5.js"),["assets/electricity_tariff-c0643ee5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-db82b684.js"),["assets/electricity_tariff-db82b684.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-20391f2e.js"),["assets/electricity_tariff-20391f2e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function x(t,e,g,W,z,m){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),h=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),b(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),b(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+_(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(h,null,{default:r(()=>[i(' Einstellungen für Modul "'+_(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),b(N(m.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=c=>m.updateConfiguration(c))},null,40,["electricity-tariff"]))],64)}const Q=B(K,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),X={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:Q},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Y={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:1},pe={key:0},ge={key:1},fe={key:0};function me(t,e,g,W,z,m){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),h=u("openwb-base-range-input"),c=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),C=u("openwb-electricity-tariff-proxy"),$=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",Y,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),b(h,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):y("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(c,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:60,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):y("",!0),n(c,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:m.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>m.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(C,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>m.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):y("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speicher-Entladung",buttons:[{buttonValue:"no_limit",text:"immer"},{buttonValue:"limit_stop",text:"gesperrt, wenn Fahrzeug lädt"},{buttonValue:"limit_to_home_consumption",text:"für Hausverbrauch"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>e[32]||(e[32]=[i(" Wenn das Entladen des Speichers immer erlaubt ist, wird das Fahrzeug aus dem Speicher geladen anstatt Strom aus dem Netz zu beziehen. ",-1),d("br",null,null,-1),i(' Im Modus "gesperrt, wenn Fahrzeug lädt", wird die Entladung nur zugelassen, wenn alle Fahrzeuge im Modus PV-Laden ohne Mindeststrom oder Zielladen mit PV-Überschuss laden.',-1),d("br",null,null,-1),i(' Wenn das Entladen des Speichers auf den Hausverbrauch begrenzt ist und mindestens Fahrzeuge nicht im Modus PV-Laden ohne Mindeststrom oder Zielladen lädt, wird die Entladung des Speichers in Höhe des Hausverbrauchs zugelassen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "gesperrt, wenn Fahrzeug lädt".',-1),d("br",null,null,-1),i(" Diese Einstellung übersteuert ggf die Einstellungen zur Speicher-Beachtung im Modus PV-Laden. ",-1)])),_:1},8,["model-value"])])):(a(),s("div",de,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[33]})]))])):y("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,V;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",pe,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(a(),s("div",ge,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=v=>t.updateState("openWB/optional/ocpp/config",v,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[35]||(e[35]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[35]}),n($,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=v=>t.updateState("openWB/optional/ocpp/config",v,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":(V=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:V.version,"onUpdate:modelValue":e[13]||(e[13]=v=>t.updateState("openWB/optional/ocpp/config",v,"version"))},null,8,["model-value"])])):y("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const ce=B(X,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{R as E,ye as G}; diff --git a/web/settings/assets/GeneralConfig-1aa02fdc.js b/web/settings/assets/GeneralConfig-b20b00f2.js similarity index 98% rename from web/settings/assets/GeneralConfig-1aa02fdc.js rename to web/settings/assets/GeneralConfig-b20b00f2.js index 3103282fff..93fdf5cad6 100644 --- a/web/settings/assets/GeneralConfig-1aa02fdc.js +++ b/web/settings/assets/GeneralConfig-b20b00f2.js @@ -1 +1 @@ -import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-a02b6813.js";import{_ as O,C as Y}from"./index-e4c17b07.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-25d394b4.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-9c8ff1fc.js"),["assets/webTheme-9c8ff1fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-526f053f.js"),["assets/webTheme-526f053f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; +import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-a02b6813.js";import{_ as O,C as Y}from"./index-2eee0632.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-25d394b4.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-244336f6.js"),["assets/webTheme-244336f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-e5349504.js"),["assets/webTheme-e5349504.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/HardwareInstallation-6515151f.js b/web/settings/assets/HardwareInstallation-c5885604.js similarity index 67% rename from web/settings/assets/HardwareInstallation-6515151f.js rename to web/settings/assets/HardwareInstallation-c5885604.js index c4f51bf807..2b9a41c722 100644 --- a/web/settings/assets/HardwareInstallation-6515151f.js +++ b/web/settings/assets/HardwareInstallation-c5885604.js @@ -1 +1 @@ -import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-a02b6813.js";import{_ as e,C as J}from"./index-e4c17b07.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-25d394b4.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b6b82861.js"),["assets/device-b6b82861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-8a6b31ac.js"),["assets/device-8a6b31ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-5457868d.js"),["assets/device-5457868d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-241c338f.js"),["assets/counter-241c338f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-7ba6df48.js"),["assets/device-7ba6df48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-9c1661fe.js"),["assets/device-9c1661fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-0a55e2f7.js"),["assets/device-0a55e2f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-fcb0b9c0.js"),["assets/device-fcb0b9c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-236b1784.js"),["assets/inverter-236b1784.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-85ba0d9e.js"),["assets/device-85ba0d9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-d606c310.js"),["assets/counter-d606c310.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-630d88cd.js"),["assets/device-630d88cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-ba22f76f.js"),["assets/bat-ba22f76f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-98126cfc.js"),["assets/counter-98126cfc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-dae4911e.js"),["assets/device-dae4911e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-10de1272.js"),["assets/inverter-10de1272.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-a35b5fec.js"),["assets/counter-a35b5fec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e138ac10.js"),["assets/device-e138ac10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-c97efa3a.js"),["assets/inverter-c97efa3a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-cad9fdab.js"),["assets/device-cad9fdab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-3446cb73.js"),["assets/device-3446cb73.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-03d43b57.js"),["assets/counter-03d43b57.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f1d14f4e.js"),["assets/device-f1d14f4e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-b57300f5.js"),["assets/inverter-b57300f5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-ccce56c3.js"),["assets/bat-ccce56c3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-7352834a.js"),["assets/device-7352834a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-2429ce05.js"),["assets/bat-2429ce05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-8a0376f6.js"),["assets/counter-8a0376f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-c057d288.js"),["assets/device-c057d288.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-df3fe723.js"),["assets/inverter-df3fe723.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-3c83952b.js"),["assets/bat-3c83952b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-5e4b1fe5.js"),["assets/counter_sm-5e4b1fe5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-ede5926f.js"),["assets/device-ede5926f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-62644358.js"),["assets/inverter_secondary-62644358.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-3999cc82.js"),["assets/bat-3999cc82.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-942689fa.js"),["assets/counter-942689fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-6e2ecab6.js"),["assets/device-6e2ecab6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-3e8be295.js"),["assets/inverter-3e8be295.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-2f1c9807.js"),["assets/bat-2f1c9807.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-778d0562.js"),["assets/counter-778d0562.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-46241bf0.js"),["assets/device-46241bf0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-f432c082.js"),["assets/inverter-f432c082.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-f2c5f46a.js"),["assets/bat-f2c5f46a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-f8177ec2.js"),["assets/counter-f8177ec2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-1439cbf1.js"),["assets/device-1439cbf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-fe7c6fda.js"),["assets/inverter-fe7c6fda.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-15a40a05.js"),["assets/counter-15a40a05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-6b9fff6c.js"),["assets/bat-6b9fff6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-723e5136.js"),["assets/device-723e5136.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-b915ee50.js"),["assets/device-b915ee50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-40e95f0e.js"),["assets/device-40e95f0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-6c438877.js"),["assets/device-6c438877.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-a037c1ad.js"),["assets/bat-a037c1ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-c26c7ca0.js"),["assets/counter-c26c7ca0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-c6a5b18f.js"),["assets/device-c6a5b18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-e1663f22.js"),["assets/inverter-e1663f22.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-f01de2ea.js"),["assets/counter-f01de2ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-fef9b6f6.js"),["assets/device-fef9b6f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-07e03083.js"),["assets/device-07e03083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-0d5f082e.js"),["assets/inverter-0d5f082e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-06424364.js"),["assets/counter-06424364.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-b028c583.js"),["assets/device-b028c583.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-36706c9a.js"),["assets/inverter-36706c9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-38d5b6fd.js"),["assets/device-38d5b6fd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-7a682293.js"),["assets/counter-7a682293.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-7dbbe461.js"),["assets/device-7dbbe461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-16da78bb.js"),["assets/counter-16da78bb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-44136cf2.js"),["assets/device-44136cf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-66218d05.js"),["assets/device-66218d05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-f0a34520.js"),["assets/inverter-f0a34520.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4749b385.js"),["assets/device-4749b385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-ff0fd7a4.js"),["assets/bat-ff0fd7a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-6b70c1c4.js"),["assets/counter-6b70c1c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-9c39a93c.js"),["assets/device-9c39a93c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-eb5fcf99.js"),["assets/inverter-eb5fcf99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-891343b7.js"),["assets/device-891343b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-0d3d09ba.js"),["assets/counter-0d3d09ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-793ea822.js"),["assets/device-793ea822.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-e4446102.js"),["assets/device-e4446102.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-ad33b033.js"),["assets/inverter-ad33b033.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-b7a74be0.js"),["assets/bat-b7a74be0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-4626ba65.js"),["assets/bat-4626ba65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-c0da35a2.js"),["assets/counter-c0da35a2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-fd208841.js"),["assets/inverter-fd208841.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-f9655da7.js"),["assets/bat-f9655da7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-28c4feb4.js"),["assets/consumption_counter-28c4feb4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-87234fb2.js"),["assets/counter-87234fb2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-6dbd2fd0.js"),["assets/device-6dbd2fd0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-fc51cd0b.js"),["assets/inverter-fc51cd0b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-c68c3b52.js"),["assets/inverter-c68c3b52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-ad41b953.js"),["assets/counter-ad41b953.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-0bc39379.js"),["assets/device-0bc39379.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-da1dd0be.js"),["assets/counter-da1dd0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-5e2f3c97.js"),["assets/device-5e2f3c97.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-43bb176d.js"),["assets/counter-43bb176d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-6aa86d28.js"),["assets/device-6aa86d28.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-84d0a3ba.js"),["assets/inverter-84d0a3ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-3caedbbd.js"),["assets/device-3caedbbd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-f626b3aa.js"),["assets/device-f626b3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-faa95e47.js"),["assets/device-faa95e47.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-593a07d0.js"),["assets/counter-593a07d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-6e2f0696.js"),["assets/device-6e2f0696.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-cbcf5efd.js"),["assets/device-cbcf5efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-2d12e320.js"),["assets/device-2d12e320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-bfa3303d.js"),["assets/bat-bfa3303d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-51e1f0a5.js"),["assets/counter-51e1f0a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-d4bdb914.js"),["assets/device-d4bdb914.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-3de69e58.js"),["assets/inverter-3de69e58.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-9ab1cf22.js"),["assets/counter-9ab1cf22.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-e08e7a01.js"),["assets/inverter-e08e7a01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-37c3cc3b.js"),["assets/bat-37c3cc3b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-35671b9e.js"),["assets/bat_smart_energy-35671b9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-034d35d7.js"),["assets/counter-034d35d7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6065b001.js"),["assets/device-6065b001.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-1a358f95.js"),["assets/inverter-1a358f95.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-b9d525a8.js"),["assets/bat-b9d525a8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-c1e4152e.js"),["assets/device-c1e4152e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-d2e67bbb.js"),["assets/device-d2e67bbb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-1ada1a81.js"),["assets/counter-1ada1a81.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f14cbc13.js"),["assets/device-f14cbc13.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-3dafbe7c.js"),["assets/inverter-3dafbe7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-37b882f6.js"),["assets/device-37b882f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-789bc206.js"),["assets/device-789bc206.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-a327434b.js"),["assets/counter-a327434b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-77829da3.js"),["assets/device-77829da3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-48744246.js"),["assets/device-48744246.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-c71098f4.js"),["assets/inverter-c71098f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-75d75106.js"),["assets/device-75d75106.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-a8b3ffa0.js"),["assets/device-a8b3ffa0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-845f69cb.js"),["assets/bat-845f69cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-95df2c21.js"),["assets/counter-95df2c21.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-51fb9fdb.js"),["assets/device-51fb9fdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-8207d928.js"),["assets/external_inverter-8207d928.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-8afb296d.js"),["assets/inverter-8afb296d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-5ef99d8c.js"),["assets/bat-5ef99d8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-0f31e958.js"),["assets/device-0f31e958.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-208d8966.js"),["assets/inverter-208d8966.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4faa8341.js"),["assets/device-4faa8341.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-513d9188.js"),["assets/bat-513d9188.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-a762a464.js"),["assets/counter-a762a464.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-78619adc.js"),["assets/device-78619adc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-da060ce6.js"),["assets/inverter-da060ce6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-58a85a8c.js"),["assets/bat-58a85a8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-5b6331d0.js"),["assets/counter-5b6331d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-452fb197.js"),["assets/counter_consumption-452fb197.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-952016bf.js"),["assets/device-952016bf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-43e9cde4.js"),["assets/bat-43e9cde4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-8f44d501.js"),["assets/device-8f44d501.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-95466897.js"),["assets/inverter-95466897.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-90a7548e.js"),["assets/device-90a7548e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-ad797bf7.js"),["assets/device-ad797bf7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-0c3fc809.js"),["assets/device-0c3fc809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-701a2c72.js"),["assets/counter-701a2c72.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-838dac1d.js"),["assets/device-838dac1d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-3b3df318.js"),["assets/counter-3b3df318.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-63843d32.js"),["assets/device-63843d32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-70a2865d.js"),["assets/device-70a2865d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a705c660.js"),["assets/device-a705c660.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-e4584f68.js"),["assets/inverter-e4584f68.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-0b64db60.js"),["assets/bat-0b64db60.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-6cd21185.js"),["assets/counter-6cd21185.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-48658977.js"),["assets/device-48658977.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-878637c0.js"),["assets/inverter-878637c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-925dec2d.js"),["assets/counter-925dec2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-3e65a99e.js"),["assets/device-3e65a99e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-4b55caa6.js"),["assets/inverter-4b55caa6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e93f3043.js"),["assets/device-e93f3043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-0852f06a.js"),["assets/inverter-0852f06a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-b6b82861.js"),["assets/device-b6b82861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-8a6b31ac.js"),["assets/device-8a6b31ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-5457868d.js"),["assets/device-5457868d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-7ba6df48.js"),["assets/device-7ba6df48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-9c1661fe.js"),["assets/device-9c1661fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-0a55e2f7.js"),["assets/device-0a55e2f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-fcb0b9c0.js"),["assets/device-fcb0b9c0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-85ba0d9e.js"),["assets/device-85ba0d9e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-630d88cd.js"),["assets/device-630d88cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-dae4911e.js"),["assets/device-dae4911e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e138ac10.js"),["assets/device-e138ac10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-cad9fdab.js"),["assets/device-cad9fdab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-3446cb73.js"),["assets/device-3446cb73.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f1d14f4e.js"),["assets/device-f1d14f4e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-7352834a.js"),["assets/device-7352834a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-c057d288.js"),["assets/device-c057d288.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-ede5926f.js"),["assets/device-ede5926f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-6e2ecab6.js"),["assets/device-6e2ecab6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-46241bf0.js"),["assets/device-46241bf0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-1439cbf1.js"),["assets/device-1439cbf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-723e5136.js"),["assets/device-723e5136.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-b915ee50.js"),["assets/device-b915ee50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-40e95f0e.js"),["assets/device-40e95f0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-6c438877.js"),["assets/device-6c438877.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-c6a5b18f.js"),["assets/device-c6a5b18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-fef9b6f6.js"),["assets/device-fef9b6f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-07e03083.js"),["assets/device-07e03083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-b028c583.js"),["assets/device-b028c583.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-38d5b6fd.js"),["assets/device-38d5b6fd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-7dbbe461.js"),["assets/device-7dbbe461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-44136cf2.js"),["assets/device-44136cf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-66218d05.js"),["assets/device-66218d05.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-4749b385.js"),["assets/device-4749b385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-9c39a93c.js"),["assets/device-9c39a93c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-891343b7.js"),["assets/device-891343b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-793ea822.js"),["assets/device-793ea822.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-e4446102.js"),["assets/device-e4446102.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-6dbd2fd0.js"),["assets/device-6dbd2fd0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-0bc39379.js"),["assets/device-0bc39379.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-5e2f3c97.js"),["assets/device-5e2f3c97.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-6aa86d28.js"),["assets/device-6aa86d28.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-3caedbbd.js"),["assets/device-3caedbbd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-f626b3aa.js"),["assets/device-f626b3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-faa95e47.js"),["assets/device-faa95e47.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-6e2f0696.js"),["assets/device-6e2f0696.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-cbcf5efd.js"),["assets/device-cbcf5efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-2d12e320.js"),["assets/device-2d12e320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-d4bdb914.js"),["assets/device-d4bdb914.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6065b001.js"),["assets/device-6065b001.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-c1e4152e.js"),["assets/device-c1e4152e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-d2e67bbb.js"),["assets/device-d2e67bbb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f14cbc13.js"),["assets/device-f14cbc13.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-37b882f6.js"),["assets/device-37b882f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-789bc206.js"),["assets/device-789bc206.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-77829da3.js"),["assets/device-77829da3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-48744246.js"),["assets/device-48744246.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-75d75106.js"),["assets/device-75d75106.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-a8b3ffa0.js"),["assets/device-a8b3ffa0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-51fb9fdb.js"),["assets/device-51fb9fdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-0f31e958.js"),["assets/device-0f31e958.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4faa8341.js"),["assets/device-4faa8341.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-78619adc.js"),["assets/device-78619adc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-952016bf.js"),["assets/device-952016bf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-8f44d501.js"),["assets/device-8f44d501.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-90a7548e.js"),["assets/device-90a7548e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-ad797bf7.js"),["assets/device-ad797bf7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-0c3fc809.js"),["assets/device-0c3fc809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-838dac1d.js"),["assets/device-838dac1d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-63843d32.js"),["assets/device-63843d32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-70a2865d.js"),["assets/device-70a2865d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a705c660.js"),["assets/device-a705c660.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-48658977.js"),["assets/device-48658977.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-3e65a99e.js"),["assets/device-3e65a99e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e93f3043.js"),["assets/device-e93f3043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; +import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-a02b6813.js";import{_ as e,C as J}from"./index-2eee0632.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-25d394b4.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-3fc427db.js"),["assets/device-3fc427db.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-fe490678.js"),["assets/device-fe490678.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-f6872f3b.js"),["assets/device-f6872f3b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-6d0ba49a.js"),["assets/counter-6d0ba49a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-b3e5aa26.js"),["assets/device-b3e5aa26.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-90c5f8d5.js"),["assets/device-90c5f8d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-b852f0b7.js"),["assets/device-b852f0b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-72ce9ff7.js"),["assets/device-72ce9ff7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-ef0228b0.js"),["assets/inverter-ef0228b0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ee42d18f.js"),["assets/device-ee42d18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-44f87579.js"),["assets/counter-44f87579.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-25fe183a.js"),["assets/device-25fe183a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-e3a33070.js"),["assets/bat-e3a33070.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-2f1da19e.js"),["assets/counter-2f1da19e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-5c2c62d2.js"),["assets/device-5c2c62d2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-d8829496.js"),["assets/inverter-d8829496.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-37b8e5fd.js"),["assets/counter-37b8e5fd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e145cf9a.js"),["assets/device-e145cf9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-64474ae0.js"),["assets/inverter-64474ae0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-15d1779e.js"),["assets/device-15d1779e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-93dded40.js"),["assets/device-93dded40.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-53052143.js"),["assets/counter-53052143.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-04023927.js"),["assets/device-04023927.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-e86414ee.js"),["assets/inverter-e86414ee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-ce2850ac.js"),["assets/bat-ce2850ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-ec524a18.js"),["assets/device-ec524a18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-732436f9.js"),["assets/bat-732436f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-703e8d71.js"),["assets/counter-703e8d71.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-b105c9f2.js"),["assets/device-b105c9f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-2b9f64f8.js"),["assets/inverter-2b9f64f8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-ff9285e5.js"),["assets/bat-ff9285e5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-4e8cbdf3.js"),["assets/counter_sm-4e8cbdf3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-370e0fd6.js"),["assets/device-370e0fd6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-06336d06.js"),["assets/inverter_secondary-06336d06.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-15f709a3.js"),["assets/bat-15f709a3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-98a3b8b5.js"),["assets/counter-98a3b8b5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-a575b2a2.js"),["assets/device-a575b2a2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-46416042.js"),["assets/inverter-46416042.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-608d4690.js"),["assets/bat-608d4690.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-e528f0b4.js"),["assets/counter-e528f0b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-e813b901.js"),["assets/device-e813b901.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-b342fcab.js"),["assets/inverter-b342fcab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-6e434c5a.js"),["assets/bat-6e434c5a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-941f010e.js"),["assets/counter-941f010e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-fa648133.js"),["assets/device-fa648133.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-9f1c12f2.js"),["assets/inverter-9f1c12f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-48265ea7.js"),["assets/counter-48265ea7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-a845e12a.js"),["assets/bat-a845e12a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-73249dc7.js"),["assets/device-73249dc7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-2dda66a4.js"),["assets/device-2dda66a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-bec082f0.js"),["assets/device-bec082f0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-182017ef.js"),["assets/device-182017ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-5b4283f7.js"),["assets/bat-5b4283f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-a1135f1c.js"),["assets/counter-a1135f1c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-69ee5a6e.js"),["assets/device-69ee5a6e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-06962b94.js"),["assets/inverter-06962b94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-8d8fa05d.js"),["assets/counter-8d8fa05d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-77ffaea9.js"),["assets/device-77ffaea9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-3073bb5b.js"),["assets/device-3073bb5b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-eebadf23.js"),["assets/inverter-eebadf23.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-c9b79b3a.js"),["assets/counter-c9b79b3a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-be2a33ff.js"),["assets/device-be2a33ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-fdc3fcb1.js"),["assets/inverter-fdc3fcb1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-aaec1882.js"),["assets/device-aaec1882.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-86ccfa9b.js"),["assets/counter-86ccfa9b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-75a17a50.js"),["assets/device-75a17a50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-d16370ae.js"),["assets/counter-d16370ae.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-f95c742c.js"),["assets/device-f95c742c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-33c872fb.js"),["assets/device-33c872fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-af6e5fbe.js"),["assets/inverter-af6e5fbe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-9bc4a595.js"),["assets/device-9bc4a595.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-25fd3dc5.js"),["assets/bat-25fd3dc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-ed9f91cc.js"),["assets/counter-ed9f91cc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-84825ea3.js"),["assets/device-84825ea3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-0f2a7689.js"),["assets/inverter-0f2a7689.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-81c64562.js"),["assets/device-81c64562.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-0f6f7bb9.js"),["assets/counter-0f6f7bb9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-96f13c7c.js"),["assets/device-96f13c7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-3a3324ec.js"),["assets/device-3a3324ec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-5c52c18e.js"),["assets/inverter-5c52c18e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-e3fd925f.js"),["assets/bat-e3fd925f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-17034055.js"),["assets/bat-17034055.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-b5dc9c36.js"),["assets/counter-b5dc9c36.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-95af7742.js"),["assets/inverter-95af7742.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-68705b91.js"),["assets/bat-68705b91.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-4bbfd158.js"),["assets/consumption_counter-4bbfd158.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-2a92287b.js"),["assets/counter-2a92287b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-b7481224.js"),["assets/device-b7481224.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-fc863d2a.js"),["assets/inverter-fc863d2a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-816dc1c7.js"),["assets/inverter-816dc1c7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-cd25d9ff.js"),["assets/counter-cd25d9ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-daca66ac.js"),["assets/device-daca66ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-4c652758.js"),["assets/counter-4c652758.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-c44ebb29.js"),["assets/device-c44ebb29.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-66ea4344.js"),["assets/counter-66ea4344.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-98941275.js"),["assets/device-98941275.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-3e299854.js"),["assets/inverter-3e299854.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-1015d6b8.js"),["assets/device-1015d6b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-bc261e31.js"),["assets/device-bc261e31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-1e74037a.js"),["assets/device-1e74037a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-ef1c082d.js"),["assets/counter-ef1c082d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-28431aec.js"),["assets/device-28431aec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-856f00da.js"),["assets/device-856f00da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-fb0b197d.js"),["assets/device-fb0b197d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-2665ec8d.js"),["assets/bat-2665ec8d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-e2f7fa47.js"),["assets/counter-e2f7fa47.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-9c316aba.js"),["assets/device-9c316aba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-f4f8eb31.js"),["assets/inverter-f4f8eb31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-1057215a.js"),["assets/counter-1057215a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-07496b6f.js"),["assets/inverter-07496b6f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-7a097c4b.js"),["assets/bat-7a097c4b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-a6558c75.js"),["assets/bat_smart_energy-a6558c75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-335604bd.js"),["assets/counter-335604bd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-605fe75f.js"),["assets/device-605fe75f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-d9cb7f23.js"),["assets/inverter-d9cb7f23.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-099bdc33.js"),["assets/bat-099bdc33.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-19bdcd55.js"),["assets/device-19bdcd55.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b226b08b.js"),["assets/device-b226b08b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-2f20e75a.js"),["assets/counter-2f20e75a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-4df843fe.js"),["assets/device-4df843fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-6837c698.js"),["assets/inverter-6837c698.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-0a768509.js"),["assets/device-0a768509.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-fb34332c.js"),["assets/device-fb34332c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-4cbc5b0e.js"),["assets/counter-4cbc5b0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-2b2b66a7.js"),["assets/device-2b2b66a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-413917f9.js"),["assets/device-413917f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-be42a1ae.js"),["assets/inverter-be42a1ae.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-ca9f4f83.js"),["assets/device-ca9f4f83.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-6964d64c.js"),["assets/device-6964d64c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-335bdc21.js"),["assets/bat-335bdc21.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-2799fe18.js"),["assets/counter-2799fe18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-fcd8dd54.js"),["assets/device-fcd8dd54.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-e6cea795.js"),["assets/external_inverter-e6cea795.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-a8bb5951.js"),["assets/inverter-a8bb5951.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-e3d6b389.js"),["assets/bat-e3d6b389.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-215a78fc.js"),["assets/device-215a78fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-582ecbdb.js"),["assets/inverter-582ecbdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-b7b2d824.js"),["assets/device-b7b2d824.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-b9569430.js"),["assets/bat-b9569430.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-0982dddf.js"),["assets/counter-0982dddf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-4879d7da.js"),["assets/device-4879d7da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-3e76de97.js"),["assets/inverter-3e76de97.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-ef0647b4.js"),["assets/bat-ef0647b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-e04e4842.js"),["assets/counter-e04e4842.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-c0ced540.js"),["assets/counter_consumption-c0ced540.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-d52216af.js"),["assets/device-d52216af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-82d8349c.js"),["assets/bat-82d8349c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-f8776d02.js"),["assets/device-f8776d02.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-21915fb8.js"),["assets/inverter-21915fb8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-206b02e6.js"),["assets/device-206b02e6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-903c3f36.js"),["assets/device-903c3f36.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-1284e8ee.js"),["assets/device-1284e8ee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-44a15c7a.js"),["assets/counter-44a15c7a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-d51aa532.js"),["assets/device-d51aa532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-6727feee.js"),["assets/counter-6727feee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-c027752a.js"),["assets/device-c027752a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6fe5ae18.js"),["assets/device-6fe5ae18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-8f001307.js"),["assets/device-8f001307.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-a9d5f19e.js"),["assets/inverter-a9d5f19e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-a22314d2.js"),["assets/bat-a22314d2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-065e6a09.js"),["assets/counter-065e6a09.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-3c447af1.js"),["assets/device-3c447af1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-2d9ed7ea.js"),["assets/inverter-2d9ed7ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-f0b83364.js"),["assets/counter-f0b83364.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-e2b16e99.js"),["assets/device-e2b16e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-84d8bbbe.js"),["assets/inverter-84d8bbbe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-33b15226.js"),["assets/device-33b15226.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-4fdb3854.js"),["assets/inverter-4fdb3854.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-3fc427db.js"),["assets/device-3fc427db.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-fe490678.js"),["assets/device-fe490678.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-f6872f3b.js"),["assets/device-f6872f3b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-b3e5aa26.js"),["assets/device-b3e5aa26.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-90c5f8d5.js"),["assets/device-90c5f8d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-b852f0b7.js"),["assets/device-b852f0b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-72ce9ff7.js"),["assets/device-72ce9ff7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ee42d18f.js"),["assets/device-ee42d18f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-25fe183a.js"),["assets/device-25fe183a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-5c2c62d2.js"),["assets/device-5c2c62d2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-e145cf9a.js"),["assets/device-e145cf9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-15d1779e.js"),["assets/device-15d1779e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-93dded40.js"),["assets/device-93dded40.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-04023927.js"),["assets/device-04023927.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-ec524a18.js"),["assets/device-ec524a18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-b105c9f2.js"),["assets/device-b105c9f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-370e0fd6.js"),["assets/device-370e0fd6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-a575b2a2.js"),["assets/device-a575b2a2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-e813b901.js"),["assets/device-e813b901.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-fa648133.js"),["assets/device-fa648133.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-73249dc7.js"),["assets/device-73249dc7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-2dda66a4.js"),["assets/device-2dda66a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-bec082f0.js"),["assets/device-bec082f0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-182017ef.js"),["assets/device-182017ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-69ee5a6e.js"),["assets/device-69ee5a6e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-77ffaea9.js"),["assets/device-77ffaea9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-3073bb5b.js"),["assets/device-3073bb5b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-be2a33ff.js"),["assets/device-be2a33ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-aaec1882.js"),["assets/device-aaec1882.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-75a17a50.js"),["assets/device-75a17a50.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-f95c742c.js"),["assets/device-f95c742c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-33c872fb.js"),["assets/device-33c872fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-9bc4a595.js"),["assets/device-9bc4a595.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-84825ea3.js"),["assets/device-84825ea3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-81c64562.js"),["assets/device-81c64562.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-96f13c7c.js"),["assets/device-96f13c7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-3a3324ec.js"),["assets/device-3a3324ec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-b7481224.js"),["assets/device-b7481224.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-daca66ac.js"),["assets/device-daca66ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-c44ebb29.js"),["assets/device-c44ebb29.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-98941275.js"),["assets/device-98941275.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-1015d6b8.js"),["assets/device-1015d6b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-bc261e31.js"),["assets/device-bc261e31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-1e74037a.js"),["assets/device-1e74037a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-28431aec.js"),["assets/device-28431aec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-856f00da.js"),["assets/device-856f00da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-fb0b197d.js"),["assets/device-fb0b197d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-9c316aba.js"),["assets/device-9c316aba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-605fe75f.js"),["assets/device-605fe75f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-19bdcd55.js"),["assets/device-19bdcd55.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b226b08b.js"),["assets/device-b226b08b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-4df843fe.js"),["assets/device-4df843fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-0a768509.js"),["assets/device-0a768509.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-fb34332c.js"),["assets/device-fb34332c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-2b2b66a7.js"),["assets/device-2b2b66a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-413917f9.js"),["assets/device-413917f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-ca9f4f83.js"),["assets/device-ca9f4f83.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-6964d64c.js"),["assets/device-6964d64c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-fcd8dd54.js"),["assets/device-fcd8dd54.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-215a78fc.js"),["assets/device-215a78fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-b7b2d824.js"),["assets/device-b7b2d824.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-4879d7da.js"),["assets/device-4879d7da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-d52216af.js"),["assets/device-d52216af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-f8776d02.js"),["assets/device-f8776d02.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-206b02e6.js"),["assets/device-206b02e6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-903c3f36.js"),["assets/device-903c3f36.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-1284e8ee.js"),["assets/device-1284e8ee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-d51aa532.js"),["assets/device-d51aa532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-c027752a.js"),["assets/device-c027752a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6fe5ae18.js"),["assets/device-6fe5ae18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-8f001307.js"),["assets/device-8f001307.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-3c447af1.js"),["assets/device-3c447af1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-e2b16e99.js"),["assets/device-e2b16e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-33b15226.js"),["assets/device-33b15226.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/IdentificationConfig-ed3f2bff.js b/web/settings/assets/IdentificationConfig-83719926.js similarity index 99% rename from web/settings/assets/IdentificationConfig-ed3f2bff.js rename to web/settings/assets/IdentificationConfig-83719926.js index 01553f7d89..4e13a076e2 100644 --- a/web/settings/assets/IdentificationConfig-ed3f2bff.js +++ b/web/settings/assets/IdentificationConfig-83719926.js @@ -1,2 +1,2 @@ -import{C as $}from"./index-e4c17b07.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as i,B as r,z as c,N as k,M as B,F as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const y={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},F={key:1},q={key:0},T={key:0},V={key:1},S={key:2},A={key:0},C={key:0},E={key:1},N={key:2},P=["title","collapsed"],U={key:0},j={key:0},O={key:1};function R(e,t,Z,H,J,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),v=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(v,{title:"Identifikation"},{default:i(()=>[a(u,{subtype:"info"},{default:i(()=>t[4]||(t[4]=[r(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r(" Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst! ",-1)])),_:1,__:[4]}),a(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:i(()=>t[5]||(t[5]=[r(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",F,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",q,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` +import{C as $}from"./index-2eee0632.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as i,B as r,z as c,N as k,M as B,F as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const y={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},F={key:1},q={key:0},T={key:0},V={key:1},S={key:2},A={key:0},C={key:0},E={key:1},N={key:2},P=["title","collapsed"],U={key:0},j={key:0},O={key:1};function R(e,t,Z,H,J,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),v=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(v,{title:"Identifikation"},{default:i(()=>[a(u,{subtype:"info"},{default:i(()=>t[4]||(t[4]=[r(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r(" Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst! ",-1)])),_:1,__:[4]}),a(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:i(()=>t[5]||(t[5]=[r(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",F,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",q,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` `)},null,8,["model-value"])])):c("",!0)]))]),_:1}),a(g,{class:"mt-0"},{default:i(()=>t[6]||(t[6]=[r(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])),_:1,__:[6]}),l("div",null,[a(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",T,[a(u,{subtype:"info"},{default:i(()=>t[7]||(t[7]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),r(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[7]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",V,[a(u,{subtype:"info"},{default:i(()=>t[8]||(t[8]=[r(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[8]})])):(o(),s("div",S,[a(u,{subtype:"info"},{default:i(()=>t[9]||(t[9]=[r(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])),_:1,__:[9]}),(o(!0),s(k,null,B(m.chargePointTemplates,(n,d)=>(o(),s("div",{key:d},[a(g,{class:"mt-0"},{default:i(()=>[r(f(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!e.installAssistantActive?(o(),s("div",A,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',"model-value":n.valid_tags,"onUpdate:modelValue":h=>e.updateState(d,h,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):c("",!0),a(b,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":h=>e.updateState(d,h,"disable_after_unplug")},{help:i(()=>[r(f('Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+n.name+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt.'),1)]),_:2},1032,["model-value","onUpdate:modelValue"]),t[10]||(t[10]=l("br",null,null,-1))]))),128))]))]),_:1})]),a(g,{class:"mt-0"},{default:i(()=>t[11]||(t[11]=[r(" Zuordnung von Fahrzeugen ",-1)])),_:1,__:[11]}),l("div",null,[a(v,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:i(()=>t[12]||(t[12]=[r(" Fahrzeuge ",-1)])),default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",C,[a(u,{subtype:"info"},{default:i(()=>t[13]||(t[13]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),r(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[13]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",E,[a(u,{subtype:"info"},{default:i(()=>t[14]||(t[14]=[r(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[14]})])):(o(),s("div",N,[a(u,{subtype:"info"},{default:i(()=>t[15]||(t[15]=[r(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5min verworfen wird. ",-1)])),_:1,__:[15]}),(o(!0),s(k,null,B(m.vehicleIndexes,n=>(o(),s("div",{key:n,title:m.getVehicleName(n),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==n),subtype:"info"},[t[16]||(t[16]=l("br",null,null,-1)),a(g,{class:"mt-0"},{default:i(()=>[r(f(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!e.installAssistantActive?(o(),s("div",U,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',"model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+n+"/tag_id",d)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):c("",!0),a(b,{title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],d,"load_default")},{help:i(()=>[r(f('Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name+'" gespeichert.')+" ",1),e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?(o(),s("div",j,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge aktiviert, denen dieses Lade-Profil zugeordnet wurde. ')):(o(),s("div",O,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge deaktiviert, denen dieses Lade-Profil zugeordnet wurde. '))]),_:2},1032,["model-value","onUpdate:modelValue"])],8,P))),128))]))]),_:1},8,["collapsed"])]),a(z,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const ee=w(y,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{ee as default}; diff --git a/web/settings/assets/InstallAssistant-ad73a366.js b/web/settings/assets/InstallAssistant-ebc6d414.js similarity index 64% rename from web/settings/assets/InstallAssistant-ad73a366.js rename to web/settings/assets/InstallAssistant-ebc6d414.js index d45c9928fa..e88441713e 100644 --- a/web/settings/assets/InstallAssistant-ad73a366.js +++ b/web/settings/assets/InstallAssistant-ebc6d414.js @@ -1 +1 @@ -import{C as r,_ as t}from"./index-e4c17b07.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-4316f81d.js"),["assets/InstallAssistantStep0-4316f81d.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-2c79328f.js"),["assets/InstallAssistantStep1-2c79328f.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-337c2c94.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-b27cf512.js"),["assets/InstallAssistantStep10-b27cf512.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-4bb75653.js"),["assets/InstallAssistantStep2-4bb75653.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-5b07ce9f.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-c4997725.js"),["assets/InstallAssistantStep3-c4997725.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-1aa02fdc.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-98043578.js"),["assets/InstallAssistantStep4.1-98043578.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-83896e35.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-abf0a08d.js"),["assets/InstallAssistantStep4-abf0a08d.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-4bbfab0c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-ee0ba959.js"),["assets/InstallAssistantStep5-ee0ba959.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-6515151f.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-60f17c70.js"),["assets/InstallAssistantStep6-60f17c70.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-4bbfab0c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-881db088.js"),["assets/InstallAssistantStep7-881db088.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-9ba2529d.js","assets/OpenwbSortableList-227b0e79.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-174b8e4b.js"),["assets/InstallAssistantStep8-174b8e4b.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-2e0daf8e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-21d7f4da.js"),["assets/InstallAssistantStep9-21d7f4da.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-27c622cd.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-337c2c94.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-27c622cd.js"),["assets/InstallAssistantStepTemplate-27c622cd.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; +import{C as r,_ as t}from"./index-2eee0632.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-136d436d.js"),["assets/InstallAssistantStep0-136d436d.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-2b912516.js"),["assets/InstallAssistantStep1-2b912516.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-6ae64151.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-832ca0fb.js"),["assets/InstallAssistantStep10-832ca0fb.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-ef61c521.js"),["assets/InstallAssistantStep2-ef61c521.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-6050454e.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-e93db963.js"),["assets/InstallAssistantStep3-e93db963.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-b20b00f2.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-9118c7fc.js"),["assets/InstallAssistantStep4.1-9118c7fc.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-f463e4c2.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-32729289.js"),["assets/InstallAssistantStep4-32729289.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-0bbbc31c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-4f5376eb.js"),["assets/InstallAssistantStep5-4f5376eb.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-c5885604.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-5462c71a.js"),["assets/InstallAssistantStep6-5462c71a.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-0bbbc31c.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-770032ea.js"),["assets/InstallAssistantStep7-770032ea.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-93e246a9.js","assets/OpenwbSortableList-0c9bfbcf.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-10142ea9.js"),["assets/InstallAssistantStep8-10142ea9.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-d6afdbf7.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-491da28b.js"),["assets/InstallAssistantStep9-491da28b.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-e058d6c6.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-6ae64151.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-e058d6c6.js"),["assets/InstallAssistantStepTemplate-e058d6c6.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistantStep0-4316f81d.js b/web/settings/assets/InstallAssistantStep0-136d436d.js similarity index 95% rename from web/settings/assets/InstallAssistantStep0-4316f81d.js rename to web/settings/assets/InstallAssistantStep0-136d436d.js index f6f5b46b39..5eaf697fbe 100644 --- a/web/settings/assets/InstallAssistantStep0-4316f81d.js +++ b/web/settings/assets/InstallAssistantStep0-136d436d.js @@ -1 +1 @@ -import{C as m}from"./index-e4c17b07.js";import g from"./InstallAssistantStepTemplate-27c622cd.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; +import{C as m}from"./index-2eee0632.js";import g from"./InstallAssistantStepTemplate-e058d6c6.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep1-2c79328f.js b/web/settings/assets/InstallAssistantStep1-2b912516.js similarity index 89% rename from web/settings/assets/InstallAssistantStep1-2c79328f.js rename to web/settings/assets/InstallAssistantStep1-2b912516.js index 13d8df292a..0f8be3ecb1 100644 --- a/web/settings/assets/InstallAssistantStep1-2c79328f.js +++ b/web/settings/assets/InstallAssistantStep1-2b912516.js @@ -1 +1 @@ -import{C as m}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{D as l}from"./DataManagement-337c2c94.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; +import{C as m}from"./index-2eee0632.js";import p from"./InstallAssistantStepTemplate-e058d6c6.js";import{D as l}from"./DataManagement-6ae64151.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-b27cf512.js b/web/settings/assets/InstallAssistantStep10-832ca0fb.js similarity index 91% rename from web/settings/assets/InstallAssistantStep10-b27cf512.js rename to web/settings/assets/InstallAssistantStep10-832ca0fb.js index b75940a3cf..9611fda86e 100644 --- a/web/settings/assets/InstallAssistantStep10-b27cf512.js +++ b/web/settings/assets/InstallAssistantStep10-832ca0fb.js @@ -1 +1 @@ -import{C as a}from"./index-e4c17b07.js";import o from"./InstallAssistantStepTemplate-27c622cd.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; +import{C as a}from"./index-2eee0632.js";import o from"./InstallAssistantStepTemplate-e058d6c6.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-4bb75653.js b/web/settings/assets/InstallAssistantStep2-ef61c521.js similarity index 90% rename from web/settings/assets/InstallAssistantStep2-4bb75653.js rename to web/settings/assets/InstallAssistantStep2-ef61c521.js index 408edcac0a..4061c44782 100644 --- a/web/settings/assets/InstallAssistantStep2-4bb75653.js +++ b/web/settings/assets/InstallAssistantStep2-ef61c521.js @@ -1 +1 @@ -import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import d from"./System-5b07ce9f.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null," Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen. ",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; +import{C as l}from"./index-2eee0632.js";import p from"./InstallAssistantStepTemplate-e058d6c6.js";import d from"./System-6050454e.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null," Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen. ",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep3-c4997725.js b/web/settings/assets/InstallAssistantStep3-e93db963.js similarity index 91% rename from web/settings/assets/InstallAssistantStep3-c4997725.js rename to web/settings/assets/InstallAssistantStep3-e93db963.js index 40cac51743..a256050fac 100644 --- a/web/settings/assets/InstallAssistantStep3-c4997725.js +++ b/web/settings/assets/InstallAssistantStep3-e93db963.js @@ -1 +1 @@ -import{C as p}from"./index-e4c17b07.js";import d from"./InstallAssistantStepTemplate-27c622cd.js";import{G as m}from"./GeneralConfig-1aa02fdc.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondarybetrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; +import{C as p}from"./index-2eee0632.js";import d from"./InstallAssistantStepTemplate-e058d6c6.js";import{G as m}from"./GeneralConfig-b20b00f2.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondarybetrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep4-abf0a08d.js b/web/settings/assets/InstallAssistantStep4-32729289.js similarity index 91% rename from web/settings/assets/InstallAssistantStep4-abf0a08d.js rename to web/settings/assets/InstallAssistantStep4-32729289.js index 274fbfa720..5e109f045b 100644 --- a/web/settings/assets/InstallAssistantStep4-abf0a08d.js +++ b/web/settings/assets/InstallAssistantStep4-32729289.js @@ -1 +1 @@ -import{C as l}from"./index-e4c17b07.js";import d from"./InstallAssistantStepTemplate-27c622cd.js";import{b as m}from"./ChargePointInstallation-4bbfab0c.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; +import{C as l}from"./index-2eee0632.js";import d from"./InstallAssistantStepTemplate-e058d6c6.js";import{b as m}from"./ChargePointInstallation-0bbbc31c.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-98043578.js b/web/settings/assets/InstallAssistantStep4.1-9118c7fc.js similarity index 90% rename from web/settings/assets/InstallAssistantStep4.1-98043578.js rename to web/settings/assets/InstallAssistantStep4.1-9118c7fc.js index 8a6689d1f9..bef9a4870a 100644 --- a/web/settings/assets/InstallAssistantStep4.1-98043578.js +++ b/web/settings/assets/InstallAssistantStep4.1-9118c7fc.js @@ -1 +1 @@ -import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{I as d}from"./IoConfig-83896e35.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[i("p",null,' Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems. ',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; +import{C as l}from"./index-2eee0632.js";import p from"./InstallAssistantStepTemplate-e058d6c6.js";import{I as d}from"./IoConfig-f463e4c2.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[i("p",null,' Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems. ',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep5-ee0ba959.js b/web/settings/assets/InstallAssistantStep5-4f5376eb.js similarity index 92% rename from web/settings/assets/InstallAssistantStep5-ee0ba959.js rename to web/settings/assets/InstallAssistantStep5-4f5376eb.js index 046ae03b37..03e084423c 100644 --- a/web/settings/assets/InstallAssistantStep5-ee0ba959.js +++ b/web/settings/assets/InstallAssistantStep5-4f5376eb.js @@ -1 +1 @@ -import{C as d}from"./index-e4c17b07.js";import m from"./InstallAssistantStepTemplate-27c622cd.js";import{H as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; +import{C as d}from"./index-2eee0632.js";import m from"./InstallAssistantStepTemplate-e058d6c6.js";import{H as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep6-60f17c70.js b/web/settings/assets/InstallAssistantStep6-5462c71a.js similarity index 94% rename from web/settings/assets/InstallAssistantStep6-60f17c70.js rename to web/settings/assets/InstallAssistantStep6-5462c71a.js index 08093ac29e..3b7850fcdc 100644 --- a/web/settings/assets/InstallAssistantStep6-60f17c70.js +++ b/web/settings/assets/InstallAssistantStep6-5462c71a.js @@ -1 +1 @@ -import{C as d}from"./index-e4c17b07.js";import u from"./InstallAssistantStepTemplate-27c622cd.js";import{b as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as m,u as a,l as g,x as h,E as r,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(t,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return g(),h(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" Interne openWB ausgewählt. Weitere LP werden im primary als secondary konfigurierte openWB oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null," Im grauen Menü Ladepunkt-Profile können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; +import{C as d}from"./index-2eee0632.js";import u from"./InstallAssistantStepTemplate-e058d6c6.js";import{b as p}from"./ChargePointInstallation-0bbbc31c.js";import{_ as m,u as a,l as g,x as h,E as r,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(t,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return g(),h(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" Interne openWB ausgewählt. Weitere LP werden im primary als secondary konfigurierte openWB oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null," Im grauen Menü Ladepunkt-Profile können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep7-881db088.js b/web/settings/assets/InstallAssistantStep7-770032ea.js similarity index 91% rename from web/settings/assets/InstallAssistantStep7-881db088.js rename to web/settings/assets/InstallAssistantStep7-770032ea.js index 5b707bfae2..7726e7fa48 100644 --- a/web/settings/assets/InstallAssistantStep7-881db088.js +++ b/web/settings/assets/InstallAssistantStep7-770032ea.js @@ -1 +1 @@ -import{C as l}from"./index-e4c17b07.js";import m from"./InstallAssistantStepTemplate-27c622cd.js";import p from"./LoadManagementConfig-9ba2529d.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./OpenwbSortableList-227b0e79.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null," Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. secondary openWB) befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ",-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; +import{C as l}from"./index-2eee0632.js";import m from"./InstallAssistantStepTemplate-e058d6c6.js";import p from"./LoadManagementConfig-93e246a9.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./OpenwbSortableList-0c9bfbcf.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null," Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. secondary openWB) befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ",-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep8-174b8e4b.js b/web/settings/assets/InstallAssistantStep8-10142ea9.js similarity index 93% rename from web/settings/assets/InstallAssistantStep8-174b8e4b.js rename to web/settings/assets/InstallAssistantStep8-10142ea9.js index fc479a9f19..b438cff620 100644 --- a/web/settings/assets/InstallAssistantStep8-174b8e4b.js +++ b/web/settings/assets/InstallAssistantStep8-10142ea9.js @@ -1 +1 @@ -import{C as g}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{a as h}from"./VehicleConfig-2e0daf8e.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; +import{C as g}from"./index-2eee0632.js";import p from"./InstallAssistantStepTemplate-e058d6c6.js";import{a as h}from"./VehicleConfig-d6afdbf7.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep9-21d7f4da.js b/web/settings/assets/InstallAssistantStep9-491da28b.js similarity index 90% rename from web/settings/assets/InstallAssistantStep9-21d7f4da.js rename to web/settings/assets/InstallAssistantStep9-491da28b.js index 09a5b58b09..f8320fec84 100644 --- a/web/settings/assets/InstallAssistantStep9-21d7f4da.js +++ b/web/settings/assets/InstallAssistantStep9-491da28b.js @@ -1 +1 @@ -import{C as l}from"./index-e4c17b07.js";import p from"./InstallAssistantStepTemplate-27c622cd.js";import{D as u}from"./DataManagement-337c2c94.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; +import{C as l}from"./index-2eee0632.js";import p from"./InstallAssistantStepTemplate-e058d6c6.js";import{D as u}from"./DataManagement-6ae64151.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-27c622cd.js b/web/settings/assets/InstallAssistantStepTemplate-e058d6c6.js similarity index 97% rename from web/settings/assets/InstallAssistantStepTemplate-27c622cd.js rename to web/settings/assets/InstallAssistantStepTemplate-e058d6c6.js index 8465c22c5e..0b65240051 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-27c622cd.js +++ b/web/settings/assets/InstallAssistantStepTemplate-e058d6c6.js @@ -1 +1 @@ -import{C as g}from"./index-e4c17b07.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; +import{C as g}from"./index-2eee0632.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfig-83896e35.js b/web/settings/assets/IoConfig-f463e4c2.js similarity index 94% rename from web/settings/assets/IoConfig-83896e35.js rename to web/settings/assets/IoConfig-f463e4c2.js index 412ce77f30..207d0df44d 100644 --- a/web/settings/assets/IoConfig-83896e35.js +++ b/web/settings/assets/IoConfig-f463e4c2.js @@ -1 +1 @@ -import{l as q,ab as $,F as L}from"./vendor-fortawesome-a02b6813.js";import{_ as A,C as E}from"./index-e4c17b07.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-25d394b4.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-ff6641fb.js"),["assets/io_device-ff6641fb.js","assets/index-e4c17b07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-9ff50b11.js"),["assets/io_device-9ff50b11.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[6]||(e[6]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128)),e[2]||(e[2]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[3]||(e[3]=w("br",null,null,-1)),e[4]||(e[4]=d(" Beispiel: ",-1)),e[5]||(e[5]=w("span",{class:"text-info"},"false",-1))])]),_:1,__:[6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-976bf2b0.js"),["assets/io_action-976bf2b0.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-b9cbb026.js"),["assets/io_action-b9cbb026.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-c0bcbb6c.js"),["assets/io_action-c0bcbb6c.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-e0e64896.js"),["assets/io_action-e0e64896.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; +import{l as q,ab as $,F as L}from"./vendor-fortawesome-a02b6813.js";import{_ as A,C as E}from"./index-2eee0632.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-25d394b4.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-8d69d696.js"),["assets/io_device-8d69d696.js","assets/index-2eee0632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-e732c7fa.js"),["assets/io_device-e732c7fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[6]||(e[6]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128)),e[2]||(e[2]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[3]||(e[3]=w("br",null,null,-1)),e[4]||(e[4]=d(" Beispiel: ",-1)),e[5]||(e[5]=w("span",{class:"text-info"},"false",-1))])]),_:1,__:[6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-ed20fe66.js"),["assets/io_action-ed20fe66.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-463b6914.js"),["assets/io_action-463b6914.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-bdac70f1.js"),["assets/io_action-bdac70f1.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-7bd7a97f.js"),["assets/io_action-7bd7a97f.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/LegalSettings-0495f43d.js b/web/settings/assets/LegalSettings-91c84c8b.js similarity index 97% rename from web/settings/assets/LegalSettings-0495f43d.js rename to web/settings/assets/LegalSettings-91c84c8b.js index a67b2cdc9b..f42a848498 100644 --- a/web/settings/assets/LegalSettings-0495f43d.js +++ b/web/settings/assets/LegalSettings-91c84c8b.js @@ -1 +1 @@ -import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-e4c17b07.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; +import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-2eee0632.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; diff --git a/web/settings/assets/LoadManagementConfig-9ba2529d.js b/web/settings/assets/LoadManagementConfig-93e246a9.js similarity index 98% rename from web/settings/assets/LoadManagementConfig-9ba2529d.js rename to web/settings/assets/LoadManagementConfig-93e246a9.js index cdaa12d128..4051c8f4a3 100644 --- a/web/settings/assets/LoadManagementConfig-9ba2529d.js +++ b/web/settings/assets/LoadManagementConfig-93e246a9.js @@ -1 +1 @@ -import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as Z}from"./index-e4c17b07.js";import{S as q}from"./OpenwbSortableList-227b0e79.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as w,M as v,F as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),W=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),_=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(W,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(w,null,v(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(_,{icon:["fas","gauge-high"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(w,null,v(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(_,{icon:["fas","solar-panel"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; +import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as Z}from"./index-2eee0632.js";import{S as q}from"./OpenwbSortableList-0c9bfbcf.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as w,M as v,F as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),W=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),_=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(W,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(w,null,v(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(_,{icon:["fas","gauge-high"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(w,null,v(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(_,{icon:["fas","solar-panel"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfig-0cb3253c.js b/web/settings/assets/MqttBridgeConfig-3fd6be01.js similarity index 99% rename from web/settings/assets/MqttBridgeConfig-0cb3253c.js rename to web/settings/assets/MqttBridgeConfig-3fd6be01.js index 41651aeef4..0ce97a1cc4 100644 --- a/web/settings/assets/MqttBridgeConfig-0cb3253c.js +++ b/web/settings/assets/MqttBridgeConfig-3fd6be01.js @@ -1 +1 @@ -import{l as x,d as C,ab as A,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-e4c17b07.js";import{_ as D,u,l as m,m as b,G as o,E as a,A as f,N as M,B as s,F as E,x as k,z as T,M as W}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";x.add(C,A);const I={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:q},mixins:[z],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},P={class:"mqttBridgeConfiguration"},Q={key:0},Z={key:1},y=["name"];function N(t,e,v,F,g,i){const U=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),_=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),B=u("openwb-base-number-input"),S=u("openwb-base-submit-buttons"),w=u("openwb-base-card");return m(),b(M,null,[o(U,{show:g.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>i.removeMqttBridge(g.modalMqttBridgeIndex,r))},{default:a(()=>[s(' Wollen Sie die MQTT-Brücke "'+E(i.getMqttBridgeName(g.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),f("div",P,[o(c,{subtype:"danger"},{default:a(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),f("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),o(w,{title:"Konfigurierte MQTT-Brücken"},{actions:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),k(_,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:a(()=>[o(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):T("",!0)]),default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",Q,[o(c,{subtype:"info"},{default:a(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",Z,[Object.keys(i.configuredMqttBridges).length===0?(m(),k(c,{key:0,subtype:"info"},{default:a(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):T("",!0),(m(!0),b(M,null,W(i.configuredMqttBridges,(r,l)=>(m(),b("form",{key:l,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l)},[o(w,{title:r.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:a(()=>[o(_,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(l,n)},{default:a(()=>[o(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:a(()=>[o(S,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l),"hide-defaults":!0,onSave:n=>t.$emit("save",[l]),onReset:n=>t.$emit("reset",[l])},null,8,["form-name","onSave","onReset"])]),default:a(()=>[o(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":r.name,"onUpdate:modelValue":n=>t.updateState(l,n,"name")},{help:a(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.active,"onUpdate:modelValue":n=>t.updateState(l,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),o(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":r.remote.host,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),o(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":r.remote.port,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":r.remote.username,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Passwort",subtype:"password",required:"","model-value":r.remote.password,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":r.remote.prefix,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.prefix")},{help:a(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":r.remote.client_id,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.client_id")},{help:a(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":r.remote.protocol,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),o(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":r.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.tls_version")},{help:a(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.remote.try_private,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.try_private")},{help:a(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),o(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.status")},{help:a(()=>[...e[11]||(e[11]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.graph")},{help:a(()=>[...e[12]||(e[12]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.configuration")},{help:a(()=>[...e[13]||(e[13]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,y))),128))]))]),_:1})])],64)}const J=D(I,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; +import{l as x,d as C,ab as A,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-2eee0632.js";import{_ as D,u,l as m,m as b,G as o,E as a,A as f,N as M,B as s,F as E,x as k,z as T,M as W}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";x.add(C,A);const I={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:q},mixins:[z],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},P={class:"mqttBridgeConfiguration"},Q={key:0},Z={key:1},y=["name"];function N(t,e,v,F,g,i){const U=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),_=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),B=u("openwb-base-number-input"),S=u("openwb-base-submit-buttons"),w=u("openwb-base-card");return m(),b(M,null,[o(U,{show:g.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>i.removeMqttBridge(g.modalMqttBridgeIndex,r))},{default:a(()=>[s(' Wollen Sie die MQTT-Brücke "'+E(i.getMqttBridgeName(g.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),f("div",P,[o(c,{subtype:"danger"},{default:a(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),f("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),o(w,{title:"Konfigurierte MQTT-Brücken"},{actions:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),k(_,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:a(()=>[o(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):T("",!0)]),default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",Q,[o(c,{subtype:"info"},{default:a(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",Z,[Object.keys(i.configuredMqttBridges).length===0?(m(),k(c,{key:0,subtype:"info"},{default:a(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):T("",!0),(m(!0),b(M,null,W(i.configuredMqttBridges,(r,l)=>(m(),b("form",{key:l,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l)},[o(w,{title:r.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:a(()=>[o(_,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(l,n)},{default:a(()=>[o(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:a(()=>[o(S,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(l),"hide-defaults":!0,onSave:n=>t.$emit("save",[l]),onReset:n=>t.$emit("reset",[l])},null,8,["form-name","onSave","onReset"])]),default:a(()=>[o(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":r.name,"onUpdate:modelValue":n=>t.updateState(l,n,"name")},{help:a(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.active,"onUpdate:modelValue":n=>t.updateState(l,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),o(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":r.remote.host,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),o(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":r.remote.port,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":r.remote.username,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Passwort",subtype:"password",required:"","model-value":r.remote.password,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),o(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":r.remote.prefix,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.prefix")},{help:a(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":r.remote.client_id,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.client_id")},{help:a(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":r.remote.protocol,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),o(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":r.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.tls_version")},{help:a(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.remote.try_private,"onUpdate:modelValue":n=>t.updateState(l,n,"remote.try_private")},{help:a(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=f("hr",null,null,-1)),o(V,null,{default:a(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),o(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.status")},{help:a(()=>[...e[11]||(e[11]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.graph")},{help:a(()=>[...e[12]||(e[12]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(l,n,"data_transfer.configuration")},{help:a(()=>[...e[13]||(e[13]=[s(" ToDo... ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,y))),128))]))]),_:1})])],64)}const J=D(I,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbSortableList-227b0e79.js b/web/settings/assets/OpenwbSortableList-0c9bfbcf.js similarity index 97% rename from web/settings/assets/OpenwbSortableList-227b0e79.js rename to web/settings/assets/OpenwbSortableList-0c9bfbcf.js index f9f72eb39b..7afb0b4d2a 100644 --- a/web/settings/assets/OpenwbSortableList-227b0e79.js +++ b/web/settings/assets/OpenwbSortableList-0c9bfbcf.js @@ -1 +1 @@ -import{O as v}from"./index-e4c17b07.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-25d394b4.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-a02b6813.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; +import{O as v}from"./index-2eee0632.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-25d394b4.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-a02b6813.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; diff --git a/web/settings/assets/OptionalComponents-eab310e0.js b/web/settings/assets/OptionalComponents-5a739fed.js similarity index 95% rename from web/settings/assets/OptionalComponents-eab310e0.js rename to web/settings/assets/OptionalComponents-5a739fed.js index e367dc3b9c..0c68dc1ad2 100644 --- a/web/settings/assets/OptionalComponents-eab310e0.js +++ b/web/settings/assets/OptionalComponents-5a739fed.js @@ -1 +1 @@ -import{_ as T,C as $}from"./index-e4c17b07.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-25d394b4.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-c2dceb48.js"),["assets/displayTheme-c2dceb48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-178db1df.js"),["assets/displayTheme-178db1df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; +import{_ as T,C as $}from"./index-2eee0632.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-25d394b4.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-1f129bcc.js"),["assets/displayTheme-1f129bcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-82cce4cb.js"),["assets/displayTheme-82cce4cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/PVChargeConfig-e427d7a6.js b/web/settings/assets/PVChargeConfig-22a027f2.js similarity index 99% rename from web/settings/assets/PVChargeConfig-e427d7a6.js rename to web/settings/assets/PVChargeConfig-22a027f2.js index fe34b39556..ba01347df3 100644 --- a/web/settings/assets/PVChargeConfig-e427d7a6.js +++ b/web/settings/assets/PVChargeConfig-22a027f2.js @@ -1 +1 @@ -import{C as S}from"./index-e4c17b07.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-a02b6813.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; +import{C as S}from"./index-2eee0632.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-a02b6813.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/Status-f48d27b8.js b/web/settings/assets/Status-9c9c8fbe.js similarity index 99% rename from web/settings/assets/Status-f48d27b8.js rename to web/settings/assets/Status-9c9c8fbe.js index 3317f17f3b..6b62439c6a 100644 --- a/web/settings/assets/Status-f48d27b8.js +++ b/web/settings/assets/Status-9c9c8fbe.js @@ -1 +1 @@ -import{C as k}from"./index-e4c17b07.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-a02b6813.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-25d394b4.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-94a826eb.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; +import{C as k}from"./index-2eee0632.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-a02b6813.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-25d394b4.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-94a826eb.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Support-d39bee6a.js b/web/settings/assets/Support-1b1bf87d.js similarity index 99% rename from web/settings/assets/Support-d39bee6a.js rename to web/settings/assets/Support-1b1bf87d.js index 8cddce1bdd..21ad95d81a 100644 --- a/web/settings/assets/Support-d39bee6a.js +++ b/web/settings/assets/Support-1b1bf87d.js @@ -1,3 +1,3 @@ -import{l as S,g as D,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as W}from"./index-e4c17b07.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} +import{l as S,g as D,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as W}from"./index-2eee0632.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} `}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} `}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),_=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[5]}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1,__:[6,7]})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[8]}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1,__:[9,10]}),o(B,{title:"Systembericht"},z({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])),_:1,__:[11]}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])),_:1,__:[19]})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])),_:1,__:[22]})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:C(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>e[25]||(e[25]=[n(" Absenden ",-1)])),_:1,__:[25]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(_,{icon:["fas","check"]})]),_:1,__:[26]}))]))])])}const $=A(F,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/System-5b07ce9f.js b/web/settings/assets/System-6050454e.js similarity index 99% rename from web/settings/assets/System-5b07ce9f.js rename to web/settings/assets/System-6050454e.js index d6006b503e..606a48b906 100644 --- a/web/settings/assets/System-5b07ce9f.js +++ b/web/settings/assets/System-6050454e.js @@ -1 +1 @@ -import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-a02b6813.js";import{C as D}from"./index-e4c17b07.js";import{_ as R,u as g,l as p,m as y,x as _,E as i,z as h,G as r,A as a,q as k,N as V,M as A,F as B,B as l}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),_(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),a("form",N,[r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),_(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},B(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),_(n,{key:1,subtype:"danger"},{default:i(()=>e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),_(n,{key:2,subtype:"danger"},{default:i(()=>e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,B(s.name),1),a("td",null,B(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,B(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)]),_:1},8,["collapsed"])]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/Support"},{default:i(()=>e[30]||(e[30]=[l(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:i(()=>e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; +import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-a02b6813.js";import{C as D}from"./index-2eee0632.js";import{_ as R,u as g,l as p,m as y,x as _,E as i,z as h,G as r,A as a,q as k,N as V,M as A,F as B,B as l}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),_(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),a("form",N,[r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),_(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},B(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),_(n,{key:1,subtype:"danger"},{default:i(()=>e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),_(n,{key:2,subtype:"danger"},{default:i(()=>e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,B(s.name),1),a("td",null,B(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,B(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)]),_:1},8,["collapsed"])]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/Support"},{default:i(()=>e[30]||(e[30]=[l(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:i(()=>e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/TestingStore-be12c671.js b/web/settings/assets/TestingStore-9ee088d7.js similarity index 98% rename from web/settings/assets/TestingStore-be12c671.js rename to web/settings/assets/TestingStore-9ee088d7.js index ee6da320f0..69909c747f 100644 --- a/web/settings/assets/TestingStore-be12c671.js +++ b/web/settings/assets/TestingStore-9ee088d7.js @@ -1 +1 @@ -import{C as B}from"./index-e4c17b07.js";import{S as O}from"./OpenwbSortableList-227b0e79.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; +import{C as B}from"./index-2eee0632.js";import{S as O}from"./OpenwbSortableList-0c9bfbcf.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/VehicleConfig-2e0daf8e.js b/web/settings/assets/VehicleConfig-d6afdbf7.js similarity index 95% rename from web/settings/assets/VehicleConfig-2e0daf8e.js rename to web/settings/assets/VehicleConfig-d6afdbf7.js index 5fba03ddaa..49b5fd88c5 100644 --- a/web/settings/assets/VehicleConfig-2e0daf8e.js +++ b/web/settings/assets/VehicleConfig-d6afdbf7.js @@ -1 +1 @@ -import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as oe,a0 as de,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-e4c17b07.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as c,l as d,m as g,x as b,E as a,B as i,F as w,G as l,A as p,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-25d394b4.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,P,y,t){const E=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),g("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[p("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-ce15b972.js"),["assets/vehicle-ce15b972.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-2e31f054.js"),["assets/vehicle-2e31f054.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-b6b40aa6.js"),["assets/vehicle-b6b40aa6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-81c54b19.js"),["assets/vehicle-81c54b19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-552086ad.js"),["assets/vehicle-552086ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-b55a7355.js"),["assets/vehicle-b55a7355.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-5bf23959.js"),["assets/vehicle-5bf23959.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-54d21a19.js"),["assets/vehicle-54d21a19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-f5091955.js"),["assets/vehicle-f5091955.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-bc9278d5.js"),["assets/vehicle-bc9278d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-4ee84148.js"),["assets/vehicle-4ee84148.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-62ddb254.js"),["assets/vehicle-62ddb254.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-d5f041d0.js"),["assets/vehicle-d5f041d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-a44392fc.js"),["assets/vehicle-a44392fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-e22aaad0.js"),["assets/vehicle-e22aaad0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-081d1860.js"),["assets/vehicle-081d1860.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-02f99327.js"),["assets/vehicle-02f99327.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-a08311d0.js"),["assets/vehicle-a08311d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-aa814b6d.js"),["assets/vehicle-aa814b6d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-e4c17b07.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-fa5f8129.js"),["assets/vehicle-fa5f8129.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-3688de48.js"),["assets/vehicle-3688de48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-e4c17b07.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,y,t){const E=c("font-awesome-icon"),h=c("openwb-base-alert"),z=c("openwb-base-heading");return d(),g(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Pe={key:2},Ue={key:3},Le={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Le,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),g("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),g("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",Be,[(d(!0),g(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(d(),b(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(d(),g("div",Me,[e[30]||(e[30]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),p("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(d(),b(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),g("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=p("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",He,[(d(!0),g(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(oe,X,j,G,J,H,R,I,de,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const y=`card-${n}-${P}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=P!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},on={key:0},dn={key:0},sn={key:1},mn={key:0},gn={key:0},pn={key:3},hn={key:0},cn={key:1},bn={key:0},fn={key:0},vn={key:1};function _n(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),S=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),L=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),g(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=u=>t.removeVehicle(u,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=u=>t.removeEvTemplate(u,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=u=>t.removeChargeTemplate(u,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",Qe,[p("form",Xe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(d(),g("div",Ke,[(d(!0),g(W,null,D(t.vehicleIndexes,u=>(d(),b(U,{key:u,title:t.getVehicleName(u),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==u),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/name"],disabled:u===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/name",o)},Z({_:2},[u===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),u!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),u!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),p("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=p("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),g("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"].length>0?(d(),g("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),g("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(d(),g("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"]},null,8,["model-value"])])):(d(),g("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=p("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=p("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(u,o)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),p("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),p("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),p("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type?(d(),g("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":u,vehicle:n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+u+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[u!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:r=>t.removeVehicleModal(r,u)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=p("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(d(),g("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),p("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(d(!0),g(W,null,D(t.evTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":u.battery_capacity/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":u.efficiency,"onUpdate:modelValue":r=>n.updateState(o,r,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),p("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),p("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":u.average_consump/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":u.bidi,"onUpdate:modelValue":r=>n.updateState(o,r,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),g("div",sn,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(u.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(u.dc_max_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),g("span",mn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(L,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":u.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":u.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":u.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":u.nominal_difference,"onUpdate:modelValue":r=>n.updateState(o,r,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),g("span",gn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":u.max_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.control_pilot_interruption,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":u.control_pilot_interruption_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_phase_switch,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_charge_stop,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":u.phase_switch_pause,"onUpdate:modelValue":r=>n.updateState(o,r,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",pn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":u.keep_charge_active_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(r=>[r.collapsed?m("",!0):(d(),g("span",on,[l(z,{class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",hn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(d(),g("div",cn,[(d(!0),g(W,null,D(t.chargeTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==u.id)},{actions:a(r=>[r.collapsed?m("",!0):(d(),g("span",bn,[l(z,{class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":u.chargemode.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.selected"),onButtonClick:r=>t.openActiveChargeModeCard(o,r)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),p("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),p("br",null,null,-1),p("ol",null,[p("li",null,"Ziel (Sofortladen) mit Priorität"),p("li",null,"Ziel (Sofortladen)"),p("li",null,"Zeit mit Priorität"),p("li",null,"Zeit"),p("li",null,"Sofort mit Priorität"),p("li",null,"Sofort"),p("li",null,"Eco (Min-Anteil) mit Priorität"),p("li",null,"Eco (Min-Anteil)"),p("li",null,"PV (Min-Anteil) mit Priorität"),p("li",null,"PV (Min-Anteil)"),p("li",null,"Ziel (PV) mit Priorität"),p("li",null,"Ziel (PV)"),p("li",null,"Eco (PV-Anteil) mit Priorität"),p("li",null,"Eco (PV-Anteil)"),p("li",null,"PV (PV-Anteil) mit Priorität"),p("li",null,"PV (PV-Anteil)"),p("li",null,"Bidi-Entladen ohne Priorität"),p("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),g("div",fn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.prio,"onUpdate:modelValue":r=>n.updateState(o,r,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.load_default,"onUpdate:modelValue":r=>n.updateState(o,r,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=p("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(L,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.instant_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.instant_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(L,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":u.chargemode.pv_charging.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":u.chargemode.pv_charging.min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),p("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateSchedulePlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),p("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),p("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),u.chargemode.scheduled_charging.plans.length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(d(!0),g(W,null,D(u.chargemode.scheduled_charging.plans,(r,A)=>(d(),b(ne,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(L,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.eco_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.eco_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(d(),b(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":u.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":r=>n.updateState(o,parseFloat((r/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),g("div",vn,[e[92]||(e[92]=p("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.time_charging.active,"onUpdate:modelValue":r=>n.updateState(o,r,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[p("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),p("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateTimeChargingPlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(u.time_charging.plans??[]).length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(d(!0),g(W,null,D(u.time_charging.plans??[],(r,A)=>(d(),b(te,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=u=>n.$emit("save")),onReset:e[6]||(e[6]=u=>n.$emit("reset")),onDefaults:e[7]||(e[7]=u=>n.$emit("defaults"))})])])],64)}const Vn=q(Ge,[["render",_n],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,Vn as a,Sn as b}; +import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as oe,a0 as de,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-2eee0632.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as c,l as d,m as g,x as b,E as a,B as i,F as w,G as l,A as p,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-25d394b4.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,P,y,t){const E=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),g("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[p("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-6d1ae41c.js"),["assets/vehicle-6d1ae41c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-9482d119.js"),["assets/vehicle-9482d119.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-f779e07f.js"),["assets/vehicle-f779e07f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-79879d28.js"),["assets/vehicle-79879d28.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-b78c41a7.js"),["assets/vehicle-b78c41a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-64bfc69a.js"),["assets/vehicle-64bfc69a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-c6f30989.js"),["assets/vehicle-c6f30989.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-13675add.js"),["assets/vehicle-13675add.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-11565bbb.js"),["assets/vehicle-11565bbb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-3288206c.js"),["assets/vehicle-3288206c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-3a2ce5a8.js"),["assets/vehicle-3a2ce5a8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-a97ad9e3.js"),["assets/vehicle-a97ad9e3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-0fbea598.js"),["assets/vehicle-0fbea598.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-916e09c5.js"),["assets/vehicle-916e09c5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-1bde8cf1.js"),["assets/vehicle-1bde8cf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-0ddcea52.js"),["assets/vehicle-0ddcea52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-b10f3057.js"),["assets/vehicle-b10f3057.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-93664b48.js"),["assets/vehicle-93664b48.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-8e6d439c.js"),["assets/vehicle-8e6d439c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-2eee0632.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-3a8c6a3b.js"),["assets/vehicle-3a8c6a3b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-5da275c6.js"),["assets/vehicle-5da275c6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-2eee0632.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-de563ad7.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,y,t){const E=c("font-awesome-icon"),h=c("openwb-base-alert"),z=c("openwb-base-heading");return d(),g(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Pe={key:2},Ue={key:3},Le={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Le,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),g("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),g("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",Be,[(d(!0),g(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(d(),b(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(d(),g("div",Me,[e[30]||(e[30]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),p("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(d(),b(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),S=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),g(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),g("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),g("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),g("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),g("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),g("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),g("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=p("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),g("div",He,[(d(!0),g(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=p("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(oe,X,j,G,J,H,R,I,de,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const y=`card-${n}-${P}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=P!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},on={key:0},dn={key:0},sn={key:1},mn={key:0},gn={key:0},pn={key:3},hn={key:0},cn={key:1},bn={key:0},fn={key:0},vn={key:1};function _n(n,e,f,P,y,t){const E=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),z=c("openwb-base-avatar"),V=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),S=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),L=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),g(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=u=>t.removeVehicle(u,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=u=>t.removeEvTemplate(u,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=u=>t.removeChargeTemplate(u,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",Qe,[p("form",Xe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(d(),g("div",Ke,[(d(!0),g(W,null,D(t.vehicleIndexes,u=>(d(),b(U,{key:u,title:t.getVehicleName(u),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==u),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/name"],disabled:u===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/name",o)},Z({_:2},[u===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),u!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),u!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/info"].model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),p("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=p("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),g("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"].length>0?(d(),g("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),g("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(d(),g("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/tag_id"]},null,8,["model-value"])])):(d(),g("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=p("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=p("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(u,o)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),p("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),p("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),p("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"].type?(d(),g("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:1,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+u+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":u,vehicle:n.$store.state.mqtt["openWB/vehicle/"+u+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+u+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[u!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:r=>t.removeVehicleModal(r,u)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=p("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(d(),g("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),p("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(d(!0),g(W,null,D(t.evTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":u.battery_capacity/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":u.efficiency,"onUpdate:modelValue":r=>n.updateState(o,r,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),p("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),p("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),p("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":u.average_consump/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":u.bidi,"onUpdate:modelValue":r=>n.updateState(o,r,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),g("div",sn,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(u.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(u.dc_max_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),g("span",mn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(L,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":u.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":u.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(L,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":u.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":u.nominal_difference,"onUpdate:modelValue":r=>n.updateState(o,r,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),g("span",gn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":u.max_phases,"onUpdate:modelValue":r=>n.updateState(o,r,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.control_pilot_interruption,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":u.control_pilot_interruption_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_phase_switch,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.prevent_charge_stop,"onUpdate:modelValue":r=>n.updateState(o,r,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":u.phase_switch_pause,"onUpdate:modelValue":r=>n.updateState(o,r,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),g("div",pn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":u.keep_charge_active_duration,"onUpdate:modelValue":r=>n.updateState(o,r,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(r=>[r.collapsed?m("",!0):(d(),g("span",on,[l(z,{class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),g("div",hn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(d(),g("div",cn,[(d(!0),g(W,null,D(t.chargeTemplates,(u,o)=>(d(),b(U,{key:o,title:u.name?u.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==u.id)},{actions:a(r=>[r.collapsed?m("",!0):(d(),g("span",bn,[l(z,{class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"]),o.endsWith("/0")?m("",!0):(d(),b(z,{key:0,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]))]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":u.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(o,r,"name")},Z({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":u.chargemode.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.selected"),onButtonClick:r=>t.openActiveChargeModeCard(o,r)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),p("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),p("br",null,null,-1),p("ol",null,[p("li",null,"Ziel (Sofortladen) mit Priorität"),p("li",null,"Ziel (Sofortladen)"),p("li",null,"Zeit mit Priorität"),p("li",null,"Zeit"),p("li",null,"Sofort mit Priorität"),p("li",null,"Sofort"),p("li",null,"Eco (Min-Anteil) mit Priorität"),p("li",null,"Eco (Min-Anteil)"),p("li",null,"PV (Min-Anteil) mit Priorität"),p("li",null,"PV (Min-Anteil)"),p("li",null,"Ziel (PV) mit Priorität"),p("li",null,"Ziel (PV)"),p("li",null,"Eco (PV-Anteil) mit Priorität"),p("li",null,"Eco (PV-Anteil)"),p("li",null,"PV (PV-Anteil) mit Priorität"),p("li",null,"PV (PV-Anteil)"),p("li",null,"Bidi-Entladen ohne Priorität"),p("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),g("div",fn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.prio,"onUpdate:modelValue":r=>n.updateState(o,r,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.load_default,"onUpdate:modelValue":r=>n.updateState(o,r,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=p("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(L,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.instant_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.instant_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(L,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":u.chargemode.pv_charging.min_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":u.chargemode.pv_charging.min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),p("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":u.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateSchedulePlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),p("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),p("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),u.chargemode.scheduled_charging.plans.length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(d(!0),g(W,null,D(u.chargemode.scheduled_charging.plans,(r,A)=>(d(),b(ne,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(L,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":u.chargemode.eco_charging.current,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(u.chargemode.eco_charging.dc_current),"onUpdate:modelValue":r=>n.updateState(o,n.dc_power2ac_current(r),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":u.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":u.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":u.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":r=>n.updateState(o,r,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":u.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":r=>n.updateState(o,r*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(d(),b(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":u.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":r=>n.updateState(o,parseFloat((r/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),g("div",vn,[e[92]||(e[92]=p("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":u.time_charging.active,"onUpdate:modelValue":r=>n.updateState(o,r,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[p("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),p("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(r=>t.addChargeTemplateTimeChargingPlan(u.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(u.time_charging.plans??[]).length==0?(d(),b(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(d(!0),g(W,null,D(u.time_charging.plans??[],(r,A)=>(d(),b(te,{key:A,"model-value":r,"template-id":u.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=u=>n.$emit("save")),onReset:e[6]||(e[6]=u=>n.$emit("reset")),onDefaults:e[7]||(e[7]=u=>n.$emit("defaults"))})])])],64)}const Vn=q(Ge,[["render",_n],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,Vn as a,Sn as b}; diff --git a/web/settings/assets/backup_cloud-08aafac7.js b/web/settings/assets/backup_cloud-3f7ed752.js similarity index 96% rename from web/settings/assets/backup_cloud-08aafac7.js rename to web/settings/assets/backup_cloud-3f7ed752.js index c736718f63..e24006abfe 100644 --- a/web/settings/assets/backup_cloud-08aafac7.js +++ b/web/settings/assets/backup_cloud-3f7ed752.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-337c2c94.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; +import{B as c}from"./DataManagement-6ae64151.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-436cb5f2.js b/web/settings/assets/backup_cloud-638ca88c.js similarity index 93% rename from web/settings/assets/backup_cloud-436cb5f2.js rename to web/settings/assets/backup_cloud-638ca88c.js index f0fa61b604..89ec64bbdf 100644 --- a/web/settings/assets/backup_cloud-436cb5f2.js +++ b/web/settings/assets/backup_cloud-638ca88c.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-337c2c94.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; +import{B as r}from"./DataManagement-6ae64151.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/backup_cloud-170635e1.js b/web/settings/assets/backup_cloud-dbe8cfeb.js similarity index 92% rename from web/settings/assets/backup_cloud-170635e1.js rename to web/settings/assets/backup_cloud-dbe8cfeb.js index bc366a20f9..a455691481 100644 --- a/web/settings/assets/backup_cloud-170635e1.js +++ b/web/settings/assets/backup_cloud-dbe8cfeb.js @@ -1 +1 @@ -import{B as a}from"./DataManagement-337c2c94.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; +import{B as a}from"./DataManagement-6ae64151.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-acb80510.js b/web/settings/assets/backup_cloud-fbb1f20b.js similarity index 84% rename from web/settings/assets/backup_cloud-acb80510.js rename to web/settings/assets/backup_cloud-fbb1f20b.js index cd6d2d89f9..0da48fc15c 100644 --- a/web/settings/assets/backup_cloud-acb80510.js +++ b/web/settings/assets/backup_cloud-fbb1f20b.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-337c2c94.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; +import{B as r}from"./DataManagement-6ae64151.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-b9d525a8.js b/web/settings/assets/bat-099bdc33.js similarity index 88% rename from web/settings/assets/bat-b9d525a8.js rename to web/settings/assets/bat-099bdc33.js index 183b1e946b..3009c420ff 100644 --- a/web/settings/assets/bat-b9d525a8.js +++ b/web/settings/assets/bat-099bdc33.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-3999cc82.js b/web/settings/assets/bat-15f709a3.js similarity index 97% rename from web/settings/assets/bat-3999cc82.js rename to web/settings/assets/bat-15f709a3.js index 7779ec1c43..01c11cd2cc 100644 --- a/web/settings/assets/bat-3999cc82.js +++ b/web/settings/assets/bat-15f709a3.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-4626ba65.js b/web/settings/assets/bat-17034055.js similarity index 83% rename from web/settings/assets/bat-4626ba65.js rename to web/settings/assets/bat-17034055.js index 3fa98aa0b4..ae170a37ee 100644 --- a/web/settings/assets/bat-4626ba65.js +++ b/web/settings/assets/bat-17034055.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-ff0fd7a4.js b/web/settings/assets/bat-25fd3dc5.js similarity index 91% rename from web/settings/assets/bat-ff0fd7a4.js rename to web/settings/assets/bat-25fd3dc5.js index 5c7215664e..d709abaf2c 100644 --- a/web/settings/assets/bat-ff0fd7a4.js +++ b/web/settings/assets/bat-25fd3dc5.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-bfa3303d.js b/web/settings/assets/bat-2665ec8d.js similarity index 88% rename from web/settings/assets/bat-bfa3303d.js rename to web/settings/assets/bat-2665ec8d.js index 536376e238..1347e44920 100644 --- a/web/settings/assets/bat-bfa3303d.js +++ b/web/settings/assets/bat-2665ec8d.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-845f69cb.js b/web/settings/assets/bat-335bdc21.js similarity index 91% rename from web/settings/assets/bat-845f69cb.js rename to web/settings/assets/bat-335bdc21.js index 06e1e3a1b5..7b7109930e 100644 --- a/web/settings/assets/bat-845f69cb.js +++ b/web/settings/assets/bat-335bdc21.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-a037c1ad.js b/web/settings/assets/bat-5b4283f7.js similarity index 88% rename from web/settings/assets/bat-a037c1ad.js rename to web/settings/assets/bat-5b4283f7.js index d99c59fd5f..0e9a6e0b67 100644 --- a/web/settings/assets/bat-a037c1ad.js +++ b/web/settings/assets/bat-5b4283f7.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-2f1c9807.js b/web/settings/assets/bat-608d4690.js similarity index 95% rename from web/settings/assets/bat-2f1c9807.js rename to web/settings/assets/bat-608d4690.js index 5605e88126..e7d79698fc 100644 --- a/web/settings/assets/bat-2f1c9807.js +++ b/web/settings/assets/bat-608d4690.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-f9655da7.js b/web/settings/assets/bat-68705b91.js similarity index 86% rename from web/settings/assets/bat-f9655da7.js rename to web/settings/assets/bat-68705b91.js index 2f7cf3aed1..eb3b214214 100644 --- a/web/settings/assets/bat-f9655da7.js +++ b/web/settings/assets/bat-68705b91.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; +import{C as l}from"./HardwareInstallation-c5885604.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-f2c5f46a.js b/web/settings/assets/bat-6e434c5a.js similarity index 97% rename from web/settings/assets/bat-f2c5f46a.js rename to web/settings/assets/bat-6e434c5a.js index 8c0b806bd8..6c56a3f396 100644 --- a/web/settings/assets/bat-f2c5f46a.js +++ b/web/settings/assets/bat-6e434c5a.js @@ -1 +1 @@ -import{C as b}from"./HardwareInstallation-6515151f.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; +import{C as b}from"./HardwareInstallation-c5885604.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-2429ce05.js b/web/settings/assets/bat-732436f9.js similarity index 87% rename from web/settings/assets/bat-2429ce05.js rename to web/settings/assets/bat-732436f9.js index 918e3c43c2..61f363788f 100644 --- a/web/settings/assets/bat-2429ce05.js +++ b/web/settings/assets/bat-732436f9.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-37c3cc3b.js b/web/settings/assets/bat-7a097c4b.js similarity index 88% rename from web/settings/assets/bat-37c3cc3b.js rename to web/settings/assets/bat-7a097c4b.js index e0520cae9a..f9b8185813 100644 --- a/web/settings/assets/bat-37c3cc3b.js +++ b/web/settings/assets/bat-7a097c4b.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-43e9cde4.js b/web/settings/assets/bat-82d8349c.js similarity index 87% rename from web/settings/assets/bat-43e9cde4.js rename to web/settings/assets/bat-82d8349c.js index 6a8100f5cc..1fc535d7b6 100644 --- a/web/settings/assets/bat-43e9cde4.js +++ b/web/settings/assets/bat-82d8349c.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-0b64db60.js b/web/settings/assets/bat-a22314d2.js similarity index 87% rename from web/settings/assets/bat-0b64db60.js rename to web/settings/assets/bat-a22314d2.js index 74273ce60f..3735838110 100644 --- a/web/settings/assets/bat-0b64db60.js +++ b/web/settings/assets/bat-a22314d2.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-6b9fff6c.js b/web/settings/assets/bat-a845e12a.js similarity index 84% rename from web/settings/assets/bat-6b9fff6c.js rename to web/settings/assets/bat-a845e12a.js index eeae113f52..2f742c07b3 100644 --- a/web/settings/assets/bat-6b9fff6c.js +++ b/web/settings/assets/bat-a845e12a.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-513d9188.js b/web/settings/assets/bat-b9569430.js similarity index 87% rename from web/settings/assets/bat-513d9188.js rename to web/settings/assets/bat-b9569430.js index 131784f2ec..51e2d8b772 100644 --- a/web/settings/assets/bat-513d9188.js +++ b/web/settings/assets/bat-b9569430.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-ccce56c3.js b/web/settings/assets/bat-ce2850ac.js similarity index 88% rename from web/settings/assets/bat-ccce56c3.js rename to web/settings/assets/bat-ce2850ac.js index a646a3204d..ade7aa9666 100644 --- a/web/settings/assets/bat-ccce56c3.js +++ b/web/settings/assets/bat-ce2850ac.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-ba22f76f.js b/web/settings/assets/bat-e3a33070.js similarity index 87% rename from web/settings/assets/bat-ba22f76f.js rename to web/settings/assets/bat-e3a33070.js index a6449aa8eb..5b2fe7fd7f 100644 --- a/web/settings/assets/bat-ba22f76f.js +++ b/web/settings/assets/bat-e3a33070.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-5ef99d8c.js b/web/settings/assets/bat-e3d6b389.js similarity index 89% rename from web/settings/assets/bat-5ef99d8c.js rename to web/settings/assets/bat-e3d6b389.js index cfbffde64c..c29a0985d1 100644 --- a/web/settings/assets/bat-5ef99d8c.js +++ b/web/settings/assets/bat-e3d6b389.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-b7a74be0.js b/web/settings/assets/bat-e3fd925f.js similarity index 89% rename from web/settings/assets/bat-b7a74be0.js rename to web/settings/assets/bat-e3fd925f.js index 553d5cb955..9e09db7b98 100644 --- a/web/settings/assets/bat-b7a74be0.js +++ b/web/settings/assets/bat-e3fd925f.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-58a85a8c.js b/web/settings/assets/bat-ef0647b4.js similarity index 89% rename from web/settings/assets/bat-58a85a8c.js rename to web/settings/assets/bat-ef0647b4.js index 910f273a14..d61b6f53c8 100644 --- a/web/settings/assets/bat-58a85a8c.js +++ b/web/settings/assets/bat-ef0647b4.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-3c83952b.js b/web/settings/assets/bat-ff9285e5.js similarity index 87% rename from web/settings/assets/bat-3c83952b.js rename to web/settings/assets/bat-ff9285e5.js index f0ee1b1441..0304fad8a1 100644 --- a/web/settings/assets/bat-3c83952b.js +++ b/web/settings/assets/bat-ff9285e5.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat_smart_energy-35671b9e.js b/web/settings/assets/bat_smart_energy-a6558c75.js similarity index 88% rename from web/settings/assets/bat_smart_energy-35671b9e.js rename to web/settings/assets/bat_smart_energy-a6558c75.js index b73e5030f6..f675902205 100644 --- a/web/settings/assets/bat_smart_energy-35671b9e.js +++ b/web/settings/assets/bat_smart_energy-a6558c75.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/chargePoint-3411e592.js b/web/settings/assets/chargePoint-26fb010d.js similarity index 86% rename from web/settings/assets/chargePoint-3411e592.js rename to web/settings/assets/chargePoint-26fb010d.js index c5b2155530..af1f00c59e 100644 --- a/web/settings/assets/chargePoint-3411e592.js +++ b/web/settings/assets/chargePoint-26fb010d.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-4bbfab0c.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-0bbbc31c.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-64ce2ff0.js b/web/settings/assets/chargePoint-340264ad.js similarity index 98% rename from web/settings/assets/chargePoint-64ce2ff0.js rename to web/settings/assets/chargePoint-340264ad.js index acdecc8525..439933db49 100644 --- a/web/settings/assets/chargePoint-64ce2ff0.js +++ b/web/settings/assets/chargePoint-340264ad.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-4bbfab0c.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; +import{C as d}from"./ChargePointInstallation-0bbbc31c.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/chargePoint-d31da4cb.js b/web/settings/assets/chargePoint-4d4e8f32.js similarity index 90% rename from web/settings/assets/chargePoint-d31da4cb.js rename to web/settings/assets/chargePoint-4d4e8f32.js index 798a8f27bd..5b558ad33c 100644 --- a/web/settings/assets/chargePoint-d31da4cb.js +++ b/web/settings/assets/chargePoint-4d4e8f32.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; +import{C as p}from"./ChargePointInstallation-0bbbc31c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/chargePoint-4a3d6c03.js b/web/settings/assets/chargePoint-4f30817e.js similarity index 90% rename from web/settings/assets/chargePoint-4a3d6c03.js rename to web/settings/assets/chargePoint-4f30817e.js index bd451fbe9b..e7c5bcef0c 100644 --- a/web/settings/assets/chargePoint-4a3d6c03.js +++ b/web/settings/assets/chargePoint-4f30817e.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-4bbfab0c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; +import{C as p}from"./ChargePointInstallation-0bbbc31c.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-2e5fe02e.js b/web/settings/assets/chargePoint-8ba070ce.js similarity index 92% rename from web/settings/assets/chargePoint-2e5fe02e.js rename to web/settings/assets/chargePoint-8ba070ce.js index 1a4672fe36..4f63a14551 100644 --- a/web/settings/assets/chargePoint-2e5fe02e.js +++ b/web/settings/assets/chargePoint-8ba070ce.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-4bbfab0c.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; +import{C as u}from"./ChargePointInstallation-0bbbc31c.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-2e02c1d8.js b/web/settings/assets/chargePoint-b12c58ac.js similarity index 90% rename from web/settings/assets/chargePoint-2e02c1d8.js rename to web/settings/assets/chargePoint-b12c58ac.js index d6128220e6..6781733076 100644 --- a/web/settings/assets/chargePoint-2e02c1d8.js +++ b/web/settings/assets/chargePoint-b12c58ac.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-4bbfab0c.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; +import{C as s}from"./ChargePointInstallation-0bbbc31c.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-ca1cba52.js b/web/settings/assets/chargePoint-e9658d8c.js similarity index 86% rename from web/settings/assets/chargePoint-ca1cba52.js rename to web/settings/assets/chargePoint-e9658d8c.js index 00973cfa44..1a1a4f6398 100644 --- a/web/settings/assets/chargePoint-ca1cba52.js +++ b/web/settings/assets/chargePoint-e9658d8c.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-4bbfab0c.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-0bbbc31c.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/commands-9cc92488.js b/web/settings/assets/commands-4dc6f12c.js similarity index 94% rename from web/settings/assets/commands-9cc92488.js rename to web/settings/assets/commands-4dc6f12c.js index dfabb3c688..7d156ee3e7 100644 --- a/web/settings/assets/commands-9cc92488.js +++ b/web/settings/assets/commands-4dc6f12c.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-4bbfab0c.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; +import{a as d}from"./ChargePointInstallation-0bbbc31c.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; diff --git a/web/settings/assets/commands-6e8b9876.js b/web/settings/assets/commands-4e783bf2.js similarity index 95% rename from web/settings/assets/commands-6e8b9876.js rename to web/settings/assets/commands-4e783bf2.js index a5f2758daf..8b4f9e749f 100644 --- a/web/settings/assets/commands-6e8b9876.js +++ b/web/settings/assets/commands-4e783bf2.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-4bbfab0c.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; +import{a as g}from"./ChargePointInstallation-0bbbc31c.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; diff --git a/web/settings/assets/consumption_counter-28c4feb4.js b/web/settings/assets/consumption_counter-4bbfd158.js similarity index 93% rename from web/settings/assets/consumption_counter-28c4feb4.js rename to web/settings/assets/consumption_counter-4bbfd158.js index 65c9406ddc..577fb5b79c 100644 --- a/web/settings/assets/consumption_counter-28c4feb4.js +++ b/web/settings/assets/consumption_counter-4bbfd158.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-6cd21185.js b/web/settings/assets/counter-065e6a09.js similarity index 90% rename from web/settings/assets/counter-6cd21185.js rename to web/settings/assets/counter-065e6a09.js index 100f6bab0f..b70a41b5d3 100644 --- a/web/settings/assets/counter-6cd21185.js +++ b/web/settings/assets/counter-065e6a09.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-a762a464.js b/web/settings/assets/counter-0982dddf.js similarity index 87% rename from web/settings/assets/counter-a762a464.js rename to web/settings/assets/counter-0982dddf.js index e6ec182268..0962156b57 100644 --- a/web/settings/assets/counter-a762a464.js +++ b/web/settings/assets/counter-0982dddf.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-0d3d09ba.js b/web/settings/assets/counter-0f6f7bb9.js similarity index 87% rename from web/settings/assets/counter-0d3d09ba.js rename to web/settings/assets/counter-0f6f7bb9.js index 8322a51286..05e11bfa4a 100644 --- a/web/settings/assets/counter-0d3d09ba.js +++ b/web/settings/assets/counter-0f6f7bb9.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-9ab1cf22.js b/web/settings/assets/counter-1057215a.js similarity index 89% rename from web/settings/assets/counter-9ab1cf22.js rename to web/settings/assets/counter-1057215a.js index 7c158c8c51..589fc88a23 100644 --- a/web/settings/assets/counter-9ab1cf22.js +++ b/web/settings/assets/counter-1057215a.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-95df2c21.js b/web/settings/assets/counter-2799fe18.js similarity index 91% rename from web/settings/assets/counter-95df2c21.js rename to web/settings/assets/counter-2799fe18.js index 6288b9b776..75f386e35a 100644 --- a/web/settings/assets/counter-95df2c21.js +++ b/web/settings/assets/counter-2799fe18.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-87234fb2.js b/web/settings/assets/counter-2a92287b.js similarity index 92% rename from web/settings/assets/counter-87234fb2.js rename to web/settings/assets/counter-2a92287b.js index d288662c44..636205b775 100644 --- a/web/settings/assets/counter-87234fb2.js +++ b/web/settings/assets/counter-2a92287b.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-98126cfc.js b/web/settings/assets/counter-2f1da19e.js similarity index 87% rename from web/settings/assets/counter-98126cfc.js rename to web/settings/assets/counter-2f1da19e.js index d3c0c54cc6..ab4fc58f53 100644 --- a/web/settings/assets/counter-98126cfc.js +++ b/web/settings/assets/counter-2f1da19e.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-1ada1a81.js b/web/settings/assets/counter-2f20e75a.js similarity index 87% rename from web/settings/assets/counter-1ada1a81.js rename to web/settings/assets/counter-2f20e75a.js index 22fe15faff..394b7be67f 100644 --- a/web/settings/assets/counter-1ada1a81.js +++ b/web/settings/assets/counter-2f20e75a.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-034d35d7.js b/web/settings/assets/counter-335604bd.js similarity index 82% rename from web/settings/assets/counter-034d35d7.js rename to web/settings/assets/counter-335604bd.js index d456f691a2..bd687c45d0 100644 --- a/web/settings/assets/counter-034d35d7.js +++ b/web/settings/assets/counter-335604bd.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-a35b5fec.js b/web/settings/assets/counter-37b8e5fd.js similarity index 90% rename from web/settings/assets/counter-a35b5fec.js rename to web/settings/assets/counter-37b8e5fd.js index 48dc21cbfa..5554e38da1 100644 --- a/web/settings/assets/counter-a35b5fec.js +++ b/web/settings/assets/counter-37b8e5fd.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-701a2c72.js b/web/settings/assets/counter-44a15c7a.js similarity index 86% rename from web/settings/assets/counter-701a2c72.js rename to web/settings/assets/counter-44a15c7a.js index 75bce141ee..c643b35109 100644 --- a/web/settings/assets/counter-701a2c72.js +++ b/web/settings/assets/counter-44a15c7a.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-6515151f.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; +import{C as n}from"./HardwareInstallation-c5885604.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-d606c310.js b/web/settings/assets/counter-44f87579.js similarity index 84% rename from web/settings/assets/counter-d606c310.js rename to web/settings/assets/counter-44f87579.js index 0775866fca..0b0251e9b9 100644 --- a/web/settings/assets/counter-d606c310.js +++ b/web/settings/assets/counter-44f87579.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-6515151f.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; +import{C as t}from"./HardwareInstallation-c5885604.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-15a40a05.js b/web/settings/assets/counter-48265ea7.js similarity index 90% rename from web/settings/assets/counter-15a40a05.js rename to web/settings/assets/counter-48265ea7.js index 134706f001..50f25c0ca2 100644 --- a/web/settings/assets/counter-15a40a05.js +++ b/web/settings/assets/counter-48265ea7.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-da1dd0be.js b/web/settings/assets/counter-4c652758.js similarity index 88% rename from web/settings/assets/counter-da1dd0be.js rename to web/settings/assets/counter-4c652758.js index 6e82f3e13f..7f32ae5ce3 100644 --- a/web/settings/assets/counter-da1dd0be.js +++ b/web/settings/assets/counter-4c652758.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-a327434b.js b/web/settings/assets/counter-4cbc5b0e.js similarity index 90% rename from web/settings/assets/counter-a327434b.js rename to web/settings/assets/counter-4cbc5b0e.js index 6dd1528db0..79403f823f 100644 --- a/web/settings/assets/counter-a327434b.js +++ b/web/settings/assets/counter-4cbc5b0e.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-6515151f.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; +import{C as n}from"./HardwareInstallation-c5885604.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-03d43b57.js b/web/settings/assets/counter-53052143.js similarity index 88% rename from web/settings/assets/counter-03d43b57.js rename to web/settings/assets/counter-53052143.js index 5790369d27..366011b7d1 100644 --- a/web/settings/assets/counter-03d43b57.js +++ b/web/settings/assets/counter-53052143.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-43bb176d.js b/web/settings/assets/counter-66ea4344.js similarity index 92% rename from web/settings/assets/counter-43bb176d.js rename to web/settings/assets/counter-66ea4344.js index 4ff0f052a8..5db300b56d 100644 --- a/web/settings/assets/counter-43bb176d.js +++ b/web/settings/assets/counter-66ea4344.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-3b3df318.js b/web/settings/assets/counter-6727feee.js similarity index 84% rename from web/settings/assets/counter-3b3df318.js rename to web/settings/assets/counter-6727feee.js index ceb5667e24..9425ebf1d9 100644 --- a/web/settings/assets/counter-3b3df318.js +++ b/web/settings/assets/counter-6727feee.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; +import{C as o}from"./HardwareInstallation-c5885604.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-241c338f.js b/web/settings/assets/counter-6d0ba49a.js similarity index 87% rename from web/settings/assets/counter-241c338f.js rename to web/settings/assets/counter-6d0ba49a.js index f3223a296e..f8d530a03a 100644 --- a/web/settings/assets/counter-241c338f.js +++ b/web/settings/assets/counter-6d0ba49a.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-8a0376f6.js b/web/settings/assets/counter-703e8d71.js similarity index 87% rename from web/settings/assets/counter-8a0376f6.js rename to web/settings/assets/counter-703e8d71.js index 39da343d86..d881b8f0aa 100644 --- a/web/settings/assets/counter-8a0376f6.js +++ b/web/settings/assets/counter-703e8d71.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-7a682293.js b/web/settings/assets/counter-86ccfa9b.js similarity index 88% rename from web/settings/assets/counter-7a682293.js rename to web/settings/assets/counter-86ccfa9b.js index 6213a0884c..e549be4803 100644 --- a/web/settings/assets/counter-7a682293.js +++ b/web/settings/assets/counter-86ccfa9b.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-f01de2ea.js b/web/settings/assets/counter-8d8fa05d.js similarity index 85% rename from web/settings/assets/counter-f01de2ea.js rename to web/settings/assets/counter-8d8fa05d.js index 5c96d9a963..cc835c907e 100644 --- a/web/settings/assets/counter-f01de2ea.js +++ b/web/settings/assets/counter-8d8fa05d.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; +import{C as o}from"./HardwareInstallation-c5885604.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-f8177ec2.js b/web/settings/assets/counter-941f010e.js similarity index 97% rename from web/settings/assets/counter-f8177ec2.js rename to web/settings/assets/counter-941f010e.js index a24b00abfb..2f16fbf841 100644 --- a/web/settings/assets/counter-f8177ec2.js +++ b/web/settings/assets/counter-941f010e.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-942689fa.js b/web/settings/assets/counter-98a3b8b5.js similarity index 97% rename from web/settings/assets/counter-942689fa.js rename to web/settings/assets/counter-98a3b8b5.js index 95ae7f62c2..85aba20bec 100644 --- a/web/settings/assets/counter-942689fa.js +++ b/web/settings/assets/counter-98a3b8b5.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-c26c7ca0.js b/web/settings/assets/counter-a1135f1c.js similarity index 88% rename from web/settings/assets/counter-c26c7ca0.js rename to web/settings/assets/counter-a1135f1c.js index 61a7a6959d..15206a81b7 100644 --- a/web/settings/assets/counter-c26c7ca0.js +++ b/web/settings/assets/counter-a1135f1c.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-c0da35a2.js b/web/settings/assets/counter-b5dc9c36.js similarity index 84% rename from web/settings/assets/counter-c0da35a2.js rename to web/settings/assets/counter-b5dc9c36.js index 424ee714b4..bdda023b96 100644 --- a/web/settings/assets/counter-c0da35a2.js +++ b/web/settings/assets/counter-b5dc9c36.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-06424364.js b/web/settings/assets/counter-c9b79b3a.js similarity index 88% rename from web/settings/assets/counter-06424364.js rename to web/settings/assets/counter-c9b79b3a.js index 9bebb96214..7633f1a18d 100644 --- a/web/settings/assets/counter-06424364.js +++ b/web/settings/assets/counter-c9b79b3a.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-ad41b953.js b/web/settings/assets/counter-cd25d9ff.js similarity index 87% rename from web/settings/assets/counter-ad41b953.js rename to web/settings/assets/counter-cd25d9ff.js index ba084760e7..913ee79d17 100644 --- a/web/settings/assets/counter-ad41b953.js +++ b/web/settings/assets/counter-cd25d9ff.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-16da78bb.js b/web/settings/assets/counter-d16370ae.js similarity index 86% rename from web/settings/assets/counter-16da78bb.js rename to web/settings/assets/counter-d16370ae.js index 0ae8e11d1f..45270976d3 100644 --- a/web/settings/assets/counter-16da78bb.js +++ b/web/settings/assets/counter-d16370ae.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-6515151f.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; +import{C as o}from"./HardwareInstallation-c5885604.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-5b6331d0.js b/web/settings/assets/counter-e04e4842.js similarity index 86% rename from web/settings/assets/counter-5b6331d0.js rename to web/settings/assets/counter-e04e4842.js index ea897ef222..7aaf8e3add 100644 --- a/web/settings/assets/counter-5b6331d0.js +++ b/web/settings/assets/counter-e04e4842.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-6515151f.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; +import{C as t}from"./HardwareInstallation-c5885604.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-51e1f0a5.js b/web/settings/assets/counter-e2f7fa47.js similarity index 88% rename from web/settings/assets/counter-51e1f0a5.js rename to web/settings/assets/counter-e2f7fa47.js index f19996869a..dd2606db11 100644 --- a/web/settings/assets/counter-51e1f0a5.js +++ b/web/settings/assets/counter-e2f7fa47.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-778d0562.js b/web/settings/assets/counter-e528f0b4.js similarity index 96% rename from web/settings/assets/counter-778d0562.js rename to web/settings/assets/counter-e528f0b4.js index 1036551cd9..259dbc621d 100644 --- a/web/settings/assets/counter-778d0562.js +++ b/web/settings/assets/counter-e528f0b4.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-6b70c1c4.js b/web/settings/assets/counter-ed9f91cc.js similarity index 88% rename from web/settings/assets/counter-6b70c1c4.js rename to web/settings/assets/counter-ed9f91cc.js index aebf44f43a..42f625366f 100644 --- a/web/settings/assets/counter-6b70c1c4.js +++ b/web/settings/assets/counter-ed9f91cc.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-593a07d0.js b/web/settings/assets/counter-ef1c082d.js similarity index 89% rename from web/settings/assets/counter-593a07d0.js rename to web/settings/assets/counter-ef1c082d.js index a1882379d5..43193c2e2b 100644 --- a/web/settings/assets/counter-593a07d0.js +++ b/web/settings/assets/counter-ef1c082d.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-925dec2d.js b/web/settings/assets/counter-f0b83364.js similarity index 92% rename from web/settings/assets/counter-925dec2d.js rename to web/settings/assets/counter-f0b83364.js index a972c20059..249af50be6 100644 --- a/web/settings/assets/counter-925dec2d.js +++ b/web/settings/assets/counter-f0b83364.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter_consumption-452fb197.js b/web/settings/assets/counter_consumption-c0ced540.js similarity index 90% rename from web/settings/assets/counter_consumption-452fb197.js rename to web/settings/assets/counter_consumption-c0ced540.js index 1dc0d32981..23986e28bd 100644 --- a/web/settings/assets/counter_consumption-452fb197.js +++ b/web/settings/assets/counter_consumption-c0ced540.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_sm-5e4b1fe5.js b/web/settings/assets/counter_sm-4e8cbdf3.js similarity index 95% rename from web/settings/assets/counter_sm-5e4b1fe5.js rename to web/settings/assets/counter_sm-4e8cbdf3.js index 6836f49b66..d171b07e7a 100644 --- a/web/settings/assets/counter_sm-5e4b1fe5.js +++ b/web/settings/assets/counter_sm-4e8cbdf3.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-f1d14f4e.js b/web/settings/assets/device-04023927.js similarity index 96% rename from web/settings/assets/device-f1d14f4e.js rename to web/settings/assets/device-04023927.js index 64c62f9e00..be89542490 100644 --- a/web/settings/assets/device-f1d14f4e.js +++ b/web/settings/assets/device-04023927.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-6515151f.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; +import{D as f}from"./HardwareInstallation-c5885604.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-37b882f6.js b/web/settings/assets/device-0a768509.js similarity index 87% rename from web/settings/assets/device-37b882f6.js rename to web/settings/assets/device-0a768509.js index 5700f8cebc..c43c4064e5 100644 --- a/web/settings/assets/device-37b882f6.js +++ b/web/settings/assets/device-0a768509.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-3caedbbd.js b/web/settings/assets/device-1015d6b8.js similarity index 91% rename from web/settings/assets/device-3caedbbd.js rename to web/settings/assets/device-1015d6b8.js index 7e159a1159..0a0aa9226d 100644 --- a/web/settings/assets/device-3caedbbd.js +++ b/web/settings/assets/device-1015d6b8.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-0c3fc809.js b/web/settings/assets/device-1284e8ee.js similarity index 90% rename from web/settings/assets/device-0c3fc809.js rename to web/settings/assets/device-1284e8ee.js index 77f3999be4..6d2c057e7d 100644 --- a/web/settings/assets/device-0c3fc809.js +++ b/web/settings/assets/device-1284e8ee.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-cad9fdab.js b/web/settings/assets/device-15d1779e.js similarity index 91% rename from web/settings/assets/device-cad9fdab.js rename to web/settings/assets/device-15d1779e.js index 09d1b6d804..dc1820a805 100644 --- a/web/settings/assets/device-cad9fdab.js +++ b/web/settings/assets/device-15d1779e.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; +import{D as s}from"./HardwareInstallation-c5885604.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-6c438877.js b/web/settings/assets/device-182017ef.js similarity index 88% rename from web/settings/assets/device-6c438877.js rename to web/settings/assets/device-182017ef.js index 82233ae4e5..c8a66a9d7a 100644 --- a/web/settings/assets/device-6c438877.js +++ b/web/settings/assets/device-182017ef.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-c1e4152e.js b/web/settings/assets/device-19bdcd55.js similarity index 90% rename from web/settings/assets/device-c1e4152e.js rename to web/settings/assets/device-19bdcd55.js index c7e431a73c..3d3ee84919 100644 --- a/web/settings/assets/device-c1e4152e.js +++ b/web/settings/assets/device-19bdcd55.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-faa95e47.js b/web/settings/assets/device-1e74037a.js similarity index 91% rename from web/settings/assets/device-faa95e47.js rename to web/settings/assets/device-1e74037a.js index a3c93aa804..4195a022cf 100644 --- a/web/settings/assets/device-faa95e47.js +++ b/web/settings/assets/device-1e74037a.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-90a7548e.js b/web/settings/assets/device-206b02e6.js similarity index 96% rename from web/settings/assets/device-90a7548e.js rename to web/settings/assets/device-206b02e6.js index 7612ed4650..2867f13cc3 100644 --- a/web/settings/assets/device-90a7548e.js +++ b/web/settings/assets/device-206b02e6.js @@ -1 +1 @@ -import{D as b}from"./HardwareInstallation-6515151f.js";import{_ as v,u as i,l as s,m as g,G as t,E as a,B as r,x as f,A as w,z as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"DeviceSungrow",mixins:[b]},_={class:"device-sungrow"};function N(n,e,D,V,H,h){const d=i("openwb-base-heading"),m=i("openwb-base-alert"),p=i("openwb-base-text-input"),l=i("openwb-base-number-input"),u=i("openwb-base-select-input");return s(),g("div",_,[t(d,null,{default:a(()=>e[5]||(e[5]=[r(" Einstellungen für Sungrow ",-1)])),_:1,__:[5]}),t(m,{subtype:"info"},{default:a(()=>e[6]||(e[6]=[r(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[6]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(u,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[7]||(e[7]=[r(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version===0?(s(),f(u,{key:0,title:"Firmware",options:[{value:"v1",text:"bis November 2024"},{value:"v2",text:"ab November 2024"}],"model-value":n.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.firmware"))},{help:a(()=>e[8]||(e[8]=[r(' Mit einem Firmwareupdate hat Sungrow ab November 2024 die Auslesung der Speicherleistung verändert. Sollte ab November 2024 selbst oder vom Installateur ein Firmwareupdate gemacht worden sein bitte "ab November 2024" als Firmware wählen. Ohne dieses Update ist "bis November 2024" die richtige Auswahl (Standard).',-1),w("br",null,null,-1),r(' Für Benutzer mit Installateur-Account: Dies entspricht einer Version des MDSP Moduls größer gleich "SAPPHIRE-H_03011.95.03" ',-1)])),_:1},8,["model-value"])):c("",!0)])}const P=v(S,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{P as default}; +import{D as b}from"./HardwareInstallation-c5885604.js";import{_ as v,u as i,l as s,m as g,G as t,E as a,B as r,x as f,A as w,z as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"DeviceSungrow",mixins:[b]},_={class:"device-sungrow"};function N(n,e,D,V,H,h){const d=i("openwb-base-heading"),m=i("openwb-base-alert"),p=i("openwb-base-text-input"),l=i("openwb-base-number-input"),u=i("openwb-base-select-input");return s(),g("div",_,[t(d,null,{default:a(()=>e[5]||(e[5]=[r(" Einstellungen für Sungrow ",-1)])),_:1,__:[5]}),t(m,{subtype:"info"},{default:a(()=>e[6]||(e[6]=[r(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[6]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(u,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[7]||(e[7]=[r(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version===0?(s(),f(u,{key:0,title:"Firmware",options:[{value:"v1",text:"bis November 2024"},{value:"v2",text:"ab November 2024"}],"model-value":n.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.firmware"))},{help:a(()=>e[8]||(e[8]=[r(' Mit einem Firmwareupdate hat Sungrow ab November 2024 die Auslesung der Speicherleistung verändert. Sollte ab November 2024 selbst oder vom Installateur ein Firmwareupdate gemacht worden sein bitte "ab November 2024" als Firmware wählen. Ohne dieses Update ist "bis November 2024" die richtige Auswahl (Standard).',-1),w("br",null,null,-1),r(' Für Benutzer mit Installateur-Account: Dies entspricht einer Version des MDSP Moduls größer gleich "SAPPHIRE-H_03011.95.03" ',-1)])),_:1},8,["model-value"])):c("",!0)])}const P=v(S,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-0f31e958.js b/web/settings/assets/device-215a78fc.js similarity index 84% rename from web/settings/assets/device-0f31e958.js rename to web/settings/assets/device-215a78fc.js index 8be31fedd4..e2fc695cbb 100644 --- a/web/settings/assets/device-0f31e958.js +++ b/web/settings/assets/device-215a78fc.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-630d88cd.js b/web/settings/assets/device-25fe183a.js similarity index 87% rename from web/settings/assets/device-630d88cd.js rename to web/settings/assets/device-25fe183a.js index b52c4b67f9..d61f6763c7 100644 --- a/web/settings/assets/device-630d88cd.js +++ b/web/settings/assets/device-25fe183a.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-6e2f0696.js b/web/settings/assets/device-28431aec.js similarity index 92% rename from web/settings/assets/device-6e2f0696.js rename to web/settings/assets/device-28431aec.js index 2d7c51f10b..0220036c37 100644 --- a/web/settings/assets/device-6e2f0696.js +++ b/web/settings/assets/device-28431aec.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-77829da3.js b/web/settings/assets/device-2b2b66a7.js similarity index 81% rename from web/settings/assets/device-77829da3.js rename to web/settings/assets/device-2b2b66a7.js index ef7fb7e9e0..8aa7c193e2 100644 --- a/web/settings/assets/device-77829da3.js +++ b/web/settings/assets/device-2b2b66a7.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/device-b915ee50.js b/web/settings/assets/device-2dda66a4.js similarity index 93% rename from web/settings/assets/device-b915ee50.js rename to web/settings/assets/device-2dda66a4.js index 52552e16a3..c08b6c0490 100644 --- a/web/settings/assets/device-b915ee50.js +++ b/web/settings/assets/device-2dda66a4.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-07e03083.js b/web/settings/assets/device-3073bb5b.js similarity index 85% rename from web/settings/assets/device-07e03083.js rename to web/settings/assets/device-3073bb5b.js index 21c9e0e7ae..a3723a100c 100644 --- a/web/settings/assets/device-07e03083.js +++ b/web/settings/assets/device-3073bb5b.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-e93f3043.js b/web/settings/assets/device-33b15226.js similarity index 87% rename from web/settings/assets/device-e93f3043.js rename to web/settings/assets/device-33b15226.js index cf4ed03155..1739d8af9d 100644 --- a/web/settings/assets/device-e93f3043.js +++ b/web/settings/assets/device-33b15226.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-66218d05.js b/web/settings/assets/device-33c872fb.js similarity index 88% rename from web/settings/assets/device-66218d05.js rename to web/settings/assets/device-33c872fb.js index 24d17cdbc0..9d8848795e 100644 --- a/web/settings/assets/device-66218d05.js +++ b/web/settings/assets/device-33c872fb.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-ede5926f.js b/web/settings/assets/device-370e0fd6.js similarity index 92% rename from web/settings/assets/device-ede5926f.js rename to web/settings/assets/device-370e0fd6.js index c5275f81d1..6c57814480 100644 --- a/web/settings/assets/device-ede5926f.js +++ b/web/settings/assets/device-370e0fd6.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; +import{D as l}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-e4446102.js b/web/settings/assets/device-3a3324ec.js similarity index 87% rename from web/settings/assets/device-e4446102.js rename to web/settings/assets/device-3a3324ec.js index 08866fc705..f3f005a732 100644 --- a/web/settings/assets/device-e4446102.js +++ b/web/settings/assets/device-3a3324ec.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-48658977.js b/web/settings/assets/device-3c447af1.js similarity index 84% rename from web/settings/assets/device-48658977.js rename to web/settings/assets/device-3c447af1.js index b7380e2cb5..2e57d310a8 100644 --- a/web/settings/assets/device-48658977.js +++ b/web/settings/assets/device-3c447af1.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-b6b82861.js b/web/settings/assets/device-3fc427db.js similarity index 92% rename from web/settings/assets/device-b6b82861.js rename to web/settings/assets/device-3fc427db.js index baa52bad66..c1fc52d8a8 100644 --- a/web/settings/assets/device-b6b82861.js +++ b/web/settings/assets/device-3fc427db.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-48744246.js b/web/settings/assets/device-413917f9.js similarity index 91% rename from web/settings/assets/device-48744246.js rename to web/settings/assets/device-413917f9.js index cad5b1e814..23f1dc4bc4 100644 --- a/web/settings/assets/device-48744246.js +++ b/web/settings/assets/device-413917f9.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-78619adc.js b/web/settings/assets/device-4879d7da.js similarity index 88% rename from web/settings/assets/device-78619adc.js rename to web/settings/assets/device-4879d7da.js index 80adbaf062..bb70bc73d1 100644 --- a/web/settings/assets/device-78619adc.js +++ b/web/settings/assets/device-4879d7da.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-f14cbc13.js b/web/settings/assets/device-4df843fe.js similarity index 89% rename from web/settings/assets/device-f14cbc13.js rename to web/settings/assets/device-4df843fe.js index 24bdb0918b..1728215c7f 100644 --- a/web/settings/assets/device-f14cbc13.js +++ b/web/settings/assets/device-4df843fe.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-dae4911e.js b/web/settings/assets/device-5c2c62d2.js similarity index 91% rename from web/settings/assets/device-dae4911e.js rename to web/settings/assets/device-5c2c62d2.js index 709b7e54c3..7124ac90e1 100644 --- a/web/settings/assets/device-dae4911e.js +++ b/web/settings/assets/device-5c2c62d2.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-6065b001.js b/web/settings/assets/device-605fe75f.js similarity index 91% rename from web/settings/assets/device-6065b001.js rename to web/settings/assets/device-605fe75f.js index 46ad3b5718..871ffc8372 100644 --- a/web/settings/assets/device-6065b001.js +++ b/web/settings/assets/device-605fe75f.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-a8b3ffa0.js b/web/settings/assets/device-6964d64c.js similarity index 87% rename from web/settings/assets/device-a8b3ffa0.js rename to web/settings/assets/device-6964d64c.js index 6c08ce2d44..b51283a3a6 100644 --- a/web/settings/assets/device-a8b3ffa0.js +++ b/web/settings/assets/device-6964d64c.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-c6a5b18f.js b/web/settings/assets/device-69ee5a6e.js similarity index 90% rename from web/settings/assets/device-c6a5b18f.js rename to web/settings/assets/device-69ee5a6e.js index 1d7c13a8fb..0449822c20 100644 --- a/web/settings/assets/device-c6a5b18f.js +++ b/web/settings/assets/device-69ee5a6e.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-70a2865d.js b/web/settings/assets/device-6fe5ae18.js similarity index 92% rename from web/settings/assets/device-70a2865d.js rename to web/settings/assets/device-6fe5ae18.js index fb5a0358ff..1dc1c43b5d 100644 --- a/web/settings/assets/device-70a2865d.js +++ b/web/settings/assets/device-6fe5ae18.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-fcb0b9c0.js b/web/settings/assets/device-72ce9ff7.js similarity index 87% rename from web/settings/assets/device-fcb0b9c0.js rename to web/settings/assets/device-72ce9ff7.js index f8d4f9e2fd..9e13d8e948 100644 --- a/web/settings/assets/device-fcb0b9c0.js +++ b/web/settings/assets/device-72ce9ff7.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-723e5136.js b/web/settings/assets/device-73249dc7.js similarity index 95% rename from web/settings/assets/device-723e5136.js rename to web/settings/assets/device-73249dc7.js index 272c2d4140..6c6e428f8c 100644 --- a/web/settings/assets/device-723e5136.js +++ b/web/settings/assets/device-73249dc7.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-7dbbe461.js b/web/settings/assets/device-75a17a50.js similarity index 92% rename from web/settings/assets/device-7dbbe461.js rename to web/settings/assets/device-75a17a50.js index 54e62fdfc6..3af1faac5d 100644 --- a/web/settings/assets/device-7dbbe461.js +++ b/web/settings/assets/device-75a17a50.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-fef9b6f6.js b/web/settings/assets/device-77ffaea9.js similarity index 91% rename from web/settings/assets/device-fef9b6f6.js rename to web/settings/assets/device-77ffaea9.js index 011c0c5e40..e6aa998d59 100644 --- a/web/settings/assets/device-fef9b6f6.js +++ b/web/settings/assets/device-77ffaea9.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-891343b7.js b/web/settings/assets/device-81c64562.js similarity index 87% rename from web/settings/assets/device-891343b7.js rename to web/settings/assets/device-81c64562.js index 3f77b25266..7c0bbc1ad2 100644 --- a/web/settings/assets/device-891343b7.js +++ b/web/settings/assets/device-81c64562.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-9c39a93c.js b/web/settings/assets/device-84825ea3.js similarity index 89% rename from web/settings/assets/device-9c39a93c.js rename to web/settings/assets/device-84825ea3.js index f394e6c768..31cd1bafb2 100644 --- a/web/settings/assets/device-9c39a93c.js +++ b/web/settings/assets/device-84825ea3.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-cbcf5efd.js b/web/settings/assets/device-856f00da.js similarity index 92% rename from web/settings/assets/device-cbcf5efd.js rename to web/settings/assets/device-856f00da.js index 460b6ba4e9..2b9750c9be 100644 --- a/web/settings/assets/device-cbcf5efd.js +++ b/web/settings/assets/device-856f00da.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-a705c660.js b/web/settings/assets/device-8f001307.js similarity index 91% rename from web/settings/assets/device-a705c660.js rename to web/settings/assets/device-8f001307.js index 23585686f4..ddd97103ad 100644 --- a/web/settings/assets/device-a705c660.js +++ b/web/settings/assets/device-8f001307.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-ad797bf7.js b/web/settings/assets/device-903c3f36.js similarity index 89% rename from web/settings/assets/device-ad797bf7.js rename to web/settings/assets/device-903c3f36.js index 8171fa7b6a..9896035bad 100644 --- a/web/settings/assets/device-ad797bf7.js +++ b/web/settings/assets/device-903c3f36.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-9c1661fe.js b/web/settings/assets/device-90c5f8d5.js similarity index 91% rename from web/settings/assets/device-9c1661fe.js rename to web/settings/assets/device-90c5f8d5.js index b19e6c4bbb..3d7fe38038 100644 --- a/web/settings/assets/device-9c1661fe.js +++ b/web/settings/assets/device-90c5f8d5.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-3446cb73.js b/web/settings/assets/device-93dded40.js similarity index 92% rename from web/settings/assets/device-3446cb73.js rename to web/settings/assets/device-93dded40.js index 13da759e8d..e77c588ed4 100644 --- a/web/settings/assets/device-3446cb73.js +++ b/web/settings/assets/device-93dded40.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-793ea822.js b/web/settings/assets/device-96f13c7c.js similarity index 84% rename from web/settings/assets/device-793ea822.js rename to web/settings/assets/device-96f13c7c.js index f038a61bc8..7a217a405e 100644 --- a/web/settings/assets/device-793ea822.js +++ b/web/settings/assets/device-96f13c7c.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-6aa86d28.js b/web/settings/assets/device-98941275.js similarity index 89% rename from web/settings/assets/device-6aa86d28.js rename to web/settings/assets/device-98941275.js index 5bcd55abb3..c8a2bd1292 100644 --- a/web/settings/assets/device-6aa86d28.js +++ b/web/settings/assets/device-98941275.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-4749b385.js b/web/settings/assets/device-9bc4a595.js similarity index 92% rename from web/settings/assets/device-4749b385.js rename to web/settings/assets/device-9bc4a595.js index e4997c19ef..00da5cf213 100644 --- a/web/settings/assets/device-4749b385.js +++ b/web/settings/assets/device-9bc4a595.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-d4bdb914.js b/web/settings/assets/device-9c316aba.js similarity index 84% rename from web/settings/assets/device-d4bdb914.js rename to web/settings/assets/device-9c316aba.js index ca6f04d104..030dec2ebb 100644 --- a/web/settings/assets/device-d4bdb914.js +++ b/web/settings/assets/device-9c316aba.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-6e2ecab6.js b/web/settings/assets/device-a575b2a2.js similarity index 89% rename from web/settings/assets/device-6e2ecab6.js rename to web/settings/assets/device-a575b2a2.js index 5f2bfacbf2..0290a13be8 100644 --- a/web/settings/assets/device-6e2ecab6.js +++ b/web/settings/assets/device-a575b2a2.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-38d5b6fd.js b/web/settings/assets/device-aaec1882.js similarity index 88% rename from web/settings/assets/device-38d5b6fd.js rename to web/settings/assets/device-aaec1882.js index d82cdb321e..83e9988916 100644 --- a/web/settings/assets/device-38d5b6fd.js +++ b/web/settings/assets/device-aaec1882.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-c057d288.js b/web/settings/assets/device-b105c9f2.js similarity index 84% rename from web/settings/assets/device-c057d288.js rename to web/settings/assets/device-b105c9f2.js index b5efb179f8..9f2a4a4c21 100644 --- a/web/settings/assets/device-c057d288.js +++ b/web/settings/assets/device-b105c9f2.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-d2e67bbb.js b/web/settings/assets/device-b226b08b.js similarity index 81% rename from web/settings/assets/device-d2e67bbb.js rename to web/settings/assets/device-b226b08b.js index dd8f397885..c660b986b8 100644 --- a/web/settings/assets/device-d2e67bbb.js +++ b/web/settings/assets/device-b226b08b.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7ba6df48.js b/web/settings/assets/device-b3e5aa26.js similarity index 91% rename from web/settings/assets/device-7ba6df48.js rename to web/settings/assets/device-b3e5aa26.js index ab41523b7e..a8c8367994 100644 --- a/web/settings/assets/device-7ba6df48.js +++ b/web/settings/assets/device-b3e5aa26.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-6515151f.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; +import{D as r}from"./HardwareInstallation-c5885604.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-6dbd2fd0.js b/web/settings/assets/device-b7481224.js similarity index 84% rename from web/settings/assets/device-6dbd2fd0.js rename to web/settings/assets/device-b7481224.js index c70fcc7be2..bedc8a455c 100644 --- a/web/settings/assets/device-6dbd2fd0.js +++ b/web/settings/assets/device-b7481224.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-4faa8341.js b/web/settings/assets/device-b7b2d824.js similarity index 94% rename from web/settings/assets/device-4faa8341.js rename to web/settings/assets/device-b7b2d824.js index 02e4ecfc1f..e2d5b078d0 100644 --- a/web/settings/assets/device-4faa8341.js +++ b/web/settings/assets/device-b7b2d824.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-0a55e2f7.js b/web/settings/assets/device-b852f0b7.js similarity index 81% rename from web/settings/assets/device-0a55e2f7.js rename to web/settings/assets/device-b852f0b7.js index 362321a104..13a744ac7b 100644 --- a/web/settings/assets/device-0a55e2f7.js +++ b/web/settings/assets/device-b852f0b7.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-f626b3aa.js b/web/settings/assets/device-bc261e31.js similarity index 87% rename from web/settings/assets/device-f626b3aa.js rename to web/settings/assets/device-bc261e31.js index 17805c3177..e4e5a8ccf2 100644 --- a/web/settings/assets/device-f626b3aa.js +++ b/web/settings/assets/device-bc261e31.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-b028c583.js b/web/settings/assets/device-be2a33ff.js similarity index 90% rename from web/settings/assets/device-b028c583.js rename to web/settings/assets/device-be2a33ff.js index d2257e398c..5c8a2c96fd 100644 --- a/web/settings/assets/device-b028c583.js +++ b/web/settings/assets/device-be2a33ff.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-40e95f0e.js b/web/settings/assets/device-bec082f0.js similarity index 95% rename from web/settings/assets/device-40e95f0e.js rename to web/settings/assets/device-bec082f0.js index d9c703848a..8545f0e849 100644 --- a/web/settings/assets/device-40e95f0e.js +++ b/web/settings/assets/device-bec082f0.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-6515151f.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; +import{D as w}from"./HardwareInstallation-c5885604.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-63843d32.js b/web/settings/assets/device-c027752a.js similarity index 87% rename from web/settings/assets/device-63843d32.js rename to web/settings/assets/device-c027752a.js index dc7828694c..0a61034b3b 100644 --- a/web/settings/assets/device-63843d32.js +++ b/web/settings/assets/device-c027752a.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-5e2f3c97.js b/web/settings/assets/device-c44ebb29.js similarity index 92% rename from web/settings/assets/device-5e2f3c97.js rename to web/settings/assets/device-c44ebb29.js index d55dcc53cd..12793d32f6 100644 --- a/web/settings/assets/device-5e2f3c97.js +++ b/web/settings/assets/device-c44ebb29.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; +import{D as l}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-75d75106.js b/web/settings/assets/device-ca9f4f83.js similarity index 91% rename from web/settings/assets/device-75d75106.js rename to web/settings/assets/device-ca9f4f83.js index 50f10f7130..9500a1ba92 100644 --- a/web/settings/assets/device-75d75106.js +++ b/web/settings/assets/device-ca9f4f83.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-838dac1d.js b/web/settings/assets/device-d51aa532.js similarity index 94% rename from web/settings/assets/device-838dac1d.js rename to web/settings/assets/device-d51aa532.js index 0f3aac2415..a042485eaf 100644 --- a/web/settings/assets/device-838dac1d.js +++ b/web/settings/assets/device-d51aa532.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; +import{D as p}from"./HardwareInstallation-c5885604.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-952016bf.js b/web/settings/assets/device-d52216af.js similarity index 96% rename from web/settings/assets/device-952016bf.js rename to web/settings/assets/device-d52216af.js index b53b8dfd51..2e947ba429 100644 --- a/web/settings/assets/device-952016bf.js +++ b/web/settings/assets/device-d52216af.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-6515151f.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; +import{D as g}from"./HardwareInstallation-c5885604.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-0bc39379.js b/web/settings/assets/device-daca66ac.js similarity index 84% rename from web/settings/assets/device-0bc39379.js rename to web/settings/assets/device-daca66ac.js index 371f7b8561..d7539ddce4 100644 --- a/web/settings/assets/device-0bc39379.js +++ b/web/settings/assets/device-daca66ac.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-e138ac10.js b/web/settings/assets/device-e145cf9a.js similarity index 89% rename from web/settings/assets/device-e138ac10.js rename to web/settings/assets/device-e145cf9a.js index 369f93c334..04923f818f 100644 --- a/web/settings/assets/device-e138ac10.js +++ b/web/settings/assets/device-e145cf9a.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3e65a99e.js b/web/settings/assets/device-e2b16e99.js similarity index 83% rename from web/settings/assets/device-3e65a99e.js rename to web/settings/assets/device-e2b16e99.js index ca5fa0cf65..683ccbf4e3 100644 --- a/web/settings/assets/device-3e65a99e.js +++ b/web/settings/assets/device-e2b16e99.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-46241bf0.js b/web/settings/assets/device-e813b901.js similarity index 89% rename from web/settings/assets/device-46241bf0.js rename to web/settings/assets/device-e813b901.js index 8e4b1ccce2..2c82b8c957 100644 --- a/web/settings/assets/device-46241bf0.js +++ b/web/settings/assets/device-e813b901.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-7352834a.js b/web/settings/assets/device-ec524a18.js similarity index 86% rename from web/settings/assets/device-7352834a.js rename to web/settings/assets/device-ec524a18.js index b7e4b46d22..ddc80b8d1e 100644 --- a/web/settings/assets/device-7352834a.js +++ b/web/settings/assets/device-ec524a18.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-85ba0d9e.js b/web/settings/assets/device-ee42d18f.js similarity index 91% rename from web/settings/assets/device-85ba0d9e.js rename to web/settings/assets/device-ee42d18f.js index 0316bfb57e..bcef51af22 100644 --- a/web/settings/assets/device-85ba0d9e.js +++ b/web/settings/assets/device-ee42d18f.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-5457868d.js b/web/settings/assets/device-f6872f3b.js similarity index 86% rename from web/settings/assets/device-5457868d.js rename to web/settings/assets/device-f6872f3b.js index 030657e5e0..87af0b28b9 100644 --- a/web/settings/assets/device-5457868d.js +++ b/web/settings/assets/device-f6872f3b.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; +import{D as s}from"./HardwareInstallation-c5885604.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-8f44d501.js b/web/settings/assets/device-f8776d02.js similarity index 84% rename from web/settings/assets/device-8f44d501.js rename to web/settings/assets/device-f8776d02.js index aa542c1250..445584e7d4 100644 --- a/web/settings/assets/device-8f44d501.js +++ b/web/settings/assets/device-f8776d02.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-44136cf2.js b/web/settings/assets/device-f95c742c.js similarity index 87% rename from web/settings/assets/device-44136cf2.js rename to web/settings/assets/device-f95c742c.js index aa1a88a172..fc82100c56 100644 --- a/web/settings/assets/device-44136cf2.js +++ b/web/settings/assets/device-f95c742c.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-1439cbf1.js b/web/settings/assets/device-fa648133.js similarity index 92% rename from web/settings/assets/device-1439cbf1.js rename to web/settings/assets/device-fa648133.js index 5c1de417c9..5bee5e6e22 100644 --- a/web/settings/assets/device-1439cbf1.js +++ b/web/settings/assets/device-fa648133.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; +import{D as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-2d12e320.js b/web/settings/assets/device-fb0b197d.js similarity index 92% rename from web/settings/assets/device-2d12e320.js rename to web/settings/assets/device-fb0b197d.js index eda4877b32..56428a4045 100644 --- a/web/settings/assets/device-2d12e320.js +++ b/web/settings/assets/device-fb0b197d.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-789bc206.js b/web/settings/assets/device-fb34332c.js similarity index 91% rename from web/settings/assets/device-789bc206.js rename to web/settings/assets/device-fb34332c.js index 94fb706172..9cabbe6d4b 100644 --- a/web/settings/assets/device-789bc206.js +++ b/web/settings/assets/device-fb34332c.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-6515151f.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; +import{D as d}from"./HardwareInstallation-c5885604.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-51fb9fdb.js b/web/settings/assets/device-fcd8dd54.js similarity index 93% rename from web/settings/assets/device-51fb9fdb.js rename to web/settings/assets/device-fcd8dd54.js index ecf6144a71..17740ddb6b 100644 --- a/web/settings/assets/device-51fb9fdb.js +++ b/web/settings/assets/device-fcd8dd54.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; +import{D as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-8a6b31ac.js b/web/settings/assets/device-fe490678.js similarity index 94% rename from web/settings/assets/device-8a6b31ac.js rename to web/settings/assets/device-fe490678.js index c3dd327c0c..2840aaf8cb 100644 --- a/web/settings/assets/device-8a6b31ac.js +++ b/web/settings/assets/device-fe490678.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-6515151f.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; +import{D as m}from"./HardwareInstallation-c5885604.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/displayTheme-c2dceb48.js b/web/settings/assets/displayTheme-1f129bcc.js similarity index 98% rename from web/settings/assets/displayTheme-c2dceb48.js rename to web/settings/assets/displayTheme-1f129bcc.js index fa42265503..16723ca455 100644 --- a/web/settings/assets/displayTheme-c2dceb48.js +++ b/web/settings/assets/displayTheme-1f129bcc.js @@ -1 +1 @@ -import{D as v}from"./OptionalComponents-eab310e0.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy-flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge-points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; +import{D as v}from"./OptionalComponents-5a739fed.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy-flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge-points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/displayTheme-178db1df.js b/web/settings/assets/displayTheme-82cce4cb.js similarity index 92% rename from web/settings/assets/displayTheme-178db1df.js rename to web/settings/assets/displayTheme-82cce4cb.js index f2d7eaa6df..cbfa3ea868 100644 --- a/web/settings/assets/displayTheme-178db1df.js +++ b/web/settings/assets/displayTheme-82cce4cb.js @@ -1 +1 @@ -import{D as d}from"./OptionalComponents-eab310e0.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; +import{D as d}from"./OptionalComponents-5a739fed.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-b497922e.js b/web/settings/assets/electricity_tariff-13289243.js similarity index 93% rename from web/settings/assets/electricity_tariff-b497922e.js rename to web/settings/assets/electricity_tariff-13289243.js index c22d1f4ea9..c8ec158bac 100644 --- a/web/settings/assets/electricity_tariff-b497922e.js +++ b/web/settings/assets/electricity_tariff-13289243.js @@ -1 +1 @@ -import{E as p}from"./GeneralChargeConfig-f5f65896.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; +import{E as p}from"./GeneralChargeConfig-4eeb378a.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-0d25f98f.js b/web/settings/assets/electricity_tariff-20391f2e.js similarity index 91% rename from web/settings/assets/electricity_tariff-0d25f98f.js rename to web/settings/assets/electricity_tariff-20391f2e.js index cbe690e659..d3421e06c5 100644 --- a/web/settings/assets/electricity_tariff-0d25f98f.js +++ b/web/settings/assets/electricity_tariff-20391f2e.js @@ -1 +1 @@ -import{E as l}from"./GeneralChargeConfig-f5f65896.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; +import{E as l}from"./GeneralChargeConfig-4eeb378a.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-d0edfdb4.js b/web/settings/assets/electricity_tariff-404b0387.js similarity index 94% rename from web/settings/assets/electricity_tariff-d0edfdb4.js rename to web/settings/assets/electricity_tariff-404b0387.js index 10c444bc68..5892fcc157 100644 --- a/web/settings/assets/electricity_tariff-d0edfdb4.js +++ b/web/settings/assets/electricity_tariff-404b0387.js @@ -1 +1 @@ -import{E as c}from"./GeneralChargeConfig-f5f65896.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; +import{E as c}from"./GeneralChargeConfig-4eeb378a.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-2304915c.js b/web/settings/assets/electricity_tariff-60e8d417.js similarity index 89% rename from web/settings/assets/electricity_tariff-2304915c.js rename to web/settings/assets/electricity_tariff-60e8d417.js index 45fc3656ef..0b3d1a3a68 100644 --- a/web/settings/assets/electricity_tariff-2304915c.js +++ b/web/settings/assets/electricity_tariff-60e8d417.js @@ -1 +1 @@ -import{E as o}from"./GeneralChargeConfig-f5f65896.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; +import{E as o}from"./GeneralChargeConfig-4eeb378a.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-f3b38e11.js b/web/settings/assets/electricity_tariff-81e0b18f.js similarity index 98% rename from web/settings/assets/electricity_tariff-f3b38e11.js rename to web/settings/assets/electricity_tariff-81e0b18f.js index 02b4e91dee..291840f120 100644 --- a/web/settings/assets/electricity_tariff-f3b38e11.js +++ b/web/settings/assets/electricity_tariff-81e0b18f.js @@ -1 +1 @@ -import{E as I}from"./GeneralChargeConfig-f5f65896.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-25d394b4.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; +import{E as I}from"./GeneralChargeConfig-4eeb378a.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-25d394b4.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/electricity_tariff-bde56165.js b/web/settings/assets/electricity_tariff-8a83e04d.js similarity index 90% rename from web/settings/assets/electricity_tariff-bde56165.js rename to web/settings/assets/electricity_tariff-8a83e04d.js index 887ace4cc3..321cb63913 100644 --- a/web/settings/assets/electricity_tariff-bde56165.js +++ b/web/settings/assets/electricity_tariff-8a83e04d.js @@ -1 +1 @@ -import{E as n}from"./GeneralChargeConfig-f5f65896.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; +import{E as n}from"./GeneralChargeConfig-4eeb378a.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-030b73c0.js b/web/settings/assets/electricity_tariff-c0643ee5.js similarity index 91% rename from web/settings/assets/electricity_tariff-030b73c0.js rename to web/settings/assets/electricity_tariff-c0643ee5.js index 2899a71e24..914aba0ff4 100644 --- a/web/settings/assets/electricity_tariff-030b73c0.js +++ b/web/settings/assets/electricity_tariff-c0643ee5.js @@ -1 +1 @@ -import{E as s}from"./GeneralChargeConfig-f5f65896.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; +import{E as s}from"./GeneralChargeConfig-4eeb378a.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-ed71dfac.js b/web/settings/assets/electricity_tariff-db82b684.js similarity index 96% rename from web/settings/assets/electricity_tariff-ed71dfac.js rename to web/settings/assets/electricity_tariff-db82b684.js index 83927b805f..c4ec945022 100644 --- a/web/settings/assets/electricity_tariff-ed71dfac.js +++ b/web/settings/assets/electricity_tariff-db82b684.js @@ -1 +1 @@ -import{E as m}from"./GeneralChargeConfig-f5f65896.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-25d394b4.js";import"./index-e4c17b07.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; +import{E as m}from"./GeneralChargeConfig-4eeb378a.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-25d394b4.js";import"./index-2eee0632.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/external_inverter-8207d928.js b/web/settings/assets/external_inverter-e6cea795.js similarity index 94% rename from web/settings/assets/external_inverter-8207d928.js rename to web/settings/assets/external_inverter-e6cea795.js index 0b9eaa29a4..cf4ae2bff6 100644 --- a/web/settings/assets/external_inverter-8207d928.js +++ b/web/settings/assets/external_inverter-e6cea795.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/index-e4c17b07.js b/web/settings/assets/index-2eee0632.js similarity index 96% rename from web/settings/assets/index-e4c17b07.js rename to web/settings/assets/index-2eee0632.js index cb8570241d..6ac556fbf2 100644 --- a/web/settings/assets/index-e4c17b07.js +++ b/web/settings/assets/index-2eee0632.js @@ -1 +1 @@ -import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as x,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as q,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-25d394b4.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as qe,D as xe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as He,a as Ue}from"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-jquery-3364d39b.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,q(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)]),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=x((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},qt={class:"form-group mb-0"},xt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",qt,[a("div",xt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=x((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:x(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=x(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=x(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,q(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},qn={class:"input-group-prepend"},xn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",qn,[a("div",xn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,q(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,q(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,q(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,qe,xe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const xs=y(vs,[["render",qs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:xs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,q(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},qo={key:1},xo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",qo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",xo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-f48d27b8.js"),["assets/Status-f48d27b8.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-e7acf03d.js"),["assets/ChargeLog-e7acf03d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-899aaa0c.js"),["assets/Chart-899aaa0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-1aa02fdc.js").then(e=>e.a),["assets/GeneralConfig-1aa02fdc.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-ed3f2bff.js"),["assets/IdentificationConfig-ed3f2bff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-eab310e0.js").then(e=>e.O),["assets/OptionalComponents-eab310e0.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-f5f65896.js").then(e=>e.G),["assets/GeneralChargeConfig-f5f65896.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-e427d7a6.js"),["assets/PVChargeConfig-e427d7a6.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-6515151f.js").then(e=>e.a),["assets/HardwareInstallation-6515151f.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-9ba2529d.js"),["assets/LoadManagementConfig-9ba2529d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-227b0e79.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-4bbfab0c.js").then(e=>e.c),["assets/ChargePointInstallation-4bbfab0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-2e0daf8e.js").then(e=>e.b),["assets/VehicleConfig-2e0daf8e.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-83896e35.js").then(e=>e.b),["assets/IoConfig-83896e35.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-74bbfdff.js"),["assets/CloudConfig-74bbfdff.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-0cb3253c.js"),["assets/MqttBridgeConfig-0cb3253c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-f413af66.js"),["assets/DebugConfig-f413af66.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-d39bee6a.js"),["assets/Support-d39bee6a.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-0495f43d.js"),["assets/LegalSettings-0495f43d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-5b07ce9f.js"),["assets/System-5b07ce9f.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-337c2c94.js").then(e=>e.a),["assets/DataManagement-337c2c94.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-ad73a366.js"),["assets/InstallAssistant-ad73a366.js","assets/dynamic-import-helper-be004503.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-be12c671.js"),["assets/TestingStore-be12c671.js","assets/OpenwbSortableList-227b0e79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; +import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as x,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as q,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-25d394b4.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as qe,D as xe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as He,a as Ue}from"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-jquery-3364d39b.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,q(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)]),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=x((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},qt={class:"form-group mb-0"},xt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",qt,[a("div",xt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=x((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:x(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,q(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:x(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=x(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=x(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,q(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},qn={class:"input-group-prepend"},xn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",qn,[a("div",xn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,q(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,q(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,q(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,qe,xe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const xs=y(vs,[["render",qs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:xs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,q(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},qo={key:1},xo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",qo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",xo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-9c9c8fbe.js"),["assets/Status-9c9c8fbe.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-036b633c.js"),["assets/ChargeLog-036b633c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-8895dc32.js"),["assets/Chart-8895dc32.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-b20b00f2.js").then(e=>e.a),["assets/GeneralConfig-b20b00f2.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-83719926.js"),["assets/IdentificationConfig-83719926.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-5a739fed.js").then(e=>e.O),["assets/OptionalComponents-5a739fed.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-4eeb378a.js").then(e=>e.G),["assets/GeneralChargeConfig-4eeb378a.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-22a027f2.js"),["assets/PVChargeConfig-22a027f2.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-c5885604.js").then(e=>e.a),["assets/HardwareInstallation-c5885604.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-93e246a9.js"),["assets/LoadManagementConfig-93e246a9.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-0c9bfbcf.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-0bbbc31c.js").then(e=>e.c),["assets/ChargePointInstallation-0bbbc31c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-d6afdbf7.js").then(e=>e.b),["assets/VehicleConfig-d6afdbf7.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-f463e4c2.js").then(e=>e.b),["assets/IoConfig-f463e4c2.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-968a3074.js"),["assets/CloudConfig-968a3074.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-3fd6be01.js"),["assets/MqttBridgeConfig-3fd6be01.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-80e2cdf1.js"),["assets/DebugConfig-80e2cdf1.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-1b1bf87d.js"),["assets/Support-1b1bf87d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-91c84c8b.js"),["assets/LegalSettings-91c84c8b.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-6050454e.js"),["assets/System-6050454e.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-6ae64151.js").then(e=>e.a),["assets/DataManagement-6ae64151.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-ebc6d414.js"),["assets/InstallAssistant-ebc6d414.js","assets/dynamic-import-helper-be004503.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-9ee088d7.js"),["assets/TestingStore-9ee088d7.js","assets/OpenwbSortableList-0c9bfbcf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; diff --git a/web/settings/assets/inverter-e1663f22.js b/web/settings/assets/inverter-06962b94.js similarity index 88% rename from web/settings/assets/inverter-e1663f22.js rename to web/settings/assets/inverter-06962b94.js index 123f4870a9..5e585725cc 100644 --- a/web/settings/assets/inverter-e1663f22.js +++ b/web/settings/assets/inverter-06962b94.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-e08e7a01.js b/web/settings/assets/inverter-07496b6f.js similarity index 90% rename from web/settings/assets/inverter-e08e7a01.js rename to web/settings/assets/inverter-07496b6f.js index a47eb434ef..0717dca152 100644 --- a/web/settings/assets/inverter-e08e7a01.js +++ b/web/settings/assets/inverter-07496b6f.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; +import{C as l}from"./HardwareInstallation-c5885604.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-eb5fcf99.js b/web/settings/assets/inverter-0f2a7689.js similarity index 88% rename from web/settings/assets/inverter-eb5fcf99.js rename to web/settings/assets/inverter-0f2a7689.js index 686ab78837..64b7794d0d 100644 --- a/web/settings/assets/inverter-eb5fcf99.js +++ b/web/settings/assets/inverter-0f2a7689.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-95466897.js b/web/settings/assets/inverter-21915fb8.js similarity index 91% rename from web/settings/assets/inverter-95466897.js rename to web/settings/assets/inverter-21915fb8.js index c8d8ebf32e..5c9f20691c 100644 --- a/web/settings/assets/inverter-95466897.js +++ b/web/settings/assets/inverter-21915fb8.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-df3fe723.js b/web/settings/assets/inverter-2b9f64f8.js similarity index 88% rename from web/settings/assets/inverter-df3fe723.js rename to web/settings/assets/inverter-2b9f64f8.js index c43f4ddec7..cff903d245 100644 --- a/web/settings/assets/inverter-df3fe723.js +++ b/web/settings/assets/inverter-2b9f64f8.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter-878637c0.js b/web/settings/assets/inverter-2d9ed7ea.js similarity index 90% rename from web/settings/assets/inverter-878637c0.js rename to web/settings/assets/inverter-2d9ed7ea.js index 76feaeefa5..00addebcd8 100644 --- a/web/settings/assets/inverter-878637c0.js +++ b/web/settings/assets/inverter-2d9ed7ea.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-84d0a3ba.js b/web/settings/assets/inverter-3e299854.js similarity index 92% rename from web/settings/assets/inverter-84d0a3ba.js rename to web/settings/assets/inverter-3e299854.js index 9895bf45cf..7af4df008a 100644 --- a/web/settings/assets/inverter-84d0a3ba.js +++ b/web/settings/assets/inverter-3e299854.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-da060ce6.js b/web/settings/assets/inverter-3e76de97.js similarity index 87% rename from web/settings/assets/inverter-da060ce6.js rename to web/settings/assets/inverter-3e76de97.js index 988c1641a0..85a47b4152 100644 --- a/web/settings/assets/inverter-da060ce6.js +++ b/web/settings/assets/inverter-3e76de97.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-3e8be295.js b/web/settings/assets/inverter-46416042.js similarity index 94% rename from web/settings/assets/inverter-3e8be295.js rename to web/settings/assets/inverter-46416042.js index ef73284065..ef2008822c 100644 --- a/web/settings/assets/inverter-3e8be295.js +++ b/web/settings/assets/inverter-46416042.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-0852f06a.js b/web/settings/assets/inverter-4fdb3854.js similarity index 88% rename from web/settings/assets/inverter-0852f06a.js rename to web/settings/assets/inverter-4fdb3854.js index 18be463c85..11ae57fdb5 100644 --- a/web/settings/assets/inverter-0852f06a.js +++ b/web/settings/assets/inverter-4fdb3854.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-208d8966.js b/web/settings/assets/inverter-582ecbdb.js similarity index 88% rename from web/settings/assets/inverter-208d8966.js rename to web/settings/assets/inverter-582ecbdb.js index f69f9fa33b..08e9c4e10e 100644 --- a/web/settings/assets/inverter-208d8966.js +++ b/web/settings/assets/inverter-582ecbdb.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-ad33b033.js b/web/settings/assets/inverter-5c52c18e.js similarity index 80% rename from web/settings/assets/inverter-ad33b033.js rename to web/settings/assets/inverter-5c52c18e.js index 1cde6207b5..a12864923d 100644 --- a/web/settings/assets/inverter-ad33b033.js +++ b/web/settings/assets/inverter-5c52c18e.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-6515151f.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; +import{C as e}from"./HardwareInstallation-c5885604.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-c97efa3a.js b/web/settings/assets/inverter-64474ae0.js similarity index 91% rename from web/settings/assets/inverter-c97efa3a.js rename to web/settings/assets/inverter-64474ae0.js index 5cac4dd927..8e942c3dae 100644 --- a/web/settings/assets/inverter-c97efa3a.js +++ b/web/settings/assets/inverter-64474ae0.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-6515151f.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-c5885604.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-3dafbe7c.js b/web/settings/assets/inverter-6837c698.js similarity index 87% rename from web/settings/assets/inverter-3dafbe7c.js rename to web/settings/assets/inverter-6837c698.js index 5f57eb0413..3f7a55a66f 100644 --- a/web/settings/assets/inverter-3dafbe7c.js +++ b/web/settings/assets/inverter-6837c698.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-c68c3b52.js b/web/settings/assets/inverter-816dc1c7.js similarity index 89% rename from web/settings/assets/inverter-c68c3b52.js rename to web/settings/assets/inverter-816dc1c7.js index f2291f7a73..6a2aef4596 100644 --- a/web/settings/assets/inverter-c68c3b52.js +++ b/web/settings/assets/inverter-816dc1c7.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-4b55caa6.js b/web/settings/assets/inverter-84d8bbbe.js similarity index 91% rename from web/settings/assets/inverter-4b55caa6.js rename to web/settings/assets/inverter-84d8bbbe.js index 93fbe9aacb..b0a51479fa 100644 --- a/web/settings/assets/inverter-4b55caa6.js +++ b/web/settings/assets/inverter-84d8bbbe.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-fd208841.js b/web/settings/assets/inverter-95af7742.js similarity index 83% rename from web/settings/assets/inverter-fd208841.js rename to web/settings/assets/inverter-95af7742.js index d8d35ce624..e6a428e848 100644 --- a/web/settings/assets/inverter-fd208841.js +++ b/web/settings/assets/inverter-95af7742.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-fe7c6fda.js b/web/settings/assets/inverter-9f1c12f2.js similarity index 95% rename from web/settings/assets/inverter-fe7c6fda.js rename to web/settings/assets/inverter-9f1c12f2.js index c74a15fd42..044fe64a28 100644 --- a/web/settings/assets/inverter-fe7c6fda.js +++ b/web/settings/assets/inverter-9f1c12f2.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter-8afb296d.js b/web/settings/assets/inverter-a8bb5951.js similarity index 88% rename from web/settings/assets/inverter-8afb296d.js rename to web/settings/assets/inverter-a8bb5951.js index cbe80baa7c..e45d2c74c2 100644 --- a/web/settings/assets/inverter-8afb296d.js +++ b/web/settings/assets/inverter-a8bb5951.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-e4584f68.js b/web/settings/assets/inverter-a9d5f19e.js similarity index 87% rename from web/settings/assets/inverter-e4584f68.js rename to web/settings/assets/inverter-a9d5f19e.js index 93f33c5679..81d09d2cca 100644 --- a/web/settings/assets/inverter-e4584f68.js +++ b/web/settings/assets/inverter-a9d5f19e.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-f0a34520.js b/web/settings/assets/inverter-af6e5fbe.js similarity index 84% rename from web/settings/assets/inverter-f0a34520.js rename to web/settings/assets/inverter-af6e5fbe.js index 44b4cfca65..a75ef1ad8a 100644 --- a/web/settings/assets/inverter-f0a34520.js +++ b/web/settings/assets/inverter-af6e5fbe.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-6515151f.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-c5885604.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-f432c082.js b/web/settings/assets/inverter-b342fcab.js similarity index 95% rename from web/settings/assets/inverter-f432c082.js rename to web/settings/assets/inverter-b342fcab.js index 60ea8734f0..d1bf47e5e5 100644 --- a/web/settings/assets/inverter-f432c082.js +++ b/web/settings/assets/inverter-b342fcab.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-c71098f4.js b/web/settings/assets/inverter-be42a1ae.js similarity index 89% rename from web/settings/assets/inverter-c71098f4.js rename to web/settings/assets/inverter-be42a1ae.js index 0148958f8d..765489384a 100644 --- a/web/settings/assets/inverter-c71098f4.js +++ b/web/settings/assets/inverter-be42a1ae.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-10de1272.js b/web/settings/assets/inverter-d8829496.js similarity index 87% rename from web/settings/assets/inverter-10de1272.js rename to web/settings/assets/inverter-d8829496.js index cfdb85123a..eabc0e70dd 100644 --- a/web/settings/assets/inverter-10de1272.js +++ b/web/settings/assets/inverter-d8829496.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-6515151f.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; +import{C as p}from"./HardwareInstallation-c5885604.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-1a358f95.js b/web/settings/assets/inverter-d9cb7f23.js similarity index 94% rename from web/settings/assets/inverter-1a358f95.js rename to web/settings/assets/inverter-d9cb7f23.js index c06f73617a..fbd0e845ed 100644 --- a/web/settings/assets/inverter-1a358f95.js +++ b/web/settings/assets/inverter-d9cb7f23.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; +import{C as l}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-b57300f5.js b/web/settings/assets/inverter-e86414ee.js similarity index 88% rename from web/settings/assets/inverter-b57300f5.js rename to web/settings/assets/inverter-e86414ee.js index 18ed933887..e25fefe14a 100644 --- a/web/settings/assets/inverter-b57300f5.js +++ b/web/settings/assets/inverter-e86414ee.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-0d5f082e.js b/web/settings/assets/inverter-eebadf23.js similarity index 87% rename from web/settings/assets/inverter-0d5f082e.js rename to web/settings/assets/inverter-eebadf23.js index 4c1c670cef..9d097db684 100644 --- a/web/settings/assets/inverter-0d5f082e.js +++ b/web/settings/assets/inverter-eebadf23.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-236b1784.js b/web/settings/assets/inverter-ef0228b0.js similarity index 80% rename from web/settings/assets/inverter-236b1784.js rename to web/settings/assets/inverter-ef0228b0.js index 9379d5d254..f6a633fcbf 100644 --- a/web/settings/assets/inverter-236b1784.js +++ b/web/settings/assets/inverter-ef0228b0.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-6515151f.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; +import{C as e}from"./HardwareInstallation-c5885604.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-3de69e58.js b/web/settings/assets/inverter-f4f8eb31.js similarity index 89% rename from web/settings/assets/inverter-3de69e58.js rename to web/settings/assets/inverter-f4f8eb31.js index c491beafde..a91ad86968 100644 --- a/web/settings/assets/inverter-3de69e58.js +++ b/web/settings/assets/inverter-f4f8eb31.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-6515151f.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-c5885604.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-fc51cd0b.js b/web/settings/assets/inverter-fc863d2a.js similarity index 86% rename from web/settings/assets/inverter-fc51cd0b.js rename to web/settings/assets/inverter-fc863d2a.js index 39a555f4ae..6e0b9c2aa8 100644 --- a/web/settings/assets/inverter-fc51cd0b.js +++ b/web/settings/assets/inverter-fc863d2a.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-6515151f.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; +import{C as s}from"./HardwareInstallation-c5885604.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-36706c9a.js b/web/settings/assets/inverter-fdc3fcb1.js similarity index 88% rename from web/settings/assets/inverter-36706c9a.js rename to web/settings/assets/inverter-fdc3fcb1.js index 56886aa42f..8780350135 100644 --- a/web/settings/assets/inverter-36706c9a.js +++ b/web/settings/assets/inverter-fdc3fcb1.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-6515151f.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; +import{C as a}from"./HardwareInstallation-c5885604.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter_secondary-62644358.js b/web/settings/assets/inverter_secondary-06336d06.js similarity index 92% rename from web/settings/assets/inverter_secondary-62644358.js rename to web/settings/assets/inverter_secondary-06336d06.js index f3beae2a62..c30882265e 100644 --- a/web/settings/assets/inverter_secondary-62644358.js +++ b/web/settings/assets/inverter_secondary-06336d06.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-6515151f.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; +import{C as u}from"./HardwareInstallation-c5885604.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/io_action-b9cbb026.js b/web/settings/assets/io_action-463b6914.js similarity index 94% rename from web/settings/assets/io_action-b9cbb026.js rename to web/settings/assets/io_action-463b6914.js index 6c0f4d54c4..04010bf3a2 100644 --- a/web/settings/assets/io_action-b9cbb026.js +++ b/web/settings/assets/io_action-463b6914.js @@ -1 +1 @@ -import{a as g}from"./IoConfig-83896e35.js";import{O as c}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; +import{a as g}from"./IoConfig-f463e4c2.js";import{O as c}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; diff --git a/web/settings/assets/io_action-e0e64896.js b/web/settings/assets/io_action-7bd7a97f.js similarity index 95% rename from web/settings/assets/io_action-e0e64896.js rename to web/settings/assets/io_action-7bd7a97f.js index 778c4214c8..b827448522 100644 --- a/web/settings/assets/io_action-e0e64896.js +++ b/web/settings/assets/io_action-7bd7a97f.js @@ -1 +1 @@ -import{a as f}from"./IoConfig-83896e35.js";import{O as b}from"./OpenwbIoPattern-66bb2793.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; +import{a as f}from"./IoConfig-f463e4c2.js";import{O as b}from"./OpenwbIoPattern-66bb2793.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_action-c0bcbb6c.js b/web/settings/assets/io_action-bdac70f1.js similarity index 93% rename from web/settings/assets/io_action-c0bcbb6c.js rename to web/settings/assets/io_action-bdac70f1.js index 6a021986de..e1f57fecfa 100644 --- a/web/settings/assets/io_action-c0bcbb6c.js +++ b/web/settings/assets/io_action-bdac70f1.js @@ -1 +1 @@ -import{a as d}from"./IoConfig-83896e35.js";import{O as m}from"./OpenwbIoPattern-66bb2793.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; +import{a as d}from"./IoConfig-f463e4c2.js";import{O as m}from"./OpenwbIoPattern-66bb2793.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; diff --git a/web/settings/assets/io_action-976bf2b0.js b/web/settings/assets/io_action-ed20fe66.js similarity index 94% rename from web/settings/assets/io_action-976bf2b0.js rename to web/settings/assets/io_action-ed20fe66.js index cf49d944ee..84ba6fb3c3 100644 --- a/web/settings/assets/io_action-976bf2b0.js +++ b/web/settings/assets/io_action-ed20fe66.js @@ -1 +1 @@ -import{a as v}from"./IoConfig-83896e35.js";import{O as h}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; +import{a as v}from"./IoConfig-f463e4c2.js";import{O as h}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_device-ff6641fb.js b/web/settings/assets/io_device-8d69d696.js similarity index 95% rename from web/settings/assets/io_device-ff6641fb.js rename to web/settings/assets/io_device-8d69d696.js index 31c3bc2e24..d42a61438a 100644 --- a/web/settings/assets/io_device-ff6641fb.js +++ b/web/settings/assets/io_device-8d69d696.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-83896e35.js";import{C as f}from"./index-e4c17b07.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; +import{O as m}from"./IoConfig-f463e4c2.js";import{C as f}from"./index-2eee0632.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/io_device-9ff50b11.js b/web/settings/assets/io_device-e732c7fa.js similarity index 90% rename from web/settings/assets/io_device-9ff50b11.js rename to web/settings/assets/io_device-e732c7fa.js index 3110980d15..56f0ab6ef3 100644 --- a/web/settings/assets/io_device-9ff50b11.js +++ b/web/settings/assets/io_device-e732c7fa.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-83896e35.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; +import{O as m}from"./IoConfig-f463e4c2.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; diff --git a/web/settings/assets/monitoring-8ab638da.js b/web/settings/assets/monitoring-e58bdea3.js similarity index 90% rename from web/settings/assets/monitoring-8ab638da.js rename to web/settings/assets/monitoring-e58bdea3.js index 0db54b30b4..dc3c2fe212 100644 --- a/web/settings/assets/monitoring-8ab638da.js +++ b/web/settings/assets/monitoring-e58bdea3.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-337c2c94.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; +import{M as l}from"./DataManagement-6ae64151.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-081d1860.js b/web/settings/assets/vehicle-0ddcea52.js similarity index 89% rename from web/settings/assets/vehicle-081d1860.js rename to web/settings/assets/vehicle-0ddcea52.js index 9a1b166799..67217ec6e1 100644 --- a/web/settings/assets/vehicle-081d1860.js +++ b/web/settings/assets/vehicle-0ddcea52.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; +import{V as u}from"./VehicleConfig-d6afdbf7.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-d5f041d0.js b/web/settings/assets/vehicle-0fbea598.js similarity index 94% rename from web/settings/assets/vehicle-d5f041d0.js rename to web/settings/assets/vehicle-0fbea598.js index ace227277a..be7dc77a84 100644 --- a/web/settings/assets/vehicle-d5f041d0.js +++ b/web/settings/assets/vehicle-0fbea598.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; +import{V as a}from"./VehicleConfig-d6afdbf7.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-f5091955.js b/web/settings/assets/vehicle-11565bbb.js similarity index 93% rename from web/settings/assets/vehicle-f5091955.js rename to web/settings/assets/vehicle-11565bbb.js index fe1c32cf5e..a6e638ea9a 100644 --- a/web/settings/assets/vehicle-f5091955.js +++ b/web/settings/assets/vehicle-11565bbb.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; +import{V as u}from"./VehicleConfig-d6afdbf7.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-54d21a19.js b/web/settings/assets/vehicle-13675add.js similarity index 89% rename from web/settings/assets/vehicle-54d21a19.js rename to web/settings/assets/vehicle-13675add.js index 181353d40f..9231c825bb 100644 --- a/web/settings/assets/vehicle-54d21a19.js +++ b/web/settings/assets/vehicle-13675add.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; +import{V as u}from"./VehicleConfig-d6afdbf7.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vehicle-e22aaad0.js b/web/settings/assets/vehicle-1bde8cf1.js similarity index 91% rename from web/settings/assets/vehicle-e22aaad0.js rename to web/settings/assets/vehicle-1bde8cf1.js index aaef905a1c..47441f8145 100644 --- a/web/settings/assets/vehicle-e22aaad0.js +++ b/web/settings/assets/vehicle-1bde8cf1.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; +import{V as l}from"./VehicleConfig-d6afdbf7.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-bc9278d5.js b/web/settings/assets/vehicle-3288206c.js similarity index 82% rename from web/settings/assets/vehicle-bc9278d5.js rename to web/settings/assets/vehicle-3288206c.js index 93441ccbf4..6a466c9112 100644 --- a/web/settings/assets/vehicle-bc9278d5.js +++ b/web/settings/assets/vehicle-3288206c.js @@ -1 +1 @@ -import{V as n}from"./VehicleConfig-2e0daf8e.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; +import{V as n}from"./VehicleConfig-d6afdbf7.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-4ee84148.js b/web/settings/assets/vehicle-3a2ce5a8.js similarity index 95% rename from web/settings/assets/vehicle-4ee84148.js rename to web/settings/assets/vehicle-3a2ce5a8.js index 5eaa78e17e..2dadc1a578 100644 --- a/web/settings/assets/vehicle-4ee84148.js +++ b/web/settings/assets/vehicle-3a2ce5a8.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-2e0daf8e.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; +import{V as m}from"./VehicleConfig-d6afdbf7.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-fa5f8129.js b/web/settings/assets/vehicle-3a8c6a3b.js similarity index 92% rename from web/settings/assets/vehicle-fa5f8129.js rename to web/settings/assets/vehicle-3a8c6a3b.js index 3431c8dbc3..6599b2c8b5 100644 --- a/web/settings/assets/vehicle-fa5f8129.js +++ b/web/settings/assets/vehicle-3a8c6a3b.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; +import{V as a}from"./VehicleConfig-d6afdbf7.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-3688de48.js b/web/settings/assets/vehicle-5da275c6.js similarity index 94% rename from web/settings/assets/vehicle-3688de48.js rename to web/settings/assets/vehicle-5da275c6.js index fd75e86078..f602780b3a 100644 --- a/web/settings/assets/vehicle-3688de48.js +++ b/web/settings/assets/vehicle-5da275c6.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; +import{V as p}from"./VehicleConfig-d6afdbf7.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-62ddb254.js b/web/settings/assets/vehicle-62ddb254.js deleted file mode 100644 index 2893b36dd5..0000000000 --- a/web/settings/assets/vehicle-62ddb254.js +++ /dev/null @@ -1 +0,0 @@ -import{V as d}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as p,l as a,m as f,G as i,E as n,B as l,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[d]},v={class:"vehicle-soc-mqtt"};function g(o,e,w,k,x,B){const s=p("openwb-base-copy-to-clipboard"),m=p("openwb-base-alert");return a(),f("div",v,[i(m,{subtype:"info"},{default:n(()=>[e[19]||(e[19]=l(" Die Daten werden immer dann aktualisiert, wenn das Topic veröffentlicht wird. Die Abfrageintervalle werden nicht berücksichtigt, da das Intervall vom sendenden Client festgelegt wird. ",-1)),t("ul",null,[t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc ",1)]),_:1}),e[0]||(e[0]=t("br",null,null,-1)),e[1]||(e[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[2]||(e[2]=t("br",null,null,-1)),e[3]||(e[3]=l(" Beispiel: ",-1)),e[4]||(e[4]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[9]||(e[9]=t("br",null,null,-1)),e[10]||(e[10]=l(" Beispiel: ",-1)),e[11]||(e[11]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(s,{class:"text-info",tooltip:"Topic kopieren"},{default:n(()=>[l(" openWB/set/mqtt/vehicle/"+r(o.vehicleId)+"/get/range ",1)]),_:1}),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=l(" Diese Info ist optional.",-1)),e[16]||(e[16]=t("br",null,null,-1)),e[17]||(e[17]=l(" Beispiel: ",-1)),e[18]||(e[18]=t("span",{class:"text-info"},"356.5",-1))])])]),_:1,__:[19]})])}const N=u(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-b55a7355.js b/web/settings/assets/vehicle-64bfc69a.js similarity index 91% rename from web/settings/assets/vehicle-b55a7355.js rename to web/settings/assets/vehicle-64bfc69a.js index 9b399d9688..9d58724bbc 100644 --- a/web/settings/assets/vehicle-b55a7355.js +++ b/web/settings/assets/vehicle-64bfc69a.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; +import{V as a}from"./VehicleConfig-d6afdbf7.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-ce15b972.js b/web/settings/assets/vehicle-6d1ae41c.js similarity index 94% rename from web/settings/assets/vehicle-ce15b972.js rename to web/settings/assets/vehicle-6d1ae41c.js index 10c1e6f0af..96b87ad7b9 100644 --- a/web/settings/assets/vehicle-ce15b972.js +++ b/web/settings/assets/vehicle-6d1ae41c.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-2e0daf8e.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; +import{V as u}from"./VehicleConfig-d6afdbf7.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-81c54b19.js b/web/settings/assets/vehicle-79879d28.js similarity index 96% rename from web/settings/assets/vehicle-81c54b19.js rename to web/settings/assets/vehicle-79879d28.js index 2caec908eb..c7ff349bbb 100644 --- a/web/settings/assets/vehicle-81c54b19.js +++ b/web/settings/assets/vehicle-79879d28.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; +import{V as s}from"./VehicleConfig-d6afdbf7.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-aa814b6d.js b/web/settings/assets/vehicle-8e6d439c.js similarity index 97% rename from web/settings/assets/vehicle-aa814b6d.js rename to web/settings/assets/vehicle-8e6d439c.js index 9f827e1d88..a556e4727c 100644 --- a/web/settings/assets/vehicle-aa814b6d.js +++ b/web/settings/assets/vehicle-8e6d439c.js @@ -1 +1 @@ -import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-25d394b4.js";import{a as w}from"./vendor-axios-ac33d60c.js";import{C}from"./index-e4c17b07.js";import{V as y}from"./VehicleConfig-2e0daf8e.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; +import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-25d394b4.js";import{a as w}from"./vendor-axios-ac33d60c.js";import{C}from"./index-2eee0632.js";import{V as y}from"./VehicleConfig-d6afdbf7.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-a44392fc.js b/web/settings/assets/vehicle-916e09c5.js similarity index 88% rename from web/settings/assets/vehicle-a44392fc.js rename to web/settings/assets/vehicle-916e09c5.js index c907fff331..c960866c5a 100644 --- a/web/settings/assets/vehicle-a44392fc.js +++ b/web/settings/assets/vehicle-916e09c5.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfig-2e0daf8e.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; +import{V as o}from"./VehicleConfig-d6afdbf7.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-a08311d0.js b/web/settings/assets/vehicle-93664b48.js similarity index 86% rename from web/settings/assets/vehicle-a08311d0.js rename to web/settings/assets/vehicle-93664b48.js index 3454f561b6..5257a88942 100644 --- a/web/settings/assets/vehicle-a08311d0.js +++ b/web/settings/assets/vehicle-93664b48.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfig-2e0daf8e.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; +import{V as r}from"./VehicleConfig-d6afdbf7.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-2e31f054.js b/web/settings/assets/vehicle-9482d119.js similarity index 97% rename from web/settings/assets/vehicle-2e31f054.js rename to web/settings/assets/vehicle-9482d119.js index 62416f703a..87633dad95 100644 --- a/web/settings/assets/vehicle-2e31f054.js +++ b/web/settings/assets/vehicle-9482d119.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; +import{V as p}from"./VehicleConfig-d6afdbf7.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-a97ad9e3.js b/web/settings/assets/vehicle-a97ad9e3.js new file mode 100644 index 0000000000..5e1cbaf938 --- /dev/null +++ b/web/settings/assets/vehicle-a97ad9e3.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-d6afdbf7.js";import{_ as a,u as r,l as d,m as f,G as o,E as i,A as e,B as l,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[u]},v={class:"vehicle-soc-mqtt"};function g(n,t,x,B,k,w){const s=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return d(),f("div",v,[o(m,{subtype:"info"},{default:i(()=>[e("ul",null,[e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc ",1)]),_:1}),t[0]||(t[0]=e("br",null,null,-1)),t[1]||(t[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=l(" Beispiel: ",-1)),t[4]||(t[4]=e("span",{class:"text-info"},"89.5",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),t[5]||(t[5]=e("br",null,null,-1)),t[6]||(t[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),t[7]||(t[7]=e("br",null,null,-1)),t[8]||(t[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),t[9]||(t[9]=e("br",null,null,-1)),t[10]||(t[10]=l(" Beispiel: ",-1)),t[11]||(t[11]=e("span",{class:"text-info"},"1748339524",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/range ",1)]),_:1}),t[12]||(t[12]=e("br",null,null,-1)),t[13]||(t[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[14]||(t[14]=e("br",null,null,-1)),t[15]||(t[15]=l(" Diese Info ist optional.",-1)),t[16]||(t[16]=e("br",null,null,-1)),t[17]||(t[17]=l(" Beispiel: ",-1)),t[18]||(t[18]=e("span",{class:"text-info"},"356.5",-1))])])]),_:1})])}const y=a(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-02f99327.js b/web/settings/assets/vehicle-b10f3057.js similarity index 89% rename from web/settings/assets/vehicle-02f99327.js rename to web/settings/assets/vehicle-b10f3057.js index 3969f1eb3e..7b6db53603 100644 --- a/web/settings/assets/vehicle-02f99327.js +++ b/web/settings/assets/vehicle-b10f3057.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; +import{V as l}from"./VehicleConfig-d6afdbf7.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-552086ad.js b/web/settings/assets/vehicle-b78c41a7.js similarity index 89% rename from web/settings/assets/vehicle-552086ad.js rename to web/settings/assets/vehicle-b78c41a7.js index 999733efba..3ae0a4d0b2 100644 --- a/web/settings/assets/vehicle-552086ad.js +++ b/web/settings/assets/vehicle-b78c41a7.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-2e0daf8e.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; +import{V as a}from"./VehicleConfig-d6afdbf7.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-5bf23959.js b/web/settings/assets/vehicle-c6f30989.js similarity index 97% rename from web/settings/assets/vehicle-5bf23959.js rename to web/settings/assets/vehicle-c6f30989.js index 2f14396674..fa6d6327d9 100644 --- a/web/settings/assets/vehicle-5bf23959.js +++ b/web/settings/assets/vehicle-c6f30989.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-2e0daf8e.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; +import{V as m}from"./VehicleConfig-d6afdbf7.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-b6b40aa6.js b/web/settings/assets/vehicle-f779e07f.js similarity index 89% rename from web/settings/assets/vehicle-b6b40aa6.js rename to web/settings/assets/vehicle-f779e07f.js index f6fde14d1c..e521accb9a 100644 --- a/web/settings/assets/vehicle-b6b40aa6.js +++ b/web/settings/assets/vehicle-f779e07f.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-2e0daf8e.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; +import{V as p}from"./VehicleConfig-d6afdbf7.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/webTheme-9c8ff1fc.js b/web/settings/assets/webTheme-244336f6.js similarity index 95% rename from web/settings/assets/webTheme-9c8ff1fc.js rename to web/settings/assets/webTheme-244336f6.js index 091326267c..7eced7413b 100644 --- a/web/settings/assets/webTheme-9c8ff1fc.js +++ b/web/settings/assets/webTheme-244336f6.js @@ -1 +1 @@ -import{W as p}from"./GeneralConfig-1aa02fdc.js";import{_ as m,u,l as b,m as g,G as i,E as a,B as o,A as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"WebThemeKoala",mixins:[p]},f={class:"web-theme-koala"};function w(n,e,v,_,c,z){const l=u("openwb-base-button-group-input"),d=u("openwb-base-range-input"),s=u("openwb-base-number-input");return b(),g("div",f,[i(l,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.hide_standard_vehicle"))},{help:a(()=>e[6]||(e[6]=[o(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])),_:1},8,["model-value"]),e[12]||(e[12]=r("hr",null,null,-1)),i(d,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":n.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t*60,"configuration.history_chart_range"))},{help:a(()=>e[7]||(e[7]=[o(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=r("hr",null,null,-1)),i(s,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":n.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>e[8]||(e[8]=[o(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>e[9]||(e[9]=[o(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])),_:1},8,["model-value"]),e[14]||(e[14]=r("hr",null,null,-1)),i(s,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":n.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>e[10]||(e[10]=[o(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.vehicle_table_search_input_field"))},{help:a(()=>e[11]||(e[11]=[o(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])),_:1},8,["model-value"])])}const N=m(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; +import{W as p}from"./GeneralConfig-b20b00f2.js";import{_ as m,u,l as b,m as g,G as i,E as a,B as o,A as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"WebThemeKoala",mixins:[p]},f={class:"web-theme-koala"};function w(n,e,v,_,c,z){const l=u("openwb-base-button-group-input"),d=u("openwb-base-range-input"),s=u("openwb-base-number-input");return b(),g("div",f,[i(l,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.hide_standard_vehicle"))},{help:a(()=>e[6]||(e[6]=[o(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])),_:1},8,["model-value"]),e[12]||(e[12]=r("hr",null,null,-1)),i(d,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":n.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t*60,"configuration.history_chart_range"))},{help:a(()=>e[7]||(e[7]=[o(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=r("hr",null,null,-1)),i(s,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":n.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>e[8]||(e[8]=[o(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>e[9]||(e[9]=[o(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])),_:1},8,["model-value"]),e[14]||(e[14]=r("hr",null,null,-1)),i(s,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":n.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>e[10]||(e[10]=[o(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.vehicle_table_search_input_field"))},{help:a(()=>e[11]||(e[11]=[o(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])),_:1},8,["model-value"])])}const N=m(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/webTheme-526f053f.js b/web/settings/assets/webTheme-e5349504.js similarity index 88% rename from web/settings/assets/webTheme-526f053f.js rename to web/settings/assets/webTheme-e5349504.js index 62339c7d91..618d185ce0 100644 --- a/web/settings/assets/webTheme-526f053f.js +++ b/web/settings/assets/webTheme-e5349504.js @@ -1 +1 @@ -import{W as a}from"./GeneralConfig-1aa02fdc.js";import{_ as r,u as i,l as s,m,G as p,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-e4c17b07.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; +import{W as a}from"./GeneralConfig-b20b00f2.js";import{_ as r,u as i,l as s,m,G as p,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-2eee0632.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; diff --git a/web/settings/index.html b/web/settings/index.html index f53be6bdb8..87e82674eb 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -7,7 +7,7 @@ openWB - + From 300d956ce35055d66010888922e09bc94a0096ea Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:33:31 +0200 Subject: [PATCH 12/42] set max value for phase_switch_delay to 60 (#2689) --- packages/helpermodules/setdata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index 10dc200d4e..5bfc4fa6d5 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -717,7 +717,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage): elif "openWB/set/general/chargemode_config/pv_charging/switch_off_threshold" in msg.topic: self._validate_value(msg, float) elif "openWB/set/general/chargemode_config/phase_switch_delay" in msg.topic: - self._validate_value(msg, int, [(5, 20)]) + self._validate_value(msg, int, [(5, 60)]) elif "openWB/set/general/chargemode_config/pv_charging/control_range" in msg.topic: self._validate_value(msg, int, collection=list) elif "openWB/set/general/chargemode_config/pv_charging/min_bat_soc" in msg.topic: From af954871fe4912f801b7d89c9c5c6f72f0b38528 Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:00:17 +0200 Subject: [PATCH 13/42] fix cp soc update (#2691) --- packages/helpermodules/subdata.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/helpermodules/subdata.py b/packages/helpermodules/subdata.py index f07b62b436..f6855c393e 100644 --- a/packages/helpermodules/subdata.py +++ b/packages/helpermodules/subdata.py @@ -440,6 +440,9 @@ def process_chargepoint_topic(self, var: Dict[str, chargepoint.Chargepoint], msg if var["cp"+index].chargepoint.data.set.charging_ev > -1: Pub().pub(f'openWB/set/vehicle/{var["cp"+index].chargepoint.data.set.charging_ev}' '/get/force_soc_update', True) + elif var["cp"+index].chargepoint.data.set.charging_ev_prev > -1: + Pub().pub(f'openWB/set/vehicle/{var["cp"+index].chargepoint.data.set.charging_ev_prev}' + '/get/force_soc_update', True) self.set_json_payload_class(var["cp"+index].chargepoint.data.get, msg) elif (re.search("/chargepoint/[0-9]+/get/error_timestamp$", msg.topic) is not None and hasattr(var[f"cp{index}"].chargepoint.chargepoint_module, "client_error_context")): From dc84cc5590aa2e40699b0f4060398798f4acbb19 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Fri, 22 Aug 2025 09:01:38 +0200 Subject: [PATCH 14/42] sonnenbatterie: fix setting default mode --- packages/modules/devices/sonnen/sonnenbatterie/api.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/modules/devices/sonnen/sonnenbatterie/api.py b/packages/modules/devices/sonnen/sonnenbatterie/api.py index f0bc51680d..55a3f232b7 100644 --- a/packages/modules/devices/sonnen/sonnenbatterie/api.py +++ b/packages/modules/devices/sonnen/sonnenbatterie/api.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import logging from enum import Enum from typing import Dict, List, Optional, TypedDict, Union from modules.common import req @@ -6,6 +7,9 @@ from modules.common.simcount import SimCounter +log = logging.getLogger(__name__) + + class RestApi1(): def __init__(self, host: str) -> None: self.host = host @@ -434,11 +438,13 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: if self.default_operating_mode is None: # Store the default operating mode for later restoration self.default_operating_mode = self.OperatingMode(configurations["EM_OperatingMode"]) + log.debug(f"default_operating_mode set to: {self.default_operating_mode}") + operating_mode = self.OperatingMode(configurations["EM_OperatingMode"]) if power_limit is None: # No specific power limit is set, activating default mode to allow the system to optimize energy usage by it # self. - if operating_mode == self.OperatingMode.MANUAL: + if operating_mode == self.OperatingMode.MANUAL and self.default_operating_mode != self.OperatingMode.MANUAL: self.__set_configurations({"EM_OperatingMode": self.default_operating_mode.value}) else: # Activate "Manual" operating mode to allow direct control of the power limit From a9e02b2271a3ef750a024e893276fd359c5f24a7 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Fri, 22 Aug 2025 09:02:09 +0200 Subject: [PATCH 15/42] fix initialization of power_limit --- packages/control/bat.py | 2 +- packages/control/bat_all.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/control/bat.py b/packages/control/bat.py index 6750ab10db..eedb3c63b2 100644 --- a/packages/control/bat.py +++ b/packages/control/bat.py @@ -29,7 +29,7 @@ def get_factory() -> Get: @dataclass class Set: - power_limit: float = field(default=0, metadata={"topic": "set/power_limit"}) + power_limit: float = field(default=None, metadata={"topic": "set/power_limit"}) def set_factory() -> Set: diff --git a/packages/control/bat_all.py b/packages/control/bat_all.py index ac0cbdc90e..ea4020dddd 100644 --- a/packages/control/bat_all.py +++ b/packages/control/bat_all.py @@ -294,7 +294,7 @@ def get_power_limit(self): return chargepoint_by_chargemodes = get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_CHARGING) # Falls aktive Steuerung an und Fahrzeuge laden und kein Überschuss im System ist, - # dann Speichereistung begrenzen. + # dann Speicherleistung begrenzen. if (self.data.config.power_limit_mode != BatPowerLimitMode.NO_LIMIT.value and len(chargepoint_by_chargemodes) > 0 and data.data.cp_all_data.data.get.power > 100 and @@ -315,7 +315,7 @@ def get_power_limit(self): log.debug("Speicher-Leistung nicht begrenzen, " "da keine Ladepunkte in einem Lademodus mit Netzbezug sind.") elif data.data.cp_all_data.data.get.power <= 100: - log.debug("Speicher-Leistung nicht begrenzen, da kein Ladepunkt mit Netzubezug lädt.") + log.debug("Speicher-Leistung nicht begrenzen, da kein Ladepunkt mit Netzbezug lädt.") elif self.data.get.power_limit_controllable is False: log.debug("Speicher-Leistung nicht begrenzen, da keine regelbaren Speicher vorhanden sind.") elif self.data.get.power > 0: From ae4203b47261b8dbd01cdf2f876137ba1a691f93 Mon Sep 17 00:00:00 2001 From: rleidner Date: Fri, 22 Aug 2025 13:49:53 +0200 Subject: [PATCH 16/42] bmwbc: fix initial login --- packages/modules/vehicles/bmwbc/api.py | 37 +++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/modules/vehicles/bmwbc/api.py b/packages/modules/vehicles/bmwbc/api.py index c140b10558..ece02fa090 100755 --- a/packages/modules/vehicles/bmwbc/api.py +++ b/packages/modules/vehicles/bmwbc/api.py @@ -139,6 +139,7 @@ class Api: _clconf = {} _account = {} _last_reload = {} + _login_required = {} _primary_vehicle_id = {} _lock = Lock() @@ -188,6 +189,7 @@ async def _fetch_soc(self, soc = 0 range = 0.0 soc_tsX = 0.0 + self._login_required[user_id] = False if captcha_token != "SECONDARY": self._mode = "PRIMARY " @@ -207,13 +209,20 @@ async def _fetch_soc(self, # last used captcha token in store, compare with captcha_token in configuration if self._store[user_id]['captcha_token'] != captcha_token: # invalidate current refresh and access token to force new login - log.debug("new captcha token configured - invalidate stored token set") + self._login_required[user_id] = True + log.info("new captcha token configured - invalidate stored token set") self._new_captcha = True self._store[user_id]['expires_at'] = None self._store[user_id]['access_token'] = None self._store[user_id]['refresh_token'] = None self._store[user_id]['session_id'] = None self._store[user_id]['gcid'] = None + if user_id in self._auth: + self._auth.pop(user_id) + if user_id in self._clconf: + self._clconf.pop(user_id) + if user_id in self._account: + self._account.pop(user_id) else: log.debug("captcha token unchanged") self._new_captcha = False @@ -246,10 +255,11 @@ async def _fetch_soc(self, log.debug("# Reuse _auth instance") # set session_id and gcid in _auth to store values - if self._store[user_id]['session_id'] is not None: - self._auth[user_id].session_id = self._store[user_id]['session_id'] - if self._store[user_id]['gcid'] is not None: - self._auth[user_id].gcid = self._store[user_id]['gcid'] + if self._login_required[user_id] is False: + if self._store[user_id]['session_id'] is not None: + self._auth[user_id].session_id = self._store[user_id]['session_id'] + if self._store[user_id]['gcid'] is not None: + self._auth[user_id].gcid = self._store[user_id]['gcid'] # instantiate client configuration object is not existent yet if user_id not in self._clconf: @@ -265,15 +275,23 @@ async def _fetch_soc(self, self._account[user_id] = MyBMWAccount(None, None, None, config=self._clconf[user_id], hcaptcha_token=captcha_token) - self._account[user_id].set_refresh_token(refresh_token=self._store[user_id]['refresh_token'], - gcid=self._store[user_id]['gcid'], - access_token=self._store[user_id]['access_token'], - session_id=self._store[user_id]['session_id']) + if self._login_required[user_id] is False: + self._account[user_id].set_refresh_token(refresh_token=self._store[user_id]['refresh_token'], + gcid=self._store[user_id]['gcid'], + access_token=self._store[user_id]['access_token'], + session_id=self._store[user_id]['session_id']) else: log.debug("# Reuse _account instance") else: self._mode = "SECONDARY" + if self._login_required[user_id]: + log.debug("# before initial login:" + str(self._auth[user_id].expires_at)) + await self._auth[user_id].login() + log.debug("# after initial login:" + str(self._auth[user_id].expires_at)) + self._login_required[user_id] = False + self._last_reload[user_id] = 0 + # get vehicle list - if last reload is more than 5 min ago self._now = datetime.timestamp(datetime.now()) if user_id not in self._last_reload: @@ -325,6 +343,7 @@ async def _fetch_soc(self, # get json of vehicle data resp = dumps(vehicle, cls=MyBMWJSONEncoder, indent=4) + log.debug("bmwbc.fetch_soc: resp=" + resp) # vehicle data - json to dict respd = loads(resp) From 20d3363ec81093c879581b6cb59b1c17b4af07a7 Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Fri, 22 Aug 2025 14:47:32 +0200 Subject: [PATCH 17/42] check hardware pahses vs chargemode phases (#2694) --- packages/control/chargepoint/chargepoint.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index 6ed200beee..8ae4f8fa64 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -561,6 +561,7 @@ def hw_bidi_capable(self) -> BidiState: def set_phases(self, phases: int) -> int: charging_ev = self.data.set.charging_ev_data + phases = min(phases, self.get_max_phase_hw()) if phases != self.data.get.phases_in_use: # Wenn noch kein Eintrag im Protokoll erstellt wurde, wurde noch nicht geladen und die Phase kann noch From c8b5a99158f8e6453296f0f0fff0b5f92f8819e3 Mon Sep 17 00:00:00 2001 From: cshagen Date: Mon, 25 Aug 2025 07:31:14 +0200 Subject: [PATCH 18/42] Colors theme fixes (#2696) * modify powergraph look * fix chargepoint display in powergraph * hide battery widget when not configured --- .../components/powerGraph/processLiveGraphData.ts | 13 +++++++++++-- .../source/src/components/powerMeter/PMArc.vue | 4 ++-- .../colors/source/src/views/ColorsTheme.vue | 3 ++- .../modules/web_themes/colors/source/vite.config.ts | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts index 1f76830556..599a68c22d 100755 --- a/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts +++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts @@ -79,6 +79,7 @@ function extractValues(data: RawGraphDataItem): GraphDataItem { : 1 const car1id = 'ev' + car1 + '-soc' const car2id = 'ev' + car2 + '-soc' + const re_cp = /cp(\d+)-power/ const values: GraphDataItem = {} values.date = +data.timestamp * 1000 if (+data.grid > 0) { @@ -124,10 +125,18 @@ function extractValues(data: RawGraphDataItem): GraphDataItem { values.charging = +data['charging-all'] // charge points - we only show a maximum of 10 chargepoints in the graph - for (let i = 0; i < 10; i++) { +/* for (let i = 0; i < 10; i++) { const idx = 'cp' + i values[idx] = +(data[idx + '-power'] ?? 0) - } + } */ +Object.keys(data) +.filter(key => re_cp.test(key)) + .forEach((key) => { + const found = key.match(re_cp) + if (found && found[1]) { + values['cp' + found[1]] = +(data[key] ?? 0) + } + }) values.selfUsage = values.pv - values.evuOut if (values.selfUsage < 0) { values.selfUsage = 0 diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PMArc.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMArc.vue index 0e53cf73af..a794fef532 100644 --- a/packages/modules/web_themes/colors/source/src/components/powerMeter/PMArc.vue +++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMArc.vue @@ -56,7 +56,7 @@ const props = defineProps<{ categoriesToShow: PowerItemType[] }>() -const cornerRadius = 20 +const cornerRadius = 10 const circleGapSize = Math.PI / 40 const arcCount = computed(() => props.plotdata.length - 1) const pieGenerator = computed(() => @@ -75,7 +75,7 @@ const pieGenerator = computed(() => const path = computed(() => arc>() //.innerRadius((props.radius / 6) * 5) - .innerRadius(props.radius * 0.88) + .innerRadius(props.radius * 0.87) .outerRadius(props.radius) .cornerRadius(cornerRadius), ) diff --git a/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue b/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue index bec6914be8..b29a1ffe35 100644 --- a/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue +++ b/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue @@ -81,7 +81,7 @@ Hagen */ Fahrzeuge Date: Mon, 25 Aug 2025 05:31:40 +0000 Subject: [PATCH 19/42] Build Web Theme: Colors --- .../colors/web/assets/index-CodsP6Fc.js | 67 +++++++++++++++++++ ...{index-BEDuoazu.css => index-JHvhDN_n.css} | 2 +- .../colors/web/assets/index-nJ6fMUq4.js | 6 -- .../colors/web/assets/vendor-DgMVsSab.js | 62 ----------------- .../modules/web_themes/colors/web/index.html | 5 +- 5 files changed, 70 insertions(+), 72 deletions(-) create mode 100644 packages/modules/web_themes/colors/web/assets/index-CodsP6Fc.js rename packages/modules/web_themes/colors/web/assets/{index-BEDuoazu.css => index-JHvhDN_n.css} (99%) delete mode 100644 packages/modules/web_themes/colors/web/assets/index-nJ6fMUq4.js delete mode 100644 packages/modules/web_themes/colors/web/assets/vendor-DgMVsSab.js diff --git a/packages/modules/web_themes/colors/web/assets/index-CodsP6Fc.js b/packages/modules/web_themes/colors/web/assets/index-CodsP6Fc.js new file mode 100644 index 0000000000..7d5fd9daf5 --- /dev/null +++ b/packages/modules/web_themes/colors/web/assets/index-CodsP6Fc.js @@ -0,0 +1,67 @@ +var nT=Object.defineProperty;var hb=t=>{throw TypeError(t)};var iT=(t,e,r)=>e in t?nT(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var ve=(t,e,r)=>iT(t,typeof e!="symbol"?e+"":e,r),Sf=(t,e,r)=>e.has(t)||hb("Cannot "+r);var ye=(t,e,r)=>(Sf(t,e,"read from private field"),r?r.call(t):e.get(t)),gt=(t,e,r)=>e.has(t)?hb("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Ze=(t,e,r,n)=>(Sf(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Xe=(t,e,r)=>(Sf(t,e,"access private method"),r);var Vl=(t,e,r,n)=>({set _(s){Ze(t,e,s,r)},get _(){return ye(t,e,n)}});(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();const qs=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function kg(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const At={},Po=[],Fn=()=>{},sT=()=>!1,Lc=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Pg=t=>t.startsWith("onUpdate:"),Sr=Object.assign,Og=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},oT=Object.prototype.hasOwnProperty,wt=(t,e)=>oT.call(t,e),nt=Array.isArray,Oo=t=>_l(t)==="[object Map]",oa=t=>_l(t)==="[object Set]",pb=t=>_l(t)==="[object Date]",at=t=>typeof t=="function",Kt=t=>typeof t=="string",xn=t=>typeof t=="symbol",Ot=t=>t!==null&&typeof t=="object",S0=t=>(Ot(t)||at(t))&&at(t.then)&&at(t.catch),x0=Object.prototype.toString,_l=t=>x0.call(t),aT=t=>_l(t).slice(8,-1),T0=t=>_l(t)==="[object Object]",Lg=t=>Kt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Ga=kg(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Rc=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},lT=/-(\w)/g,ln=Rc(t=>t.replace(lT,(e,r)=>r?r.toUpperCase():"")),uT=/\B([A-Z])/g,eo=Rc(t=>t.replace(uT,"-$1").toLowerCase()),Bc=Rc(t=>t.charAt(0).toUpperCase()+t.slice(1)),xf=Rc(t=>t?`on${Bc(t)}`:""),Ji=(t,e)=>!Object.is(t,e),vu=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},Ku=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let gb;const $c=()=>gb||(gb=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof qs<"u"?qs:{});function ht(t){if(nt(t)){const e={};for(let r=0;r{if(r){const n=r.split(fT);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function rt(t){let e="";if(Kt(t))e=t;else if(nt(t))for(let r=0;rEl(r,e))}const I0=t=>!!(t&&t.__v_isRef===!0),ke=t=>Kt(t)?t:t==null?"":nt(t)||Ot(t)&&(t.toString===x0||!at(t.toString))?I0(t)?ke(t.value):JSON.stringify(t,M0,2):String(t),M0=(t,e)=>I0(e)?M0(t,e.value):Oo(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,s],i)=>(r[Tf(n,i)+" =>"]=s,r),{})}:oa(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>Tf(r))}:xn(e)?Tf(e):Ot(e)&&!nt(e)&&!T0(e)?String(e):e,Tf=(t,e="")=>{var r;return xn(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Vr;class bT{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Vr,!e&&Vr&&(this.index=(Vr.scopes||(Vr.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,r;if(this.scopes)for(e=0,r=this.scopes.length;e0)return;if(Ka){let e=Ka;for(Ka=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;Ya;){let e=Ya;for(Ya=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function L0(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function R0(t){let e,r=t.depsTail,n=r;for(;n;){const s=n.prevDep;n.version===-1?(n===r&&(r=s),Ng(n),wT(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}t.deps=e,t.depsTail=r}function yh(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(B0(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function B0(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===ol))return;t.globalVersion=ol;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!yh(t)){t.flags&=-3;return}const r=Mt,n=Sn;Mt=t,Sn=!0;try{L0(t);const s=t.fn(t._value);(e.version===0||Ji(s,t._value))&&(t._value=s,e.version++)}catch(s){throw e.version++,s}finally{Mt=r,Sn=n,R0(t),t.flags&=-3}}function Ng(t,e=!1){const{dep:r,prevSub:n,nextSub:s}=t;if(n&&(n.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let i=r.computed.deps;i;i=i.nextDep)Ng(i,!0)}!e&&!--r.sc&&r.map&&r.map.delete(r.key)}function wT(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let Sn=!0;const $0=[];function os(){$0.push(Sn),Sn=!1}function as(){const t=$0.pop();Sn=t===void 0?!0:t}function mb(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Mt;Mt=void 0;try{e()}finally{Mt=r}}}let ol=0;class vT{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dg{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!Mt||!Sn||Mt===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Mt)r=this.activeLink=new vT(Mt,this),Mt.deps?(r.prevDep=Mt.depsTail,Mt.depsTail.nextDep=r,Mt.depsTail=r):Mt.deps=Mt.depsTail=r,N0(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Mt.depsTail,r.nextDep=void 0,Mt.depsTail.nextDep=r,Mt.depsTail=r,Mt.deps===r&&(Mt.deps=n)}return r}trigger(e){this.version++,ol++,this.notify(e)}notify(e){Bg();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{$g()}}}function N0(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)N0(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const wh=new WeakMap,Ns=Symbol(""),vh=Symbol(""),al=Symbol("");function mr(t,e,r){if(Sn&&Mt){let n=wh.get(t);n||wh.set(t,n=new Map);let s=n.get(r);s||(n.set(r,s=new Dg),s.map=n,s.key=r),s.track()}}function ui(t,e,r,n,s,i){const a=wh.get(t);if(!a){ol++;return}const o=l=>{l&&l.trigger()};if(Bg(),e==="clear")a.forEach(o);else{const l=nt(t),u=l&&Lg(r);if(l&&r==="length"){const c=Number(n);a.forEach((f,d)=>{(d==="length"||d===al||!xn(d)&&d>=c)&&o(f)})}else switch((r!==void 0||a.has(void 0))&&o(a.get(r)),u&&o(a.get(al)),e){case"add":l?u&&o(a.get("length")):(o(a.get(Ns)),Oo(t)&&o(a.get(vh)));break;case"delete":l||(o(a.get(Ns)),Oo(t)&&o(a.get(vh)));break;case"set":Oo(t)&&o(a.get(Ns));break}}$g()}function go(t){const e=yt(t);return e===t?e:(mr(e,"iterate",al),on(t)?e:e.map(br))}function Nc(t){return mr(t=yt(t),"iterate",al),t}const _T={__proto__:null,[Symbol.iterator](){return Cf(this,Symbol.iterator,br)},concat(...t){return go(this).concat(...t.map(e=>nt(e)?go(e):e))},entries(){return Cf(this,"entries",t=>(t[1]=br(t[1]),t))},every(t,e){return Jn(this,"every",t,e,void 0,arguments)},filter(t,e){return Jn(this,"filter",t,e,r=>r.map(br),arguments)},find(t,e){return Jn(this,"find",t,e,br,arguments)},findIndex(t,e){return Jn(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Jn(this,"findLast",t,e,br,arguments)},findLastIndex(t,e){return Jn(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Jn(this,"forEach",t,e,void 0,arguments)},includes(...t){return If(this,"includes",t)},indexOf(...t){return If(this,"indexOf",t)},join(t){return go(this).join(t)},lastIndexOf(...t){return If(this,"lastIndexOf",t)},map(t,e){return Jn(this,"map",t,e,void 0,arguments)},pop(){return wa(this,"pop")},push(...t){return wa(this,"push",t)},reduce(t,...e){return bb(this,"reduce",t,e)},reduceRight(t,...e){return bb(this,"reduceRight",t,e)},shift(){return wa(this,"shift")},some(t,e){return Jn(this,"some",t,e,void 0,arguments)},splice(...t){return wa(this,"splice",t)},toReversed(){return go(this).toReversed()},toSorted(t){return go(this).toSorted(t)},toSpliced(...t){return go(this).toSpliced(...t)},unshift(...t){return wa(this,"unshift",t)},values(){return Cf(this,"values",br)}};function Cf(t,e,r){const n=Nc(t),s=n[e]();return n!==t&&!on(t)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=r(i.value)),i}),s}const ET=Array.prototype;function Jn(t,e,r,n,s,i){const a=Nc(t),o=a!==t&&!on(t),l=a[e];if(l!==ET[e]){const f=l.apply(t,i);return o?br(f):f}let u=r;a!==t&&(o?u=function(f,d){return r.call(this,br(f),d,t)}:r.length>2&&(u=function(f,d){return r.call(this,f,d,t)}));const c=l.call(a,u,n);return o&&s?s(c):c}function bb(t,e,r,n){const s=Nc(t);let i=r;return s!==t&&(on(t)?r.length>3&&(i=function(a,o,l){return r.call(this,a,o,l,t)}):i=function(a,o,l){return r.call(this,a,br(o),l,t)}),s[e](i,...n)}function If(t,e,r){const n=yt(t);mr(n,"iterate",al);const s=n[e](...r);return(s===-1||s===!1)&&Vg(r[0])?(r[0]=yt(r[0]),n[e](...r)):s}function wa(t,e,r=[]){os(),Bg();const n=yt(t)[e].apply(t,r);return $g(),as(),n}const ST=kg("__proto__,__v_isRef,__isVue"),D0=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(xn));function xT(t){xn(t)||(t=String(t));const e=yt(this);return mr(e,"has",t),e.hasOwnProperty(t)}class U0{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){if(r==="__v_skip")return e.__v_skip;const s=this._isReadonly,i=this._isShallow;if(r==="__v_isReactive")return!s;if(r==="__v_isReadonly")return s;if(r==="__v_isShallow")return i;if(r==="__v_raw")return n===(s?i?RT:W0:i?j0:V0).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const a=nt(e);if(!s){let l;if(a&&(l=_T[r]))return l;if(r==="hasOwnProperty")return xT}const o=Reflect.get(e,r,Er(e)?e:n);return(xn(r)?D0.has(r):ST(r))||(s||mr(e,"get",r),i)?o:Er(o)?a&&Lg(r)?o:o.value:Ot(o)?s?z0(o):Dt(o):o}}class F0 extends U0{constructor(e=!1){super(!1,e)}set(e,r,n,s){let i=e[r];if(!this._isShallow){const l=Gs(i);if(!on(n)&&!Gs(n)&&(i=yt(i),n=yt(n)),!nt(e)&&Er(i)&&!Er(n))return l?!1:(i.value=n,!0)}const a=nt(e)&&Lg(r)?Number(r)t,jl=t=>Reflect.getPrototypeOf(t);function MT(t,e,r){return function(...n){const s=this.__v_raw,i=yt(s),a=Oo(i),o=t==="entries"||t===Symbol.iterator&&a,l=t==="keys"&&a,u=s[t](...n),c=r?_h:e?Eh:br;return!e&&mr(i,"iterate",l?vh:Ns),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:o?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Wl(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function kT(t,e){const r={get(s){const i=this.__v_raw,a=yt(i),o=yt(s);t||(Ji(s,o)&&mr(a,"get",s),mr(a,"get",o));const{has:l}=jl(a),u=e?_h:t?Eh:br;if(l.call(a,s))return u(i.get(s));if(l.call(a,o))return u(i.get(o));i!==a&&i.get(s)},get size(){const s=this.__v_raw;return!t&&mr(yt(s),"iterate",Ns),Reflect.get(s,"size",s)},has(s){const i=this.__v_raw,a=yt(i),o=yt(s);return t||(Ji(s,o)&&mr(a,"has",s),mr(a,"has",o)),s===o?i.has(s):i.has(s)||i.has(o)},forEach(s,i){const a=this,o=a.__v_raw,l=yt(o),u=e?_h:t?Eh:br;return!t&&mr(l,"iterate",Ns),o.forEach((c,f)=>s.call(i,u(c),u(f),a))}};return Sr(r,t?{add:Wl("add"),set:Wl("set"),delete:Wl("delete"),clear:Wl("clear")}:{add(s){!e&&!on(s)&&!Gs(s)&&(s=yt(s));const i=yt(this);return jl(i).has.call(i,s)||(i.add(s),ui(i,"add",s,s)),this},set(s,i){!e&&!on(i)&&!Gs(i)&&(i=yt(i));const a=yt(this),{has:o,get:l}=jl(a);let u=o.call(a,s);u||(s=yt(s),u=o.call(a,s));const c=l.call(a,s);return a.set(s,i),u?Ji(i,c)&&ui(a,"set",s,i):ui(a,"add",s,i),this},delete(s){const i=yt(this),{has:a,get:o}=jl(i);let l=a.call(i,s);l||(s=yt(s),l=a.call(i,s)),o&&o.call(i,s);const u=i.delete(s);return l&&ui(i,"delete",s,void 0),u},clear(){const s=yt(this),i=s.size!==0,a=s.clear();return i&&ui(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{r[s]=MT(s,t,e)}),r}function Ug(t,e){const r=kT(t,e);return(n,s,i)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?n:Reflect.get(wt(r,s)&&s in n?r:n,s,i)}const PT={get:Ug(!1,!1)},OT={get:Ug(!1,!0)},LT={get:Ug(!0,!1)};const V0=new WeakMap,j0=new WeakMap,W0=new WeakMap,RT=new WeakMap;function BT(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function $T(t){return t.__v_skip||!Object.isExtensible(t)?0:BT(aT(t))}function Dt(t){return Gs(t)?t:Fg(t,!1,AT,PT,V0)}function NT(t){return Fg(t,!1,IT,OT,j0)}function z0(t){return Fg(t,!0,CT,LT,W0)}function Fg(t,e,r,n,s){if(!Ot(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const i=s.get(t);if(i)return i;const a=$T(t);if(a===0)return t;const o=new Proxy(t,a===2?n:r);return s.set(t,o),o}function Lo(t){return Gs(t)?Lo(t.__v_raw):!!(t&&t.__v_isReactive)}function Gs(t){return!!(t&&t.__v_isReadonly)}function on(t){return!!(t&&t.__v_isShallow)}function Vg(t){return t?!!t.__v_raw:!1}function yt(t){const e=t&&t.__v_raw;return e?yt(e):t}function DT(t){return!wt(t,"__v_skip")&&Object.isExtensible(t)&&A0(t,"__v_skip",!0),t}const br=t=>Ot(t)?Dt(t):t,Eh=t=>Ot(t)?z0(t):t;function Er(t){return t?t.__v_isRef===!0:!1}function ct(t){return UT(t,!1)}function UT(t,e){return Er(t)?t:new FT(t,e)}class FT{constructor(e,r){this.dep=new Dg,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:yt(e),this._value=r?e:br(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||on(e)||Gs(e);e=n?e:yt(e),Ji(e,r)&&(this._rawValue=e,this._value=n?e:br(e),this.dep.trigger())}}function se(t){return Er(t)?t.value:t}const VT={get:(t,e,r)=>e==="__v_raw"?t:se(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const s=t[e];return Er(s)&&!Er(r)?(s.value=r,!0):Reflect.set(t,e,r,n)}};function H0(t){return Lo(t)?t:new Proxy(t,VT)}class jT{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new Dg(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ol-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Mt!==this)return O0(this,!0),!0}get value(){const e=this.dep.track();return B0(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function WT(t,e,r=!1){let n,s;return at(t)?n=t:(n=t.get,s=t.set),new jT(n,s,r)}const zl={},Xu=new WeakMap;let As;function zT(t,e=!1,r=As){if(r){let n=Xu.get(r);n||Xu.set(r,n=[]),n.push(t)}}function HT(t,e,r=At){const{immediate:n,deep:s,once:i,scheduler:a,augmentJob:o,call:l}=r,u=x=>s?x:on(x)||s===!1||s===0?ci(x,1):ci(x);let c,f,d,p,g=!1,b=!1;if(Er(t)?(f=()=>t.value,g=on(t)):Lo(t)?(f=()=>u(t),g=!0):nt(t)?(b=!0,g=t.some(x=>Lo(x)||on(x)),f=()=>t.map(x=>{if(Er(x))return x.value;if(Lo(x))return u(x);if(at(x))return l?l(x,2):x()})):at(t)?e?f=l?()=>l(t,2):t:f=()=>{if(d){os();try{d()}finally{as()}}const x=As;As=c;try{return l?l(t,3,[p]):t(p)}finally{As=x}}:f=Fn,e&&s){const x=f,T=s===!0?1/0:s;f=()=>ci(x(),T)}const v=yT(),w=()=>{c.stop(),v&&v.active&&Og(v.effects,c)};if(i&&e){const x=e;e=(...T)=>{x(...T),w()}}let _=b?new Array(t.length).fill(zl):zl;const y=x=>{if(!(!(c.flags&1)||!c.dirty&&!x))if(e){const T=c.run();if(s||g||(b?T.some((A,C)=>Ji(A,_[C])):Ji(T,_))){d&&d();const A=As;As=c;try{const C=[T,_===zl?void 0:b&&_[0]===zl?[]:_,p];l?l(e,3,C):e(...C),_=T}finally{As=A}}}else c.run()};return o&&o(y),c=new k0(f),c.scheduler=a?()=>a(y,!1):y,p=x=>zT(x,!1,c),d=c.onStop=()=>{const x=Xu.get(c);if(x){if(l)l(x,4);else for(const T of x)T();Xu.delete(c)}},e?n?y(!0):_=c.run():a?a(y.bind(null,!0),!0):c.run(),w.pause=c.pause.bind(c),w.resume=c.resume.bind(c),w.stop=w,w}function ci(t,e=1/0,r){if(e<=0||!Ot(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),e--,Er(t))ci(t.value,e,r);else if(nt(t))for(let n=0;n{ci(n,e,r)});else if(T0(t)){for(const n in t)ci(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&ci(t[n],e,r)}return t}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Sl(t,e,r,n){try{return n?t(...n):t()}catch(s){Dc(s,e,r)}}function qn(t,e,r,n){if(at(t)){const s=Sl(t,e,r,n);return s&&S0(s)&&s.catch(i=>{Dc(i,e,r)}),s}if(nt(t)){const s=[];for(let i=0;i>>1,s=Cr[n],i=ll(s);i=ll(r)?Cr.push(t):Cr.splice(GT(e),0,t),t.flags|=1,Y0()}}function Y0(){Qu||(Qu=q0.then(X0))}function YT(t){nt(t)?Ro.push(...t):Hi&&t.id===-1?Hi.splice(_o+1,0,t):t.flags&1||(Ro.push(t),t.flags|=1),Y0()}function yb(t,e,r=Ln+1){for(;rll(r)-ll(n));if(Ro.length=0,Hi){Hi.push(...e);return}for(Hi=e,_o=0;_ot.id==null?t.flags&2?-1:1/0:t.id;function X0(t){try{for(Ln=0;Ln{n._d&&Pb(-1);const i=Ju(e);let a;try{a=t(...s)}finally{Ju(i),n._d&&Pb(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function xl(t,e){if(lr===null)return t;const r=jc(lr),n=t.dirs||(t.dirs=[]);for(let s=0;st.__isTeleport,Xa=t=>t&&(t.disabled||t.disabled===""),wb=t=>t&&(t.defer||t.defer===""),vb=t=>typeof SVGElement<"u"&&t instanceof SVGElement,_b=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Sh=(t,e)=>{const r=t&&t.to;return Kt(r)?e?e(r):null:r},Z0={name:"Teleport",__isTeleport:!0,process(t,e,r,n,s,i,a,o,l,u){const{mc:c,pc:f,pbc:d,o:{insert:p,querySelector:g,createText:b,createComment:v}}=u,w=Xa(e.props);let{shapeFlag:_,children:y,dynamicChildren:x}=e;if(t==null){const T=e.el=b(""),A=e.anchor=b("");p(T,r,n),p(A,r,n);const C=(j,R)=>{_&16&&(s&&s.isCE&&(s.ce._teleportTarget=j),c(y,j,R,s,i,a,o,l))},L=()=>{const j=e.target=Sh(e.props,g),R=e_(j,e,b,p);j&&(a!=="svg"&&vb(j)?a="svg":a!=="mathml"&&_b(j)&&(a="mathml"),w||(C(j,R),_u(e,!1)))};w&&(C(r,A),_u(e,!0)),wb(e.props)?Ar(()=>{L(),e.el.__isMounted=!0},i):L()}else{if(wb(e.props)&&!t.el.__isMounted){Ar(()=>{Z0.process(t,e,r,n,s,i,a,o,l,u),delete t.el.__isMounted},i);return}e.el=t.el,e.targetStart=t.targetStart;const T=e.anchor=t.anchor,A=e.target=t.target,C=e.targetAnchor=t.targetAnchor,L=Xa(t.props),j=L?r:A,R=L?T:C;if(a==="svg"||vb(A)?a="svg":(a==="mathml"||_b(A))&&(a="mathml"),x?(d(t.dynamicChildren,x,j,s,i,a,o),Hg(t,e,!0)):l||f(t,e,j,R,s,i,a,o,!1),w)L?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Hl(e,r,T,u,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const U=e.target=Sh(e.props,g);U&&Hl(e,U,null,u,0)}else L&&Hl(e,A,C,u,1);_u(e,w)}},remove(t,e,r,{um:n,o:{remove:s}},i){const{shapeFlag:a,children:o,anchor:l,targetStart:u,targetAnchor:c,target:f,props:d}=t;if(f&&(s(u),s(c)),i&&s(l),a&16){const p=i||!Xa(d);for(let g=0;gZu(g,e&&(nt(e)?e[b]:e),r,n,s));return}if(Bo(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Zu(t,e,r,n.component.subTree);return}const i=n.shapeFlag&4?jc(n.component):n.el,a=s?null:i,{i:o,r:l}=t,u=e&&e.r,c=o.refs===At?o.refs={}:o.refs,f=o.setupState,d=yt(f),p=f===At?()=>!1:g=>wt(d,g);if(u!=null&&u!==l&&(Kt(u)?(c[u]=null,p(u)&&(f[u]=null)):Er(u)&&(u.value=null)),at(l))Sl(l,o,12,[a,c]);else{const g=Kt(l),b=Er(l);if(g||b){const v=()=>{if(t.f){const w=g?p(l)?f[l]:c[l]:l.value;s?nt(w)&&Og(w,i):nt(w)?w.includes(i)||w.push(i):g?(c[l]=[i],p(l)&&(f[l]=c[l])):(l.value=[i],t.k&&(c[t.k]=l.value))}else g?(c[l]=a,p(l)&&(f[l]=a)):b&&(l.value=a,t.k&&(c[t.k]=a))};a?(v.id=-1,Ar(v,r)):v()}}}$c().requestIdleCallback;$c().cancelIdleCallback;const Bo=t=>!!t.type.__asyncLoader,r_=t=>t.type.__isKeepAlive;function JT(t,e){n_(t,"a",e)}function ZT(t,e){n_(t,"da",e)}function n_(t,e,r=wr){const n=t.__wdc||(t.__wdc=()=>{let s=r;for(;s;){if(s.isDeactivated)return;s=s.parent}return t()});if(Uc(e,n,r),r){let s=r.parent;for(;s&&s.parent;)r_(s.parent.vnode)&&eA(n,e,r,s),s=s.parent}}function eA(t,e,r,n){const s=Uc(e,t,n,!0);s_(()=>{Og(n[e],s)},r)}function Uc(t,e,r=wr,n=!1){if(r){const s=r[t]||(r[t]=[]),i=e.__weh||(e.__weh=(...a)=>{os();const o=Tl(r),l=qn(e,r,t,a);return o(),as(),l});return n?s.unshift(i):s.push(i),i}}const Pi=t=>(e,r=wr)=>{(!cl||t==="sp")&&Uc(t,(...n)=>e(...n),r)},tA=Pi("bm"),dn=Pi("m"),rA=Pi("bu"),nA=Pi("u"),i_=Pi("bum"),s_=Pi("um"),iA=Pi("sp"),sA=Pi("rtg"),oA=Pi("rtc");function aA(t,e=wr){Uc("ec",t,e)}const lA="components";function uA(t,e){return fA(lA,t,!0,e)||t}const cA=Symbol.for("v-ndc");function fA(t,e,r=!0,n=!1){const s=lr||wr;if(s){const i=s.type;{const o=tC(i,!1);if(o&&(o===e||o===ln(e)||o===Bc(ln(e))))return i}const a=Eb(s[t]||i[t],e)||Eb(s.appContext[t],e);return!a&&n?i:a}}function Eb(t,e){return t&&(t[e]||t[ln(e)]||t[Bc(ln(e))])}function ft(t,e,r,n){let s;const i=r,a=nt(t);if(a||Kt(t)){const o=a&&Lo(t);let l=!1;o&&(l=!on(t),t=Nc(t)),s=new Array(t.length);for(let u=0,c=t.length;ue(o,l,void 0,i));else{const o=Object.keys(t);s=new Array(o.length);for(let l=0,u=o.length;l{const i=n.fn(...s);return i&&(i.key=n.key),i}:n.fn)}return t}function Gt(t,e,r={},n,s){if(lr.ce||lr.parent&&Bo(lr.parent)&&lr.parent.ce)return e!=="default"&&(r.name=e),ae(),Re(Ye,null,[xe("slot",r,n&&n())],64);let i=t[e];i&&i._c&&(i._d=!1),ae();const a=i&&o_(i(r)),o=r.key||a&&a.key,l=Re(Ye,{key:(o&&!xn(o)?o:`_${e}`)+(!a&&n?"_fb":"")},a||(n?n():[]),a&&t._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function o_(t){return t.some(e=>Gg(e)?!(e.type===ts||e.type===Ye&&!o_(e.children)):!0)?t:null}const xh=t=>t?T_(t)?jc(t):xh(t.parent):null,Qa=Sr(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>xh(t.parent),$root:t=>xh(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>l_(t),$forceUpdate:t=>t.f||(t.f=()=>{jg(t.update)}),$nextTick:t=>t.n||(t.n=G0.bind(t.proxy)),$watch:t=>BA.bind(t)}),Mf=(t,e)=>t!==At&&!t.__isScriptSetup&&wt(t,e),hA={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:s,props:i,accessCache:a,type:o,appContext:l}=t;let u;if(e[0]!=="$"){const p=a[e];if(p!==void 0)switch(p){case 1:return n[e];case 2:return s[e];case 4:return r[e];case 3:return i[e]}else{if(Mf(n,e))return a[e]=1,n[e];if(s!==At&&wt(s,e))return a[e]=2,s[e];if((u=t.propsOptions[0])&&wt(u,e))return a[e]=3,i[e];if(r!==At&&wt(r,e))return a[e]=4,r[e];Th&&(a[e]=0)}}const c=Qa[e];let f,d;if(c)return e==="$attrs"&&mr(t.attrs,"get",""),c(t);if((f=o.__cssModules)&&(f=f[e]))return f;if(r!==At&&wt(r,e))return a[e]=4,r[e];if(d=l.config.globalProperties,wt(d,e))return d[e]},set({_:t},e,r){const{data:n,setupState:s,ctx:i}=t;return Mf(s,e)?(s[e]=r,!0):n!==At&&wt(n,e)?(n[e]=r,!0):wt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(i[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:s,propsOptions:i}},a){let o;return!!r[a]||t!==At&&wt(t,a)||Mf(e,a)||(o=i[0])&&wt(o,a)||wt(n,a)||wt(Qa,a)||wt(s.config.globalProperties,a)},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:wt(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function Sb(t){return nt(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let Th=!0;function pA(t){const e=l_(t),r=t.proxy,n=t.ctx;Th=!1,e.beforeCreate&&xb(e.beforeCreate,t,"bc");const{data:s,computed:i,methods:a,watch:o,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:p,updated:g,activated:b,deactivated:v,beforeDestroy:w,beforeUnmount:_,destroyed:y,unmounted:x,render:T,renderTracked:A,renderTriggered:C,errorCaptured:L,serverPrefetch:j,expose:R,inheritAttrs:U,components:I,directives:M,filters:$}=e;if(u&&gA(u,n,null),a)for(const re in a){const N=a[re];at(N)&&(n[re]=N.bind(r))}if(s){const re=s.call(r,r);Ot(re)&&(t.data=Dt(re))}if(Th=!0,i)for(const re in i){const N=i[re],fe=at(N)?N.bind(r,r):at(N.get)?N.get.bind(r,r):Fn,G=!at(N)&&at(N.set)?N.set.bind(r):Fn,pe=we({get:fe,set:G});Object.defineProperty(n,re,{enumerable:!0,configurable:!0,get:()=>pe.value,set:F=>pe.value=F})}if(o)for(const re in o)a_(o[re],n,r,re);if(l){const re=at(l)?l.call(r):l;Reflect.ownKeys(re).forEach(N=>{_A(N,re[N])})}c&&xb(c,t,"c");function ne(re,N){nt(N)?N.forEach(fe=>re(fe.bind(r))):N&&re(N.bind(r))}if(ne(tA,f),ne(dn,d),ne(rA,p),ne(nA,g),ne(JT,b),ne(ZT,v),ne(aA,L),ne(oA,A),ne(sA,C),ne(i_,_),ne(s_,x),ne(iA,j),nt(R))if(R.length){const re=t.exposed||(t.exposed={});R.forEach(N=>{Object.defineProperty(re,N,{get:()=>r[N],set:fe=>r[N]=fe})})}else t.exposed||(t.exposed={});T&&t.render===Fn&&(t.render=T),U!=null&&(t.inheritAttrs=U),I&&(t.components=I),M&&(t.directives=M),j&&t_(t)}function gA(t,e,r=Fn){nt(t)&&(t=Ah(t));for(const n in t){const s=t[n];let i;Ot(s)?"default"in s?i=Eu(s.from||n,s.default,!0):i=Eu(s.from||n):i=Eu(s),Er(i)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):e[n]=i}}function xb(t,e,r){qn(nt(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function a_(t,e,r,n){let s=n.includes(".")?v_(r,n):()=>r[n];if(Kt(t)){const i=e[t];at(i)&&Su(s,i)}else if(at(t))Su(s,t.bind(r));else if(Ot(t))if(nt(t))t.forEach(i=>a_(i,e,r,n));else{const i=at(t.handler)?t.handler.bind(r):e[t.handler];at(i)&&Su(s,i,t)}}function l_(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=t.appContext,o=i.get(e);let l;return o?l=o:!s.length&&!r&&!n?l=e:(l={},s.length&&s.forEach(u=>ec(l,u,a,!0)),ec(l,e,a)),Ot(e)&&i.set(e,l),l}function ec(t,e,r,n=!1){const{mixins:s,extends:i}=e;i&&ec(t,i,r,!0),s&&s.forEach(a=>ec(t,a,r,!0));for(const a in e)if(!(n&&a==="expose")){const o=mA[a]||r&&r[a];t[a]=o?o(t[a],e[a]):e[a]}return t}const mA={data:Tb,props:Ab,emits:Ab,methods:Da,computed:Da,beforeCreate:xr,created:xr,beforeMount:xr,mounted:xr,beforeUpdate:xr,updated:xr,beforeDestroy:xr,beforeUnmount:xr,destroyed:xr,unmounted:xr,activated:xr,deactivated:xr,errorCaptured:xr,serverPrefetch:xr,components:Da,directives:Da,watch:yA,provide:Tb,inject:bA};function Tb(t,e){return e?t?function(){return Sr(at(t)?t.call(this,this):t,at(e)?e.call(this,this):e)}:e:t}function bA(t,e){return Da(Ah(t),Ah(e))}function Ah(t){if(nt(t)){const e={};for(let r=0;r1)return r&&at(e)?e.call(n&&n.proxy):e}}const c_={},f_=()=>Object.create(c_),d_=t=>Object.getPrototypeOf(t)===c_;function EA(t,e,r,n=!1){const s={},i=f_();t.propsDefaults=Object.create(null),h_(t,e,s,i);for(const a in t.propsOptions[0])a in s||(s[a]=void 0);r?t.props=n?s:NT(s):t.type.props?t.props=s:t.props=i,t.attrs=i}function SA(t,e,r,n){const{props:s,attrs:i,vnode:{patchFlag:a}}=t,o=yt(s),[l]=t.propsOptions;let u=!1;if((n||a>0)&&!(a&16)){if(a&8){const c=t.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,p]=p_(f,e,!0);Sr(a,d),p&&o.push(...p)};!r&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!i&&!l)return Ot(t)&&n.set(t,Po),Po;if(nt(i))for(let c=0;ct[0]==="_"||t==="$stable",zg=t=>nt(t)?t.map(Rn):[Rn(t)],TA=(t,e,r)=>{if(e._n)return e;const n=Ie((...s)=>zg(e(...s)),r);return n._c=!1,n},m_=(t,e,r)=>{const n=t._ctx;for(const s in t){if(g_(s))continue;const i=t[s];if(at(i))e[s]=TA(s,i,n);else if(i!=null){const a=zg(i);e[s]=()=>a}}},b_=(t,e)=>{const r=zg(e);t.slots.default=()=>r},y_=(t,e,r)=>{for(const n in e)(r||n!=="_")&&(t[n]=e[n])},AA=(t,e,r)=>{const n=t.slots=f_();if(t.vnode.shapeFlag&32){const s=e._;s?(y_(n,e,r),r&&A0(n,"_",s,!0)):m_(e,n)}else e&&b_(t,e)},CA=(t,e,r)=>{const{vnode:n,slots:s}=t;let i=!0,a=At;if(n.shapeFlag&32){const o=e._;o?r&&o===1?i=!1:y_(s,e,r):(i=!e.$stable,m_(e,s)),a=e}else e&&(b_(t,e),a={default:1});if(i)for(const o in s)!g_(o)&&a[o]==null&&delete s[o]},Ar=jA;function IA(t){return MA(t)}function MA(t,e){const r=$c();r.__VUE__=!0;const{insert:n,remove:s,patchProp:i,createElement:a,createText:o,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:p=Fn,insertStaticContent:g}=t,b=(k,P,V,B=null,H=null,q=null,ue=void 0,J=null,Y=!!P.dynamicChildren)=>{if(k===P)return;k&&!va(k,P)&&(B=W(k),F(k,H,q,!0),k=null),P.patchFlag===-2&&(Y=!1,P.dynamicChildren=null);const{type:ie,ref:Q,shapeFlag:oe}=P;switch(ie){case Vc:v(k,P,V,B);break;case ts:w(k,P,V,B);break;case xu:k==null&&_(P,V,B,ue);break;case Ye:I(k,P,V,B,H,q,ue,J,Y);break;default:oe&1?T(k,P,V,B,H,q,ue,J,Y):oe&6?M(k,P,V,B,H,q,ue,J,Y):(oe&64||oe&128)&&ie.process(k,P,V,B,H,q,ue,J,Y,ce)}Q!=null&&H&&Zu(Q,k&&k.ref,q,P||k,!P)},v=(k,P,V,B)=>{if(k==null)n(P.el=o(P.children),V,B);else{const H=P.el=k.el;P.children!==k.children&&u(H,P.children)}},w=(k,P,V,B)=>{k==null?n(P.el=l(P.children||""),V,B):P.el=k.el},_=(k,P,V,B)=>{[k.el,k.anchor]=g(k.children,P,V,B,k.el,k.anchor)},y=({el:k,anchor:P},V,B)=>{let H;for(;k&&k!==P;)H=d(k),n(k,V,B),k=H;n(P,V,B)},x=({el:k,anchor:P})=>{let V;for(;k&&k!==P;)V=d(k),s(k),k=V;s(P)},T=(k,P,V,B,H,q,ue,J,Y)=>{P.type==="svg"?ue="svg":P.type==="math"&&(ue="mathml"),k==null?A(P,V,B,H,q,ue,J,Y):j(k,P,H,q,ue,J,Y)},A=(k,P,V,B,H,q,ue,J)=>{let Y,ie;const{props:Q,shapeFlag:oe,transition:me,dirs:Te}=k;if(Y=k.el=a(k.type,q,Q&&Q.is,Q),oe&8?c(Y,k.children):oe&16&&L(k.children,Y,null,B,H,kf(k,q),ue,J),Te&&gs(k,null,B,"created"),C(Y,k,k.scopeId,ue,B),Q){for(const m in Q)m!=="value"&&!Ga(m)&&i(Y,m,null,Q[m],q,B);"value"in Q&&i(Y,"value",null,Q.value,q),(ie=Q.onVnodeBeforeMount)&&In(ie,B,k)}Te&&gs(k,null,B,"beforeMount");const S=kA(H,me);S&&me.beforeEnter(Y),n(Y,P,V),((ie=Q&&Q.onVnodeMounted)||S||Te)&&Ar(()=>{ie&&In(ie,B,k),S&&me.enter(Y),Te&&gs(k,null,B,"mounted")},H)},C=(k,P,V,B,H)=>{if(V&&p(k,V),B)for(let q=0;q{for(let ie=Y;ie{const J=P.el=k.el;let{patchFlag:Y,dynamicChildren:ie,dirs:Q}=P;Y|=k.patchFlag&16;const oe=k.props||At,me=P.props||At;let Te;if(V&&ms(V,!1),(Te=me.onVnodeBeforeUpdate)&&In(Te,V,P,k),Q&&gs(P,k,V,"beforeUpdate"),V&&ms(V,!0),(oe.innerHTML&&me.innerHTML==null||oe.textContent&&me.textContent==null)&&c(J,""),ie?R(k.dynamicChildren,ie,J,V,B,kf(P,H),q):ue||N(k,P,J,null,V,B,kf(P,H),q,!1),Y>0){if(Y&16)U(J,oe,me,V,H);else if(Y&2&&oe.class!==me.class&&i(J,"class",null,me.class,H),Y&4&&i(J,"style",oe.style,me.style,H),Y&8){const S=P.dynamicProps;for(let m=0;m{Te&&In(Te,V,P,k),Q&&gs(P,k,V,"updated")},B)},R=(k,P,V,B,H,q,ue)=>{for(let J=0;J{if(P!==V){if(P!==At)for(const q in P)!Ga(q)&&!(q in V)&&i(k,q,P[q],null,H,B);for(const q in V){if(Ga(q))continue;const ue=V[q],J=P[q];ue!==J&&q!=="value"&&i(k,q,J,ue,H,B)}"value"in V&&i(k,"value",P.value,V.value,H)}},I=(k,P,V,B,H,q,ue,J,Y)=>{const ie=P.el=k?k.el:o(""),Q=P.anchor=k?k.anchor:o("");let{patchFlag:oe,dynamicChildren:me,slotScopeIds:Te}=P;Te&&(J=J?J.concat(Te):Te),k==null?(n(ie,V,B),n(Q,V,B),L(P.children||[],V,Q,H,q,ue,J,Y)):oe>0&&oe&64&&me&&k.dynamicChildren?(R(k.dynamicChildren,me,V,H,q,ue,J),(P.key!=null||H&&P===H.subTree)&&Hg(k,P,!0)):N(k,P,V,Q,H,q,ue,J,Y)},M=(k,P,V,B,H,q,ue,J,Y)=>{P.slotScopeIds=J,k==null?P.shapeFlag&512?H.ctx.activate(P,V,B,ue,Y):$(P,V,B,H,q,ue,Y):Z(k,P,Y)},$=(k,P,V,B,H,q,ue)=>{const J=k.component=XA(k,B,H);if(r_(k)&&(J.ctx.renderer=ce),QA(J,!1,ue),J.asyncDep){if(H&&H.registerDep(J,ne,ue),!k.el){const Y=J.subTree=xe(ts);w(null,Y,P,V)}}else ne(J,k,P,V,H,q,ue)},Z=(k,P,V)=>{const B=P.component=k.component;if(FA(k,P,V))if(B.asyncDep&&!B.asyncResolved){re(B,P,V);return}else B.next=P,B.update();else P.el=k.el,B.vnode=P},ne=(k,P,V,B,H,q,ue)=>{const J=()=>{if(k.isMounted){let{next:oe,bu:me,u:Te,parent:S,vnode:m}=k;{const he=w_(k);if(he){oe&&(oe.el=m.el,re(k,oe,ue)),he.asyncDep.then(()=>{k.isUnmounted||J()});return}}let h=oe,E;ms(k,!1),oe?(oe.el=m.el,re(k,oe,ue)):oe=m,me&&vu(me),(E=oe.props&&oe.props.onVnodeBeforeUpdate)&&In(E,S,oe,m),ms(k,!0);const O=Mb(k),te=k.subTree;k.subTree=O,b(te,O,f(te.el),W(te),k,H,q),oe.el=O.el,h===null&&VA(k,O.el),Te&&Ar(Te,H),(E=oe.props&&oe.props.onVnodeUpdated)&&Ar(()=>In(E,S,oe,m),H)}else{let oe;const{el:me,props:Te}=P,{bm:S,m,parent:h,root:E,type:O}=k,te=Bo(P);ms(k,!1),S&&vu(S),!te&&(oe=Te&&Te.onVnodeBeforeMount)&&In(oe,h,P),ms(k,!0);{E.ce&&E.ce._injectChildStyle(O);const he=k.subTree=Mb(k);b(null,he,V,B,k,H,q),P.el=he.el}if(m&&Ar(m,H),!te&&(oe=Te&&Te.onVnodeMounted)){const he=P;Ar(()=>In(oe,h,he),H)}(P.shapeFlag&256||h&&Bo(h.vnode)&&h.vnode.shapeFlag&256)&&k.a&&Ar(k.a,H),k.isMounted=!0,P=V=B=null}};k.scope.on();const Y=k.effect=new k0(J);k.scope.off();const ie=k.update=Y.run.bind(Y),Q=k.job=Y.runIfDirty.bind(Y);Q.i=k,Q.id=k.uid,Y.scheduler=()=>jg(Q),ms(k,!0),ie()},re=(k,P,V)=>{P.component=k;const B=k.vnode.props;k.vnode=P,k.next=null,SA(k,P.props,B,V),CA(k,P.children,V),os(),yb(k),as()},N=(k,P,V,B,H,q,ue,J,Y=!1)=>{const ie=k&&k.children,Q=k?k.shapeFlag:0,oe=P.children,{patchFlag:me,shapeFlag:Te}=P;if(me>0){if(me&128){G(ie,oe,V,B,H,q,ue,J,Y);return}else if(me&256){fe(ie,oe,V,B,H,q,ue,J,Y);return}}Te&8?(Q&16&&K(ie,H,q),oe!==ie&&c(V,oe)):Q&16?Te&16?G(ie,oe,V,B,H,q,ue,J,Y):K(ie,H,q,!0):(Q&8&&c(V,""),Te&16&&L(oe,V,B,H,q,ue,J,Y))},fe=(k,P,V,B,H,q,ue,J,Y)=>{k=k||Po,P=P||Po;const ie=k.length,Q=P.length,oe=Math.min(ie,Q);let me;for(me=0;meQ?K(k,H,q,!0,!1,oe):L(P,V,B,H,q,ue,J,Y,oe)},G=(k,P,V,B,H,q,ue,J,Y)=>{let ie=0;const Q=P.length;let oe=k.length-1,me=Q-1;for(;ie<=oe&&ie<=me;){const Te=k[ie],S=P[ie]=Y?qi(P[ie]):Rn(P[ie]);if(va(Te,S))b(Te,S,V,null,H,q,ue,J,Y);else break;ie++}for(;ie<=oe&&ie<=me;){const Te=k[oe],S=P[me]=Y?qi(P[me]):Rn(P[me]);if(va(Te,S))b(Te,S,V,null,H,q,ue,J,Y);else break;oe--,me--}if(ie>oe){if(ie<=me){const Te=me+1,S=Teme)for(;ie<=oe;)F(k[ie],H,q,!0),ie++;else{const Te=ie,S=ie,m=new Map;for(ie=S;ie<=me;ie++){const We=P[ie]=Y?qi(P[ie]):Rn(P[ie]);We.key!=null&&m.set(We.key,ie)}let h,E=0;const O=me-S+1;let te=!1,he=0;const Ce=new Array(O);for(ie=0;ie=O){F(We,H,q,!0);continue}let De;if(We.key!=null)De=m.get(We.key);else for(h=S;h<=me;h++)if(Ce[h-S]===0&&va(We,P[h])){De=h;break}De===void 0?F(We,H,q,!0):(Ce[De-S]=ie+1,De>=he?he=De:te=!0,b(We,P[De],V,null,H,q,ue,J,Y),E++)}const Ue=te?PA(Ce):Po;for(h=Ue.length-1,ie=O-1;ie>=0;ie--){const We=S+ie,De=P[We],He=We+1{const{el:q,type:ue,transition:J,children:Y,shapeFlag:ie}=k;if(ie&6){pe(k.component.subTree,P,V,B);return}if(ie&128){k.suspense.move(P,V,B);return}if(ie&64){ue.move(k,P,V,ce);return}if(ue===Ye){n(q,P,V);for(let oe=0;oeJ.enter(q),H);else{const{leave:oe,delayLeave:me,afterLeave:Te}=J,S=()=>n(q,P,V),m=()=>{oe(q,()=>{S(),Te&&Te()})};me?me(q,S,m):m()}else n(q,P,V)},F=(k,P,V,B=!1,H=!1)=>{const{type:q,props:ue,ref:J,children:Y,dynamicChildren:ie,shapeFlag:Q,patchFlag:oe,dirs:me,cacheIndex:Te}=k;if(oe===-2&&(H=!1),J!=null&&Zu(J,null,V,k,!0),Te!=null&&(P.renderCache[Te]=void 0),Q&256){P.ctx.deactivate(k);return}const S=Q&1&&me,m=!Bo(k);let h;if(m&&(h=ue&&ue.onVnodeBeforeUnmount)&&In(h,P,k),Q&6)ee(k.component,V,B);else{if(Q&128){k.suspense.unmount(V,B);return}S&&gs(k,null,P,"beforeUnmount"),Q&64?k.type.remove(k,P,V,ce,B):ie&&!ie.hasOnce&&(q!==Ye||oe>0&&oe&64)?K(ie,P,V,!1,!0):(q===Ye&&oe&384||!H&&Q&16)&&K(Y,P,V),B&&de(k)}(m&&(h=ue&&ue.onVnodeUnmounted)||S)&&Ar(()=>{h&&In(h,P,k),S&&gs(k,null,P,"unmounted")},V)},de=k=>{const{type:P,el:V,anchor:B,transition:H}=k;if(P===Ye){Se(V,B);return}if(P===xu){x(k);return}const q=()=>{s(V),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(k.shapeFlag&1&&H&&!H.persisted){const{leave:ue,delayLeave:J}=H,Y=()=>ue(V,q);J?J(k.el,q,Y):Y()}else q()},Se=(k,P)=>{let V;for(;k!==P;)V=d(k),s(k),k=V;s(P)},ee=(k,P,V)=>{const{bum:B,scope:H,job:q,subTree:ue,um:J,m:Y,a:ie}=k;Ib(Y),Ib(ie),B&&vu(B),H.stop(),q&&(q.flags|=8,F(ue,k,P,V)),J&&Ar(J,P),Ar(()=>{k.isUnmounted=!0},P),P&&P.pendingBranch&&!P.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===P.pendingId&&(P.deps--,P.deps===0&&P.resolve())},K=(k,P,V,B=!1,H=!1,q=0)=>{for(let ue=q;ue{if(k.shapeFlag&6)return W(k.component.subTree);if(k.shapeFlag&128)return k.suspense.next();const P=d(k.anchor||k.el),V=P&&P[J0];return V?d(V):P};let D=!1;const X=(k,P,V)=>{k==null?P._vnode&&F(P._vnode,null,null,!0):b(P._vnode||null,k,P,null,null,null,V),P._vnode=k,D||(D=!0,yb(),K0(),D=!1)},ce={p:b,um:F,m:pe,r:de,mt:$,mc:L,pc:N,pbc:R,n:W,o:t};return{render:X,hydrate:void 0,createApp:vA(X)}}function kf({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function ms({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function kA(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Hg(t,e,r=!1){const n=t.children,s=e.children;if(nt(n)&&nt(s))for(let i=0;i>1,t[r[o]]0&&(e[n]=r[i-1]),r[i]=n)}}for(i=r.length,a=r[i-1];i-- >0;)r[i]=a,a=e[a];return r}function w_(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:w_(e)}function Ib(t){if(t)for(let e=0;eEu(OA);function RA(t,e){return qg(t,null,e)}function Su(t,e,r){return qg(t,e,r)}function qg(t,e,r=At){const{immediate:n,deep:s,flush:i,once:a}=r,o=Sr({},r),l=e&&n||!e&&i!=="post";let u;if(cl){if(i==="sync"){const p=LA();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=Fn,p.resume=Fn,p.pause=Fn,p}}const c=wr;o.call=(p,g,b)=>qn(p,c,g,b);let f=!1;i==="post"?o.scheduler=p=>{Ar(p,c&&c.suspense)}:i!=="sync"&&(f=!0,o.scheduler=(p,g)=>{g?p():jg(p)}),o.augmentJob=p=>{e&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const d=HT(t,e,o);return cl&&(u?u.push(d):l&&d()),d}function BA(t,e,r){const n=this.proxy,s=Kt(t)?t.includes(".")?v_(n,t):()=>n[t]:t.bind(n,n);let i;at(e)?i=e:(i=e.handler,r=e);const a=Tl(this),o=qg(s,i.bind(n),r);return a(),o}function v_(t,e){const r=e.split(".");return()=>{let n=t;for(let s=0;se==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${ln(e)}Modifiers`]||t[`${eo(e)}Modifiers`];function NA(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||At;let s=r;const i=e.startsWith("update:"),a=i&&$A(n,e.slice(7));a&&(a.trim&&(s=r.map(c=>Kt(c)?c.trim():c)),a.number&&(s=r.map(Ku)));let o,l=n[o=xf(e)]||n[o=xf(ln(e))];!l&&i&&(l=n[o=xf(eo(e))]),l&&qn(l,t,6,s);const u=n[o+"Once"];if(u){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,qn(u,t,6,s)}}function __(t,e,r=!1){const n=e.emitsCache,s=n.get(t);if(s!==void 0)return s;const i=t.emits;let a={},o=!1;if(!at(t)){const l=u=>{const c=__(u,e,!0);c&&(o=!0,Sr(a,c))};!r&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!i&&!o?(Ot(t)&&n.set(t,null),null):(nt(i)?i.forEach(l=>a[l]=null):Sr(a,i),Ot(t)&&n.set(t,a),a)}function Fc(t,e){return!t||!Lc(e)?!1:(e=e.slice(2).replace(/Once$/,""),wt(t,e[0].toLowerCase()+e.slice(1))||wt(t,eo(e))||wt(t,e))}function Mb(t){const{type:e,vnode:r,proxy:n,withProxy:s,propsOptions:[i],slots:a,attrs:o,emit:l,render:u,renderCache:c,props:f,data:d,setupState:p,ctx:g,inheritAttrs:b}=t,v=Ju(t);let w,_;try{if(r.shapeFlag&4){const x=s||n,T=x;w=Rn(u.call(T,x,c,f,p,d,g)),_=o}else{const x=e;w=Rn(x.length>1?x(f,{attrs:o,slots:a,emit:l}):x(f,null)),_=e.props?o:DA(o)}}catch(x){Ja.length=0,Dc(x,t,1),w=xe(ts)}let y=w;if(_&&b!==!1){const x=Object.keys(_),{shapeFlag:T}=y;x.length&&T&7&&(i&&x.some(Pg)&&(_=UA(_,i)),y=jo(y,_,!1,!0))}return r.dirs&&(y=jo(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(r.dirs):r.dirs),r.transition&&Wg(y,r.transition),w=y,Ju(v),w}const DA=t=>{let e;for(const r in t)(r==="class"||r==="style"||Lc(r))&&((e||(e={}))[r]=t[r]);return e},UA=(t,e)=>{const r={};for(const n in t)(!Pg(n)||!(n.slice(9)in e))&&(r[n]=t[n]);return r};function FA(t,e,r){const{props:n,children:s,component:i}=t,{props:a,children:o,patchFlag:l}=e,u=i.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?kb(n,a,u):!!a;if(l&8){const c=e.dynamicProps;for(let f=0;ft.__isSuspense;function jA(t,e){e&&e.pendingBranch?nt(t)?e.effects.push(...t):e.effects.push(t):YT(t)}const Ye=Symbol.for("v-fgt"),Vc=Symbol.for("v-txt"),ts=Symbol.for("v-cmt"),xu=Symbol.for("v-stc"),Ja=[];let qr=null;function ae(t=!1){Ja.push(qr=t?null:[])}function WA(){Ja.pop(),qr=Ja[Ja.length-1]||null}let ul=1;function Pb(t,e=!1){ul+=t,t<0&&qr&&e&&(qr.hasOnce=!0)}function S_(t){return t.dynamicChildren=ul>0?qr||Po:null,WA(),ul>0&&qr&&qr.push(t),t}function Ee(t,e,r,n,s,i){return S_(z(t,e,r,n,s,i,!0))}function Re(t,e,r,n,s){return S_(xe(t,e,r,n,s,!0))}function Gg(t){return t?t.__v_isVNode===!0:!1}function va(t,e){return t.type===e.type&&t.key===e.key}const x_=({key:t})=>t??null,Tu=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?Kt(t)||Er(t)||at(t)?{i:lr,r:t,k:e,f:!!r}:t:null);function z(t,e=null,r=null,n=0,s=null,i=t===Ye?0:1,a=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&x_(e),ref:e&&Tu(e),scopeId:Q0,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:lr};return o?(Yg(l,r),i&128&&t.normalize(l)):r&&(l.shapeFlag|=Kt(r)?8:16),ul>0&&!a&&qr&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&qr.push(l),l}const xe=zA;function zA(t,e=null,r=null,n=0,s=null,i=!1){if((!t||t===cA)&&(t=ts),Gg(t)){const o=jo(t,e,!0);return r&&Yg(o,r),ul>0&&!i&&qr&&(o.shapeFlag&6?qr[qr.indexOf(t)]=o:qr.push(o)),o.patchFlag=-2,o}if(rC(t)&&(t=t.__vccOpts),e){e=HA(e);let{class:o,style:l}=e;o&&!Kt(o)&&(e.class=rt(o)),Ot(l)&&(Vg(l)&&!nt(l)&&(l=Sr({},l)),e.style=ht(l))}const a=Kt(t)?1:E_(t)?128:KT(t)?64:Ot(t)?4:at(t)?2:0;return z(t,e,r,n,s,a,i,!0)}function HA(t){return t?Vg(t)||d_(t)?Sr({},t):t:null}function jo(t,e,r=!1,n=!1){const{props:s,ref:i,patchFlag:a,children:o,transition:l}=t,u=e?GA(s||{},e):s,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&x_(u),ref:e&&e.ref?r&&i?nt(i)?i.concat(Tu(e)):[i,Tu(e)]:Tu(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Ye?a===-1?16:a|16:a,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&jo(t.ssContent),ssFallback:t.ssFallback&&jo(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&n&&Wg(c,l.clone(c)),c}function st(t=" ",e=0){return xe(Vc,null,t,e)}function qA(t,e){const r=xe(xu,null,t);return r.staticCount=e,r}function Me(t="",e=!1){return e?(ae(),Re(ts,null,t)):xe(ts,null,t)}function Rn(t){return t==null||typeof t=="boolean"?xe(ts):nt(t)?xe(Ye,null,t.slice()):Gg(t)?qi(t):xe(Vc,null,String(t))}function qi(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:jo(t)}function Yg(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(nt(e))r=16;else if(typeof e=="object")if(n&65){const s=e.default;s&&(s._c&&(s._d=!1),Yg(t,s()),s._c&&(s._d=!0));return}else{r=32;const s=e._;!s&&!d_(e)?e._ctx=lr:s===3&&lr&&(lr.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else at(e)?(e={default:e,_ctx:lr},r=32):(e=String(e),n&64?(r=16,e=[st(e)]):r=8);t.children=e,t.shapeFlag|=r}function GA(...t){const e={};for(let r=0;r{let s;return(s=t[r])||(s=t[r]=[]),s.push(n),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};tc=e("__VUE_INSTANCE_SETTERS__",r=>wr=r),Ih=e("__VUE_SSR_SETTERS__",r=>cl=r)}const Tl=t=>{const e=wr;return tc(t),t.scope.on(),()=>{t.scope.off(),tc(e)}},Ob=()=>{wr&&wr.scope.off(),tc(null)};function T_(t){return t.vnode.shapeFlag&4}let cl=!1;function QA(t,e=!1,r=!1){e&&Ih(e);const{props:n,children:s}=t.vnode,i=T_(t);EA(t,n,i,e),AA(t,s,r);const a=i?JA(t,e):void 0;return e&&Ih(!1),a}function JA(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,hA);const{setup:n}=r;if(n){os();const s=t.setupContext=n.length>1?eC(t):null,i=Tl(t),a=Sl(n,t,0,[t.props,s]),o=S0(a);if(as(),i(),(o||t.sp)&&!Bo(t)&&t_(t),o){if(a.then(Ob,Ob),e)return a.then(l=>{Lb(t,l)}).catch(l=>{Dc(l,t,0)});t.asyncDep=a}else Lb(t,a)}else A_(t)}function Lb(t,e,r){at(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Ot(e)&&(t.setupState=H0(e)),A_(t)}function A_(t,e,r){const n=t.type;t.render||(t.render=n.render||Fn);{const s=Tl(t);os();try{pA(t)}finally{as(),s()}}}const ZA={get(t,e){return mr(t,"get",""),t[e]}};function eC(t){const e=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,ZA),slots:t.slots,emit:t.emit,expose:e}}function jc(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(H0(DT(t.exposed)),{get(e,r){if(r in e)return e[r];if(r in Qa)return Qa[r](t)},has(e,r){return r in e||r in Qa}})):t.proxy}function tC(t,e=!0){return at(t)?t.displayName||t.name:t.name||e&&t.__name}function rC(t){return at(t)&&"__vccOpts"in t}const we=(t,e)=>WT(t,e,cl),nC="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Mh;const Rb=typeof window<"u"&&window.trustedTypes;if(Rb)try{Mh=Rb.createPolicy("vue",{createHTML:t=>t})}catch{}const C_=Mh?t=>Mh.createHTML(t):t=>t,iC="http://www.w3.org/2000/svg",sC="http://www.w3.org/1998/Math/MathML",ii=typeof document<"u"?document:null,Bb=ii&&ii.createElement("template"),oC={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const s=e==="svg"?ii.createElementNS(iC,t):e==="mathml"?ii.createElementNS(sC,t):r?ii.createElement(t,{is:r}):ii.createElement(t);return t==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:t=>ii.createTextNode(t),createComment:t=>ii.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ii.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,s,i){const a=r?r.previousSibling:e.lastChild;if(s&&(s===i||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),r),!(s===i||!(s=s.nextSibling)););else{Bb.innerHTML=C_(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const o=Bb.content;if(n==="svg"||n==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}e.insertBefore(o,r)}return[a?a.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},aC=Symbol("_vtc");function lC(t,e,r){const n=t[aC];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}const rc=Symbol("_vod"),I_=Symbol("_vsh"),uC={beforeMount(t,{value:e},{transition:r}){t[rc]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):_a(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),_a(t,!0),n.enter(t)):n.leave(t,()=>{_a(t,!1)}):_a(t,e))},beforeUnmount(t,{value:e}){_a(t,e)}};function _a(t,e){t.style.display=e?t[rc]:"none",t[I_]=!e}const cC=Symbol(""),fC=/(^|;)\s*display\s*:/;function dC(t,e,r){const n=t.style,s=Kt(r);let i=!1;if(r&&!s){if(e)if(Kt(e))for(const a of e.split(";")){const o=a.slice(0,a.indexOf(":")).trim();r[o]==null&&Au(n,o,"")}else for(const a in e)r[a]==null&&Au(n,a,"");for(const a in r)a==="display"&&(i=!0),Au(n,a,r[a])}else if(s){if(e!==r){const a=n[cC];a&&(r+=";"+a),n.cssText=r,i=fC.test(r)}}else e&&t.removeAttribute("style");rc in t&&(t[rc]=i?n.display:"",t[I_]&&(n.display="none"))}const $b=/\s*!important$/;function Au(t,e,r){if(nt(r))r.forEach(n=>Au(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=hC(t,e);$b.test(r)?t.setProperty(eo(n),r.replace($b,""),"important"):t[n]=r}}const Nb=["Webkit","Moz","ms"],Pf={};function hC(t,e){const r=Pf[e];if(r)return r;let n=ln(e);if(n!=="filter"&&n in t)return Pf[e]=n;n=Bc(n);for(let s=0;sOf||(bC.then(()=>Of=0),Of=Date.now());function wC(t,e){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;qn(vC(n,r.value),e,5,[n])};return r.value=t,r.attached=yC(),r}function vC(t,e){if(nt(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map(n=>s=>!s._stopped&&n&&n(s))}else return e}const Wb=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,_C=(t,e,r,n,s,i)=>{const a=s==="svg";e==="class"?lC(t,n,a):e==="style"?dC(t,r,n):Lc(e)?Pg(e)||gC(t,e,r,n,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):EC(t,e,n,a))?(Fb(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Ub(t,e,n,a,i,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!Kt(n))?Fb(t,ln(e),n,i,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),Ub(t,e,n,a))};function EC(t,e,r,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&Wb(e)&&at(r));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=t.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Wb(e)&&Kt(r)?!1:e in t}const Wo=t=>{const e=t.props["onUpdate:modelValue"]||!1;return nt(e)?r=>vu(e,r):e};function SC(t){t.target.composing=!0}function zb(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const yi=Symbol("_assign"),xC={created(t,{modifiers:{lazy:e,trim:r,number:n}},s){t[yi]=Wo(s);const i=n||s.props&&s.props.type==="number";Yi(t,e?"change":"input",a=>{if(a.target.composing)return;let o=t.value;r&&(o=o.trim()),i&&(o=Ku(o)),t[yi](o)}),r&&Yi(t,"change",()=>{t.value=t.value.trim()}),e||(Yi(t,"compositionstart",SC),Yi(t,"compositionend",zb),Yi(t,"change",zb))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:r,modifiers:{lazy:n,trim:s,number:i}},a){if(t[yi]=Wo(a),t.composing)return;const o=(i||t.type==="number")&&!/^0\d/.test(t.value)?Ku(t.value):t.value,l=e??"";o!==l&&(document.activeElement===t&&t.type!=="range"&&(n&&e===r||s&&t.value.trim()===l)||(t.value=l))}},M_={deep:!0,created(t,e,r){t[yi]=Wo(r),Yi(t,"change",()=>{const n=t._modelValue,s=fl(t),i=t.checked,a=t[yi];if(nt(n)){const o=Rg(n,s),l=o!==-1;if(i&&!l)a(n.concat(s));else if(!i&&l){const u=[...n];u.splice(o,1),a(u)}}else if(oa(n)){const o=new Set(n);i?o.add(s):o.delete(s),a(o)}else a(k_(t,i))})},mounted:Hb,beforeUpdate(t,e,r){t[yi]=Wo(r),Hb(t,e,r)}};function Hb(t,{value:e,oldValue:r},n){t._modelValue=e;let s;if(nt(e))s=Rg(e,n.props.value)>-1;else if(oa(e))s=e.has(n.props.value);else{if(e===r)return;s=El(e,k_(t,!0))}t.checked!==s&&(t.checked=s)}const TC={deep:!0,created(t,{value:e,modifiers:{number:r}},n){const s=oa(e);Yi(t,"change",()=>{const i=Array.prototype.filter.call(t.options,a=>a.selected).map(a=>r?Ku(fl(a)):fl(a));t[yi](t.multiple?s?new Set(i):i:i[0]),t._assigning=!0,G0(()=>{t._assigning=!1})}),t[yi]=Wo(n)},mounted(t,{value:e}){qb(t,e)},beforeUpdate(t,e,r){t[yi]=Wo(r)},updated(t,{value:e}){t._assigning||qb(t,e)}};function qb(t,e){const r=t.multiple,n=nt(e);if(!(r&&!n&&!oa(e))){for(let s=0,i=t.options.length;sString(u)===String(o)):a.selected=Rg(e,o)>-1}else a.selected=e.has(o);else if(El(fl(a),e)){t.selectedIndex!==s&&(t.selectedIndex=s);return}}!r&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function fl(t){return"_value"in t?t._value:t.value}function k_(t,e){const r=e?"_trueValue":"_falseValue";return r in t?t[r]:e}const AC=Sr({patchProp:_C},oC);let Gb;function CC(){return Gb||(Gb=IA(AC))}const IC=(...t)=>{const e=CC().createApp(...t),{mount:r}=e;return e.mount=n=>{const s=kC(n);if(!s)return;const i=e._component;!at(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=r(s,!1,MC(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},e};function MC(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function kC(t){return Kt(t)?document.querySelector(t):t}function Cu(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function PC(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function Kg(t){let e,r,n;t.length!==2?(e=Cu,r=(o,l)=>Cu(t(o),l),n=(o,l)=>t(o)-l):(e=t===Cu||t===PC?t:OC,r=t,n=t);function s(o,l,u=0,c=o.length){if(u>>1;r(o[f],l)<0?u=f+1:c=f}while(u>>1;r(o[f],l)<=0?u=f+1:c=f}while(uu&&n(o[f-1],l)>-n(o[f],l)?f-1:f}return{left:s,center:a,right:i}}function OC(){return 0}function LC(t){return t===null?NaN:+t}const RC=Kg(Cu),BC=RC.right;Kg(LC).center;function Tn(t,e){let r,n;if(e===void 0)for(const s of t)s!=null&&(r===void 0?s>=s&&(r=n=s):(r>s&&(r=s),n=i&&(r=n=i):(r>i&&(r=i),n=UC?10:i>=FC?5:i>=VC?2:1;let o,l,u;return s<0?(u=Math.pow(10,-s)/a,o=Math.round(t*u),l=Math.round(e*u),o/ue&&--l,u=-u):(u=Math.pow(10,s)*a,o=Math.round(t/u),l=Math.round(e/u),o*ue&&--l),l0))return[];if(t===e)return[t];const n=e=s))return[];const o=i-s+1,l=new Array(o);if(n)if(a<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let s of t)(s=e(s,++n,t))!=null&&(r=s)&&(r=s)}return r}function WC(t,e,r){t=+t,e=+e,r=(s=arguments.length)<2?(e=t,t=0,1):s<3?1:+r;for(var n=-1,s=Math.max(0,Math.ceil((e-t)/r))|0,i=new Array(s);++n+t(e)}function YC(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function KC(){return!this.__axis}function Wc(t,e){var r=[],n=null,s=null,i=6,a=6,o=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===Iu||t===Ua?-1:1,c=t===Ua||t===Mu?"x":"y",f=t===Iu||t===Oh?HC:qC;function d(p){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),b=s??(e.tickFormat?e.tickFormat.apply(e,r):zC),v=Math.max(i,0)+o,w=e.range(),_=+w[0]+l,y=+w[w.length-1]+l,x=(e.bandwidth?YC:GC)(e.copy(),l),T=p.selection?p.selection():p,A=T.selectAll(".domain").data([null]),C=T.selectAll(".tick").data(g,e).order(),L=C.exit(),j=C.enter().append("g").attr("class","tick"),R=C.select("line"),U=C.select("text");A=A.merge(A.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),C=C.merge(j),R=R.merge(j.append("line").attr("stroke","currentColor").attr(c+"2",u*i)),U=U.merge(j.append("text").attr("fill","currentColor").attr(c,u*v).attr("dy",t===Iu?"0em":t===Oh?"0.71em":"0.32em")),p!==T&&(A=A.transition(p),C=C.transition(p),R=R.transition(p),U=U.transition(p),L=L.transition(p).attr("opacity",Xb).attr("transform",function(I){return isFinite(I=x(I))?f(I+l):this.getAttribute("transform")}),j.attr("opacity",Xb).attr("transform",function(I){var M=this.parentNode.__axis;return f((M&&isFinite(M=M(I))?M:x(I))+l)})),L.remove(),A.attr("d",t===Ua||t===Mu?a?"M"+u*a+","+_+"H"+l+"V"+y+"H"+u*a:"M"+l+","+_+"V"+y:a?"M"+_+","+u*a+"V"+l+"H"+y+"V"+u*a:"M"+_+","+l+"H"+y),C.attr("opacity",1).attr("transform",function(I){return f(x(I)+l)}),R.attr(c+"2",u*i),U.attr(c,u*v).text(b),T.filter(KC).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Mu?"start":t===Ua?"end":"middle"),T.each(function(){this.__axis=x})}return d.scale=function(p){return arguments.length?(e=p,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),d):r.slice()},d.tickValues=function(p){return arguments.length?(n=p==null?null:Array.from(p),d):n&&n.slice()},d.tickFormat=function(p){return arguments.length?(s=p,d):s},d.tickSize=function(p){return arguments.length?(i=a=+p,d):i},d.tickSizeInner=function(p){return arguments.length?(i=+p,d):i},d.tickSizeOuter=function(p){return arguments.length?(a=+p,d):a},d.tickPadding=function(p){return arguments.length?(o=+p,d):o},d.offset=function(p){return arguments.length?(l=+p,d):l},d}function XC(t){return Wc(Iu,t)}function QC(t){return Wc(Mu,t)}function Za(t){return Wc(Oh,t)}function Al(t){return Wc(Ua,t)}var JC={value:()=>{}};function Xg(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(s+1),r=r.slice(0,s)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}ku.prototype=Xg.prototype={constructor:ku,on:function(t,e){var r=this._,n=ZC(t+"",r),s,i=-1,a=n.length;if(arguments.length<2){for(;++i0)for(var r=new Array(s),n=0,s,i;n=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Jb.hasOwnProperty(e)?{space:Jb[e],local:t}:t}function tI(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Lh&&e.documentElement.namespaceURI===Lh?e.createElement(t):e.createElementNS(r,t)}}function rI(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function O_(t){var e=zc(t);return(e.local?rI:tI)(e)}function nI(){}function Qg(t){return t==null?nI:function(){return this.querySelector(t)}}function iI(t){typeof t!="function"&&(t=Qg(t));for(var e=this._groups,r=e.length,n=new Array(r),s=0;s=y&&(y=_+1);!(T=v[y])&&++y=0;)(a=n[s])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function MI(t){t||(t=kI);function e(f,d){return f&&d?t(f.__data__,d.__data__):!f-!d}for(var r=this._groups,n=r.length,s=new Array(n),i=0;ie?1:t>=e?0:NaN}function PI(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function OI(){return Array.from(this)}function LI(){for(var t=this._groups,e=0,r=t.length;e1?this.each((e==null?zI:typeof e=="function"?qI:HI)(t,e,r??"")):zo(this.node(),t)}function zo(t,e){return t.style.getPropertyValue(e)||N_(t).getComputedStyle(t,null).getPropertyValue(e)}function YI(t){return function(){delete this[t]}}function KI(t,e){return function(){this[t]=e}}function XI(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function QI(t,e){return arguments.length>1?this.each((e==null?YI:typeof e=="function"?XI:KI)(t,e)):this.node()[t]}function D_(t){return t.trim().split(/^|\s+/)}function Jg(t){return t.classList||new U_(t)}function U_(t){this._node=t,this._names=D_(t.getAttribute("class")||"")}U_.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function F_(t,e){for(var r=Jg(t),n=-1,s=e.length;++n=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function TM(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,s=e.length,i;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?ql(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?ql(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=NM.exec(t))?new $r(e[1],e[2],e[3],1):(e=DM.exec(t))?new $r(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=UM.exec(t))?ql(e[1],e[2],e[3],e[4]):(e=FM.exec(t))?ql(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=VM.exec(t))?sy(e[1],e[2]/100,e[3]/100,1):(e=jM.exec(t))?sy(e[1],e[2]/100,e[3]/100,e[4]):Zb.hasOwnProperty(t)?ry(Zb[t]):t==="transparent"?new $r(NaN,NaN,NaN,0):null}function ry(t){return new $r(t>>16&255,t>>8&255,t&255,1)}function ql(t,e,r,n){return n<=0&&(t=e=r=NaN),new $r(t,e,r,n)}function HM(t){return t instanceof Il||(t=Ys(t)),t?(t=t.rgb(),new $r(t.r,t.g,t.b,t.opacity)):new $r}function $h(t,e,r,n){return arguments.length===1?HM(t):new $r(t,e,r,n??1)}function $r(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}Zg($r,$h,z_(Il,{brighter(t){return t=t==null?sc:Math.pow(sc,t),new $r(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?dl:Math.pow(dl,t),new $r(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new $r(Ds(this.r),Ds(this.g),Ds(this.b),oc(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ny,formatHex:ny,formatHex8:qM,formatRgb:iy,toString:iy}));function ny(){return`#${ks(this.r)}${ks(this.g)}${ks(this.b)}`}function qM(){return`#${ks(this.r)}${ks(this.g)}${ks(this.b)}${ks((isNaN(this.opacity)?1:this.opacity)*255)}`}function iy(){const t=oc(this.opacity);return`${t===1?"rgb(":"rgba("}${Ds(this.r)}, ${Ds(this.g)}, ${Ds(this.b)}${t===1?")":`, ${t})`}`}function oc(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ds(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ks(t){return t=Ds(t),(t<16?"0":"")+t.toString(16)}function sy(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new vn(t,e,r,n)}function H_(t){if(t instanceof vn)return new vn(t.h,t.s,t.l,t.opacity);if(t instanceof Il||(t=Ys(t)),!t)return new vn;if(t instanceof vn)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,s=Math.min(e,r,n),i=Math.max(e,r,n),a=NaN,o=i-s,l=(i+s)/2;return o?(e===i?a=(r-n)/o+(r0&&l<1?0:a,new vn(a,o,l,t.opacity)}function GM(t,e,r,n){return arguments.length===1?H_(t):new vn(t,e,r,n??1)}function vn(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}Zg(vn,GM,z_(Il,{brighter(t){return t=t==null?sc:Math.pow(sc,t),new vn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?dl:Math.pow(dl,t),new vn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,s=2*r-n;return new $r(Lf(t>=240?t-240:t+120,s,n),Lf(t,s,n),Lf(t<120?t+240:t-120,s,n),this.opacity)},clamp(){return new vn(oy(this.h),Gl(this.s),Gl(this.l),oc(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=oc(this.opacity);return`${t===1?"hsl(":"hsla("}${oy(this.h)}, ${Gl(this.s)*100}%, ${Gl(this.l)*100}%${t===1?")":`, ${t})`}`}}));function oy(t){return t=(t||0)%360,t<0?t+360:t}function Gl(t){return Math.max(0,Math.min(1,t||0))}function Lf(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const em=t=>()=>t;function YM(t,e){return function(r){return t+r*e}}function KM(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function XM(t){return(t=+t)==1?q_:function(e,r){return r-e?KM(e,r,t):em(isNaN(e)?r:e)}}function q_(t,e){var r=e-t;return r?YM(t,r):em(isNaN(t)?e:t)}const ac=function t(e){var r=XM(e);function n(s,i){var a=r((s=$h(s)).r,(i=$h(i)).r),o=r(s.g,i.g),l=r(s.b,i.b),u=q_(s.opacity,i.opacity);return function(c){return s.r=a(c),s.g=o(c),s.b=l(c),s.opacity=u(c),s+""}}return n.gamma=t,n}(1);function QM(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),s;return function(i){for(s=0;sr&&(i=e.slice(r,i),o[a]?o[a]+=i:o[++a]=i),(n=n[0])===(s=s[0])?o[a]?o[a]+=s:o[++a]=s:(o[++a]=null,l.push({i:a,x:wn(n,s)})),r=Rf.lastIndex;return r180?c+=360:c-u>180&&(u+=360),d.push({i:f.push(s(f)+"rotate(",null,n)-2,x:wn(u,c)})):c&&f.push(s(f)+"rotate("+c+n)}function o(u,c,f,d){u!==c?d.push({i:f.push(s(f)+"skewX(",null,n)-2,x:wn(u,c)}):c&&f.push(s(f)+"skewX("+c+n)}function l(u,c,f,d,p,g){if(u!==f||c!==d){var b=p.push(s(p)+"scale(",null,",",null,")");g.push({i:b-4,x:wn(u,f)},{i:b-2,x:wn(c,d)})}else(f!==1||d!==1)&&p.push(s(p)+"scale("+f+","+d+")")}return function(u,c){var f=[],d=[];return u=t(u),c=t(c),i(u.translateX,u.translateY,c.translateX,c.translateY,f,d),a(u.rotate,c.rotate,f,d),o(u.skewX,c.skewX,f,d),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,f,d),u=c=null,function(p){for(var g=-1,b=d.length,v;++g=0&&t._call.call(void 0,e),t=t._next;--Ho}function uy(){Ks=(uc=pl.now())+Hc,Ho=Fa=0;try{pk()}finally{Ho=0,mk(),Ks=0}}function gk(){var t=pl.now(),e=t-uc;e>X_&&(Hc-=e,uc=t)}function mk(){for(var t,e=lc,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:lc=r);Va=t,Uh(n)}function Uh(t){if(!Ho){Fa&&(Fa=clearTimeout(Fa));var e=t-Ks;e>24?(t<1/0&&(Fa=setTimeout(uy,t-pl.now()-Hc)),Ea&&(Ea=clearInterval(Ea))):(Ea||(uc=pl.now(),Ea=setInterval(gk,X_)),Ho=1,Q_(uy))}}function cy(t,e,r){var n=new cc;return e=e==null?0:+e,n.restart(s=>{n.stop(),t(s+e)},e,r),n}var bk=Xg("start","end","cancel","interrupt"),yk=[],Z_=0,fy=1,Fh=2,Pu=3,dy=4,Vh=5,Ou=6;function qc(t,e,r,n,s,i){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;wk(t,r,{name:e,index:n,group:s,on:bk,tween:yk,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Z_})}function nm(t,e){var r=An(t,e);if(r.state>Z_)throw new Error("too late; already scheduled");return r}function Kn(t,e){var r=An(t,e);if(r.state>Pu)throw new Error("too late; already running");return r}function An(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function wk(t,e,r){var n=t.__transition,s;n[e]=r,r.timer=J_(i,0,r.time);function i(u){r.state=fy,r.timer.restart(a,r.delay,r.time),r.delay<=u&&a(u-r.delay)}function a(u){var c,f,d,p;if(r.state!==fy)return l();for(c in n)if(p=n[c],p.name===r.name){if(p.state===Pu)return cy(a);p.state===dy?(p.state=Ou,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete n[c]):+cFh&&n.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function Kk(t,e,r){var n,s,i=Yk(e)?nm:Kn;return function(){var a=i(this,t),o=a.on;o!==n&&(s=(n=o).copy()).on(e,r),a.on=s}}function Xk(t,e){var r=this._id;return arguments.length<2?An(this.node(),r).on.on(t):this.each(Kk(r,t,e))}function Qk(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function Jk(){return this.on("end.remove",Qk(this._id))}function Zk(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Qg(t));for(var n=this._groups,s=n.length,i=new Array(s),a=0;a+t;function vP(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var _P={time:null,delay:0,duration:250,ease:vP};function EP(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function SP(t){var e,r;t instanceof _i?(e=t._id,t=t._name):(e=r1(),(r=_P).time=rm(),t=t==null?null:t+"");for(var n=this._groups,s=n.length,i=0;i=0))throw new Error(`invalid digits: ${t}`);if(e>15)return n1;const r=10**e;return function(n){this._+=n[0];for(let s=1,i=n.length;sCs)if(!(Math.abs(f*l-u*c)>Cs)||!i)this._append`L${this._x1=e},${this._y1=r}`;else{let p=n-a,g=s-o,b=l*l+u*u,v=p*p+g*g,w=Math.sqrt(b),_=Math.sqrt(d),y=i*Math.tan((jh-Math.acos((b+d-v)/(2*w*_)))/2),x=y/_,T=y/w;Math.abs(x-1)>Cs&&this._append`L${e+x*c},${r+x*f}`,this._append`A${i},${i},0,0,${+(f*p>c*g)},${this._x1=e+T*l},${this._y1=r+T*u}`}}arc(e,r,n,s,i,a){if(e=+e,r=+r,n=+n,a=!!a,n<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(s),l=n*Math.sin(s),u=e+o,c=r+l,f=1^a,d=a?s-i:i-s;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Cs||Math.abs(this._y1-c)>Cs)&&this._append`L${u},${c}`,n&&(d<0&&(d=d%Wh+Wh),d>xP?this._append`A${n},${n},0,1,${f},${e-o},${r-l}A${n},${n},0,1,${f},${this._x1=u},${this._y1=c}`:d>Cs&&this._append`A${n},${n},0,${+(d>=jh)},${f},${this._x1=e+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(e,r,n,s){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+s}h${-n}Z`}toString(){return this._}}function CP(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function fc(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function qo(t){return t=fc(Math.abs(t)),t?t[1]:NaN}function IP(t,e){return function(r,n){for(var s=r.length,i=[],a=0,o=t[0],l=0;s>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),i.push(r.substring(s-=o,s+o)),!((l+=o+1)>n));)o=t[a=(a+1)%t.length];return i.reverse().join(e)}}function MP(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var kP=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function dc(t){if(!(e=kP.exec(t)))throw new Error("invalid format: "+t);var e;return new sm({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}dc.prototype=sm.prototype;function sm(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}sm.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function PP(t){e:for(var e=t.length,r=1,n=-1,s;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(s+1):t}var i1;function OP(t,e){var r=fc(t,e);if(!r)return t+"";var n=r[0],s=r[1],i=s-(i1=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,a=n.length;return i===a?n:i>a?n+new Array(i-a+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+fc(t,Math.max(0,e+i-1))[0]}function hy(t,e){var r=fc(t,e);if(!r)return t+"";var n=r[0],s=r[1];return s<0?"0."+new Array(-s).join("0")+n:n.length>s+1?n.slice(0,s+1)+"."+n.slice(s+1):n+new Array(s-n.length+2).join("0")}const py={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:CP,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>hy(t*100,e),r:hy,s:OP,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function gy(t){return t}var my=Array.prototype.map,by=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function LP(t){var e=t.grouping===void 0||t.thousands===void 0?gy:IP(my.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",s=t.decimal===void 0?".":t.decimal+"",i=t.numerals===void 0?gy:MP(my.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"−":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function u(f){f=dc(f);var d=f.fill,p=f.align,g=f.sign,b=f.symbol,v=f.zero,w=f.width,_=f.comma,y=f.precision,x=f.trim,T=f.type;T==="n"?(_=!0,T="g"):py[T]||(y===void 0&&(y=12),x=!0,T="g"),(v||d==="0"&&p==="=")&&(v=!0,d="0",p="=");var A=b==="$"?r:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",C=b==="$"?n:/[%p]/.test(T)?a:"",L=py[T],j=/[defgprs%]/.test(T);y=y===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function R(U){var I=A,M=C,$,Z,ne;if(T==="c")M=L(U)+M,U="";else{U=+U;var re=U<0||1/U<0;if(U=isNaN(U)?l:L(Math.abs(U),y),x&&(U=PP(U)),re&&+U==0&&g!=="+"&&(re=!1),I=(re?g==="("?g:o:g==="-"||g==="("?"":g)+I,M=(T==="s"?by[8+i1/3]:"")+M+(re&&g==="("?")":""),j){for($=-1,Z=U.length;++$ne||ne>57){M=(ne===46?s+U.slice($+1):U.slice($))+M,U=U.slice(0,$);break}}}_&&!v&&(U=e(U,1/0));var N=I.length+U.length+M.length,fe=N>1)+I+U+M+fe.slice(N);break;default:U=fe+I+U+M;break}return i(U)}return R.toString=function(){return f+""},R}function c(f,d){var p=u((f=dc(f),f.type="f",f)),g=Math.max(-8,Math.min(8,Math.floor(qo(d)/3)))*3,b=Math.pow(10,-g),v=by[8+g/3];return function(w){return p(b*w)+v}}return{format:u,formatPrefix:c}}var Kl,s1,o1;RP({thousands:",",grouping:[3],currency:["$",""]});function RP(t){return Kl=LP(t),s1=Kl.format,o1=Kl.formatPrefix,Kl}function BP(t){return Math.max(0,-qo(Math.abs(t)))}function $P(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(qo(e)/3)))*3-qo(Math.abs(t)))}function NP(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,qo(e)-qo(t))+1}function Ml(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}const yy=Symbol("implicit");function a1(){var t=new Yb,e=[],r=[],n=yy;function s(i){let a=t.get(i);if(a===void 0){if(n!==yy)return n;t.set(i,a=e.push(i)-1)}return r[a%r.length]}return s.domain=function(i){if(!arguments.length)return e.slice();e=[],t=new Yb;for(const a of i)t.has(a)||t.set(a,e.push(a)-1);return s},s.range=function(i){return arguments.length?(r=Array.from(i),s):r.slice()},s.unknown=function(i){return arguments.length?(n=i,s):n},s.copy=function(){return a1(e,r).unknown(n)},Ml.apply(s,arguments),s}function gl(){var t=a1().unknown(void 0),e=t.domain,r=t.range,n=0,s=1,i,a,o=!1,l=0,u=0,c=.5;delete t.unknown;function f(){var d=e().length,p=se&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function VP(t,e,r){var n=t[0],s=t[1],i=e[0],a=e[1];return s2?jP:VP,l=u=null,f}function f(d){return d==null||isNaN(d=+d)?i:(l||(l=o(t.map(n),e,r)))(n(a(d)))}return f.invert=function(d){return a(s((u||(u=o(e,t.map(n),wn)))(d)))},f.domain=function(d){return arguments.length?(t=Array.from(d,UP),c()):t.slice()},f.range=function(d){return arguments.length?(e=Array.from(d),c()):e.slice()},f.rangeRound=function(d){return e=Array.from(d),r=ik,c()},f.clamp=function(d){return arguments.length?(a=d?!0:Co,c()):a!==Co},f.interpolate=function(d){return arguments.length?(r=d,c()):r},f.unknown=function(d){return arguments.length?(i=d,f):i},function(d,p){return n=d,s=p,c()}}function u1(){return WP()(Co,Co)}function zP(t,e,r,n){var s=Ph(t,e,r),i;switch(n=dc(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(i=$P(s,a))&&(n.precision=i),o1(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=NP(s,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=BP(s))&&(n.precision=i-(n.type==="%")*2);break}}return s1(n)}function HP(t){var e=t.domain;return t.ticks=function(r){var n=e();return jC(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var s=e();return zP(s[0],s[s.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),s=0,i=n.length-1,a=n[s],o=n[i],l,u,c=10;for(o0;){if(u=kh(a,o,r),u===l)return n[s]=a,n[i]=o,e(n);if(u>0)a=Math.floor(a/u)*u,o=Math.ceil(o/u)*u;else if(u<0)a=Math.ceil(a*u)/u,o=Math.floor(o*u)/u;else break;l=u}return t},t}function Xn(){var t=u1();return t.copy=function(){return l1(t,Xn())},Ml.apply(t,arguments),HP(t)}function qP(t,e){t=t.slice();var r=0,n=t.length-1,s=t[r],i=t[n],a;return i(t(i=new Date(+i)),i),s.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),s.round=i=>{const a=s(i),o=s.ceil(i);return i-a(e(i=new Date(+i),a==null?1:Math.floor(a)),i),s.range=(i,a,o)=>{const l=[];if(i=s.ceil(i),o=o==null?1:Math.floor(o),!(i0))return l;let u;do l.push(u=new Date(+i)),e(i,o),t(i);while(uer(a=>{if(a>=a)for(;t(a),!i(a);)a.setTime(a-1)},(a,o)=>{if(a>=a)if(o<0)for(;++o<=0;)for(;e(a,-1),!i(a););else for(;--o>=0;)for(;e(a,1),!i(a););}),r&&(s.count=(i,a)=>(Bf.setTime(+i),$f.setTime(+a),t(Bf),t($f),Math.floor(r(Bf,$f))),s.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?s.filter(n?a=>n(a)%i===0:a=>s.count(0,a)%i===0):s)),s}const hc=er(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);hc.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?er(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):hc);hc.range;const di=1e3,sn=di*60,hi=sn*60,Ei=hi*24,om=Ei*7,vy=Ei*30,Nf=Ei*365,Ps=er(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*di)},(t,e)=>(e-t)/di,t=>t.getUTCSeconds());Ps.range;const am=er(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*di)},(t,e)=>{t.setTime(+t+e*sn)},(t,e)=>(e-t)/sn,t=>t.getMinutes());am.range;const lm=er(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*sn)},(t,e)=>(e-t)/sn,t=>t.getUTCMinutes());lm.range;const um=er(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*di-t.getMinutes()*sn)},(t,e)=>{t.setTime(+t+e*hi)},(t,e)=>(e-t)/hi,t=>t.getHours());um.range;const cm=er(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*hi)},(t,e)=>(e-t)/hi,t=>t.getUTCHours());cm.range;const kl=er(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*sn)/Ei,t=>t.getDate()-1);kl.range;const Gc=er(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Ei,t=>t.getUTCDate()-1);Gc.range;const c1=er(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Ei,t=>Math.floor(t/Ei));c1.range;function to(t){return er(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*sn)/om)}const Yc=to(0),pc=to(1),GP=to(2),YP=to(3),Go=to(4),KP=to(5),XP=to(6);Yc.range;pc.range;GP.range;YP.range;Go.range;KP.range;XP.range;function ro(t){return er(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/om)}const Kc=ro(0),gc=ro(1),QP=ro(2),JP=ro(3),Yo=ro(4),ZP=ro(5),eO=ro(6);Kc.range;gc.range;QP.range;JP.range;Yo.range;ZP.range;eO.range;const fm=er(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());fm.range;const dm=er(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());dm.range;const Si=er(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Si.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:er(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});Si.range;const xi=er(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());xi.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:er(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});xi.range;function f1(t,e,r,n,s,i){const a=[[Ps,1,di],[Ps,5,5*di],[Ps,15,15*di],[Ps,30,30*di],[i,1,sn],[i,5,5*sn],[i,15,15*sn],[i,30,30*sn],[s,1,hi],[s,3,3*hi],[s,6,6*hi],[s,12,12*hi],[n,1,Ei],[n,2,2*Ei],[r,1,om],[e,1,vy],[e,3,3*vy],[t,1,Nf]];function o(u,c,f){const d=cv).right(a,d);if(p===a.length)return t.every(Ph(u/Nf,c/Nf,f));if(p===0)return hc.every(Math.max(Ph(u,c,f),1));const[g,b]=a[d/a[p-1][2]53)return null;"w"in k||(k.w=1),"Z"in k?(V=Uf(Sa(k.y,0,1)),B=V.getUTCDay(),V=B>4||B===0?gc.ceil(V):gc(V),V=Gc.offset(V,(k.V-1)*7),k.y=V.getUTCFullYear(),k.m=V.getUTCMonth(),k.d=V.getUTCDate()+(k.w+6)%7):(V=Df(Sa(k.y,0,1)),B=V.getDay(),V=B>4||B===0?pc.ceil(V):pc(V),V=kl.offset(V,(k.V-1)*7),k.y=V.getFullYear(),k.m=V.getMonth(),k.d=V.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),B="Z"in k?Uf(Sa(k.y,0,1)).getUTCDay():Df(Sa(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(B+5)%7:k.w+k.U*7-(B+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,Uf(k)):Df(k)}}function L(X,ce,le,k){for(var P=0,V=ce.length,B=le.length,H,q;P=B)return-1;if(H=ce.charCodeAt(P++),H===37){if(H=ce.charAt(P++),q=T[H in _y?ce.charAt(P++):H],!q||(k=q(X,le,k))<0)return-1}else if(H!=le.charCodeAt(k++))return-1}return k}function j(X,ce,le){var k=u.exec(ce.slice(le));return k?(X.p=c.get(k[0].toLowerCase()),le+k[0].length):-1}function R(X,ce,le){var k=p.exec(ce.slice(le));return k?(X.w=g.get(k[0].toLowerCase()),le+k[0].length):-1}function U(X,ce,le){var k=f.exec(ce.slice(le));return k?(X.w=d.get(k[0].toLowerCase()),le+k[0].length):-1}function I(X,ce,le){var k=w.exec(ce.slice(le));return k?(X.m=_.get(k[0].toLowerCase()),le+k[0].length):-1}function M(X,ce,le){var k=b.exec(ce.slice(le));return k?(X.m=v.get(k[0].toLowerCase()),le+k[0].length):-1}function $(X,ce,le){return L(X,e,ce,le)}function Z(X,ce,le){return L(X,r,ce,le)}function ne(X,ce,le){return L(X,n,ce,le)}function re(X){return a[X.getDay()]}function N(X){return i[X.getDay()]}function fe(X){return l[X.getMonth()]}function G(X){return o[X.getMonth()]}function pe(X){return s[+(X.getHours()>=12)]}function F(X){return 1+~~(X.getMonth()/3)}function de(X){return a[X.getUTCDay()]}function Se(X){return i[X.getUTCDay()]}function ee(X){return l[X.getUTCMonth()]}function K(X){return o[X.getUTCMonth()]}function W(X){return s[+(X.getUTCHours()>=12)]}function D(X){return 1+~~(X.getUTCMonth()/3)}return{format:function(X){var ce=A(X+="",y);return ce.toString=function(){return X},ce},parse:function(X){var ce=C(X+="",!1);return ce.toString=function(){return X},ce},utcFormat:function(X){var ce=A(X+="",x);return ce.toString=function(){return X},ce},utcParse:function(X){var ce=C(X+="",!0);return ce.toString=function(){return X},ce}}}var _y={"-":"",_:" ",0:"0"},sr=/^\s*\d+/,oO=/^%/,aO=/[\\^$*+?|[\]().{}]/g;function bt(t,e,r){var n=t<0?"-":"",s=(n?-t:t)+"",i=s.length;return n+(i[e.toLowerCase(),r]))}function uO(t,e,r){var n=sr.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function cO(t,e,r){var n=sr.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function fO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function dO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function hO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function Ey(t,e,r){var n=sr.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Sy(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function pO(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function gO(t,e,r){var n=sr.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function mO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function xy(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function bO(t,e,r){var n=sr.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function Ty(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function yO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function wO(t,e,r){var n=sr.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function vO(t,e,r){var n=sr.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function _O(t,e,r){var n=sr.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function EO(t,e,r){var n=oO.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function SO(t,e,r){var n=sr.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function xO(t,e,r){var n=sr.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function Ay(t,e){return bt(t.getDate(),e,2)}function TO(t,e){return bt(t.getHours(),e,2)}function AO(t,e){return bt(t.getHours()%12||12,e,2)}function CO(t,e){return bt(1+kl.count(Si(t),t),e,3)}function d1(t,e){return bt(t.getMilliseconds(),e,3)}function IO(t,e){return d1(t,e)+"000"}function MO(t,e){return bt(t.getMonth()+1,e,2)}function kO(t,e){return bt(t.getMinutes(),e,2)}function PO(t,e){return bt(t.getSeconds(),e,2)}function OO(t){var e=t.getDay();return e===0?7:e}function LO(t,e){return bt(Yc.count(Si(t)-1,t),e,2)}function h1(t){var e=t.getDay();return e>=4||e===0?Go(t):Go.ceil(t)}function RO(t,e){return t=h1(t),bt(Go.count(Si(t),t)+(Si(t).getDay()===4),e,2)}function BO(t){return t.getDay()}function $O(t,e){return bt(pc.count(Si(t)-1,t),e,2)}function NO(t,e){return bt(t.getFullYear()%100,e,2)}function DO(t,e){return t=h1(t),bt(t.getFullYear()%100,e,2)}function UO(t,e){return bt(t.getFullYear()%1e4,e,4)}function FO(t,e){var r=t.getDay();return t=r>=4||r===0?Go(t):Go.ceil(t),bt(t.getFullYear()%1e4,e,4)}function VO(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+bt(e/60|0,"0",2)+bt(e%60,"0",2)}function Cy(t,e){return bt(t.getUTCDate(),e,2)}function jO(t,e){return bt(t.getUTCHours(),e,2)}function WO(t,e){return bt(t.getUTCHours()%12||12,e,2)}function zO(t,e){return bt(1+Gc.count(xi(t),t),e,3)}function p1(t,e){return bt(t.getUTCMilliseconds(),e,3)}function HO(t,e){return p1(t,e)+"000"}function qO(t,e){return bt(t.getUTCMonth()+1,e,2)}function GO(t,e){return bt(t.getUTCMinutes(),e,2)}function YO(t,e){return bt(t.getUTCSeconds(),e,2)}function KO(t){var e=t.getUTCDay();return e===0?7:e}function XO(t,e){return bt(Kc.count(xi(t)-1,t),e,2)}function g1(t){var e=t.getUTCDay();return e>=4||e===0?Yo(t):Yo.ceil(t)}function QO(t,e){return t=g1(t),bt(Yo.count(xi(t),t)+(xi(t).getUTCDay()===4),e,2)}function JO(t){return t.getUTCDay()}function ZO(t,e){return bt(gc.count(xi(t)-1,t),e,2)}function e2(t,e){return bt(t.getUTCFullYear()%100,e,2)}function t2(t,e){return t=g1(t),bt(t.getUTCFullYear()%100,e,2)}function r2(t,e){return bt(t.getUTCFullYear()%1e4,e,4)}function n2(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Yo(t):Yo.ceil(t),bt(t.getUTCFullYear()%1e4,e,4)}function i2(){return"+0000"}function Iy(){return"%"}function My(t){return+t}function ky(t){return Math.floor(+t/1e3)}var mo,rs,m1,b1;s2({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function s2(t){return mo=sO(t),rs=mo.format,m1=mo.parse,b1=mo.utcFormat,mo.utcParse,mo}function o2(t){return new Date(t)}function a2(t){return t instanceof Date?+t:+new Date(+t)}function hm(t,e,r,n,s,i,a,o,l,u){var c=u1(),f=c.invert,d=c.domain,p=u(".%L"),g=u(":%S"),b=u("%I:%M"),v=u("%I %p"),w=u("%a %d"),_=u("%b %d"),y=u("%B"),x=u("%Y");function T(A){return(l(A)1?0:t<-1?ml:Math.acos(t)}function Oy(t){return t>=1?mc:t<=-1?-mc:Math.asin(t)}function pm(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new AP(e)}function c2(t){return t.innerRadius}function f2(t){return t.outerRadius}function d2(t){return t.startAngle}function h2(t){return t.endAngle}function p2(t){return t&&t.padAngle}function g2(t,e,r,n,s,i,a,o){var l=r-t,u=n-e,c=a-s,f=o-i,d=f*l-c*u;if(!(d*d$*$+Z*Z&&(L=R,j=U),{cx:L,cy:j,x01:-c,y01:-f,x11:L*(s/T-1),y11:j*(s/T-1)}}function m2(){var t=c2,e=f2,r=ut(0),n=null,s=d2,i=h2,a=p2,o=null,l=pm(u);function u(){var c,f,d=+t.apply(this,arguments),p=+e.apply(this,arguments),g=s.apply(this,arguments)-mc,b=i.apply(this,arguments)-mc,v=Py(b-g),w=b>g;if(o||(o=c=l()),pLr))o.moveTo(0,0);else if(v>Ru-Lr)o.moveTo(p*ys(g),p*Mn(g)),o.arc(0,0,p,g,b,!w),d>Lr&&(o.moveTo(d*ys(b),d*Mn(b)),o.arc(0,0,d,b,g,w));else{var _=g,y=b,x=g,T=b,A=v,C=v,L=a.apply(this,arguments)/2,j=L>Lr&&(n?+n.apply(this,arguments):Io(d*d+p*p)),R=Ff(Py(p-d)/2,+r.apply(this,arguments)),U=R,I=R,M,$;if(j>Lr){var Z=Oy(j/d*Mn(L)),ne=Oy(j/p*Mn(L));(A-=Z*2)>Lr?(Z*=w?1:-1,x+=Z,T-=Z):(A=0,x=T=(g+b)/2),(C-=ne*2)>Lr?(ne*=w?1:-1,_+=ne,y-=ne):(C=0,_=y=(g+b)/2)}var re=p*ys(_),N=p*Mn(_),fe=d*ys(T),G=d*Mn(T);if(R>Lr){var pe=p*ys(y),F=p*Mn(y),de=d*ys(x),Se=d*Mn(x),ee;if(vLr?I>Lr?(M=Xl(de,Se,re,N,p,I,w),$=Xl(pe,F,fe,G,p,I,w),o.moveTo(M.cx+M.x01,M.cy+M.y01),ILr)||!(A>Lr)?o.lineTo(fe,G):U>Lr?(M=Xl(fe,G,pe,F,d,-U,w),$=Xl(re,N,de,Se,d,-U,w),o.lineTo(M.cx+M.x01,M.cy+M.y01),U=p;--g)o.point(y[g],x[g]);o.lineEnd(),o.areaEnd()}w&&(y[d]=+t(v,d,f),x[d]=+e(v,d,f),o.point(n?+n(v,d,f):y[d],r?+r(v,d,f):x[d]))}if(_)return o=null,_+""||null}function c(){return Nn().defined(s).curve(a).context(i)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:ut(+f),n=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:ut(+f),u):t},u.x1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:ut(+f),u):n},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:ut(+f),r=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:ut(+f),u):e},u.y1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:ut(+f),u):r},u.lineX0=u.lineY0=function(){return c().x(t).y(e)},u.lineY1=function(){return c().x(t).y(r)},u.lineX1=function(){return c().x(n).y(e)},u.defined=function(f){return arguments.length?(s=typeof f=="function"?f:ut(!!f),u):s},u.curve=function(f){return arguments.length?(a=f,i!=null&&(o=a(i)),u):a},u.context=function(f){return arguments.length?(f==null?i=o=null:o=a(i=f),u):i},u}function b2(t,e){return et?1:e>=t?0:NaN}function y2(t){return t}function Ly(){var t=y2,e=b2,r=null,n=ut(0),s=ut(Ru),i=ut(0);function a(o){var l,u=(o=Xc(o)).length,c,f,d=0,p=new Array(u),g=new Array(u),b=+n.apply(this,arguments),v=Math.min(Ru,Math.max(-Ru,s.apply(this,arguments)-b)),w,_=Math.min(Math.abs(v)/u,i.apply(this,arguments)),y=_*(v<0?-1:1),x;for(l=0;l0&&(d+=x);for(e!=null?p.sort(function(T,A){return e(g[T],g[A])}):r!=null&&p.sort(function(T,A){return r(o[T],o[A])}),l=0,f=d?(v-u*y)/d:0;l0?x*f:0)+y,g[c]={data:o[c],index:l,value:x,startAngle:b,endAngle:w,padAngle:_};return g}return a.value=function(o){return arguments.length?(t=typeof o=="function"?o:ut(+o),a):t},a.sortValues=function(o){return arguments.length?(e=o,r=null,a):e},a.sort=function(o){return arguments.length?(r=o,e=null,a):r},a.startAngle=function(o){return arguments.length?(n=typeof o=="function"?o:ut(+o),a):n},a.endAngle=function(o){return arguments.length?(s=typeof o=="function"?o:ut(+o),a):s},a.padAngle=function(o){return arguments.length?(i=typeof o=="function"?o:ut(+o),a):i},a}class w2{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}}function Uo(t){return new w2(t,!0)}function Ry(t,e){if((a=t.length)>1)for(var r=1,n,s,i=t[e[0]],a,o=i.length;r=0;)r[e]=e;return r}function v2(t,e){return t[e]}function _2(t){const e=[];return e.key=t,e}function E1(){var t=ut([]),e=By,r=Ry,n=v2;function s(i){var a=Array.from(t.apply(this,arguments),_2),o,l=a.length,u=-1,c;for(const f of i)for(o=0,++u;o()=>t;function E2(t,{sourceEvent:e,target:r,transform:n,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:n,enumerable:!0,configurable:!0},_:{value:s}})}function pi(t,e,r){this.k=t,this.x=e,this.y=r}pi.prototype={constructor:pi,scale:function(t){return t===1?this:new pi(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new pi(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var gm=new pi(1,0,0);pi.prototype;function Vf(t){t.stopImmediatePropagation()}function Aa(t){t.preventDefault(),t.stopImmediatePropagation()}function S2(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function x2(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function $y(){return this.__zoom||gm}function T2(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function A2(){return navigator.maxTouchPoints||"ontouchstart"in this}function C2(t,e,r){var n=t.invertX(e[0][0])-r[0][0],s=t.invertX(e[1][0])-r[1][0],i=t.invertY(e[0][1])-r[0][1],a=t.invertY(e[1][1])-r[1][1];return t.translate(s>n?(n+s)/2:Math.min(0,n)||Math.max(0,s),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function I2(){var t=S2,e=x2,r=C2,n=T2,s=A2,i=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],o=250,l=dk,u=Xg("start","zoom","end"),c,f,d,p=500,g=150,b=0,v=10;function w($){$.property("__zoom",$y).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",j).on("dblclick.zoom",R).filter(s).on("touchstart.zoom",U).on("touchmove.zoom",I).on("touchend.zoom touchcancel.zoom",M).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function($,Z,ne,re){var N=$.selection?$.selection():$;N.property("__zoom",$y),$!==N?T($,Z,ne,re):N.interrupt().each(function(){A(this,arguments).event(re).start().zoom(null,typeof Z=="function"?Z.apply(this,arguments):Z).end()})},w.scaleBy=function($,Z,ne,re){w.scaleTo($,function(){var N=this.__zoom.k,fe=typeof Z=="function"?Z.apply(this,arguments):Z;return N*fe},ne,re)},w.scaleTo=function($,Z,ne,re){w.transform($,function(){var N=e.apply(this,arguments),fe=this.__zoom,G=ne==null?x(N):typeof ne=="function"?ne.apply(this,arguments):ne,pe=fe.invert(G),F=typeof Z=="function"?Z.apply(this,arguments):Z;return r(y(_(fe,F),G,pe),N,a)},ne,re)},w.translateBy=function($,Z,ne,re){w.transform($,function(){return r(this.__zoom.translate(typeof Z=="function"?Z.apply(this,arguments):Z,typeof ne=="function"?ne.apply(this,arguments):ne),e.apply(this,arguments),a)},null,re)},w.translateTo=function($,Z,ne,re,N){w.transform($,function(){var fe=e.apply(this,arguments),G=this.__zoom,pe=re==null?x(fe):typeof re=="function"?re.apply(this,arguments):re;return r(gm.translate(pe[0],pe[1]).scale(G.k).translate(typeof Z=="function"?-Z.apply(this,arguments):-Z,typeof ne=="function"?-ne.apply(this,arguments):-ne),fe,a)},re,N)};function _($,Z){return Z=Math.max(i[0],Math.min(i[1],Z)),Z===$.k?$:new pi(Z,$.x,$.y)}function y($,Z,ne){var re=Z[0]-ne[0]*$.k,N=Z[1]-ne[1]*$.k;return re===$.x&&N===$.y?$:new pi($.k,re,N)}function x($){return[(+$[0][0]+ +$[1][0])/2,(+$[0][1]+ +$[1][1])/2]}function T($,Z,ne,re){$.on("start.zoom",function(){A(this,arguments).event(re).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(re).end()}).tween("zoom",function(){var N=this,fe=arguments,G=A(N,fe).event(re),pe=e.apply(N,fe),F=ne==null?x(pe):typeof ne=="function"?ne.apply(N,fe):ne,de=Math.max(pe[1][0]-pe[0][0],pe[1][1]-pe[0][1]),Se=N.__zoom,ee=typeof Z=="function"?Z.apply(N,fe):Z,K=l(Se.invert(F).concat(de/Se.k),ee.invert(F).concat(de/ee.k));return function(W){if(W===1)W=ee;else{var D=K(W),X=de/D[2];W=new pi(X,F[0]-D[0]*X,F[1]-D[1]*X)}G.zoom(null,W)}})}function A($,Z,ne){return!ne&&$.__zooming||new C($,Z)}function C($,Z){this.that=$,this.args=Z,this.active=0,this.sourceEvent=null,this.extent=e.apply($,Z),this.taps=0}C.prototype={event:function($){return $&&(this.sourceEvent=$),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function($,Z){return this.mouse&&$!=="mouse"&&(this.mouse[1]=Z.invert(this.mouse[0])),this.touch0&&$!=="touch"&&(this.touch0[1]=Z.invert(this.touch0[0])),this.touch1&&$!=="touch"&&(this.touch1[1]=Z.invert(this.touch1[0])),this.that.__zoom=Z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function($){var Z=Ct(this.that).datum();u.call($,this.that,new E2($,{sourceEvent:this.sourceEvent,target:w,type:$,transform:this.that.__zoom,dispatch:u}),Z)}};function L($,...Z){if(!t.apply(this,arguments))return;var ne=A(this,Z).event($),re=this.__zoom,N=Math.max(i[0],Math.min(i[1],re.k*Math.pow(2,n.apply(this,arguments)))),fe=bs($);if(ne.wheel)(ne.mouse[0][0]!==fe[0]||ne.mouse[0][1]!==fe[1])&&(ne.mouse[1]=re.invert(ne.mouse[0]=fe)),clearTimeout(ne.wheel);else{if(re.k===N)return;ne.mouse=[fe,re.invert(fe)],Lu(this),ne.start()}Aa($),ne.wheel=setTimeout(G,g),ne.zoom("mouse",r(y(_(re,N),ne.mouse[0],ne.mouse[1]),ne.extent,a));function G(){ne.wheel=null,ne.end()}}function j($,...Z){if(d||!t.apply(this,arguments))return;var ne=$.currentTarget,re=A(this,Z,!0).event($),N=Ct($.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",de,!0),fe=bs($,ne),G=$.clientX,pe=$.clientY;RM($.view),Vf($),re.mouse=[fe,this.__zoom.invert(fe)],Lu(this),re.start();function F(Se){if(Aa(Se),!re.moved){var ee=Se.clientX-G,K=Se.clientY-pe;re.moved=ee*ee+K*K>b}re.event(Se).zoom("mouse",r(y(re.that.__zoom,re.mouse[0]=bs(Se,ne),re.mouse[1]),re.extent,a))}function de(Se){N.on("mousemove.zoom mouseup.zoom",null),BM(Se.view,re.moved),Aa(Se),re.event(Se).end()}}function R($,...Z){if(t.apply(this,arguments)){var ne=this.__zoom,re=bs($.changedTouches?$.changedTouches[0]:$,this),N=ne.invert(re),fe=ne.k*($.shiftKey?.5:2),G=r(y(_(ne,fe),re,N),e.apply(this,Z),a);Aa($),o>0?Ct(this).transition().duration(o).call(T,G,re,$):Ct(this).call(w.transform,G,re,$)}}function U($,...Z){if(t.apply(this,arguments)){var ne=$.touches,re=ne.length,N=A(this,Z,$.changedTouches.length===re).event($),fe,G,pe,F;for(Vf($),G=0;G(t.instant_charging="instant_charging",t.pv_charging="pv_charging",t.scheduled_charging="scheduled_charging",t.eco_charging="eco_charging",t.stop="stop",t))(Hr||{}),pt=(t=>(t.counter="counter",t.inverter="inverter",t.pvSummary="pvSummary",t.battery="battery",t.batterySummary="batterySummary",t.chargepoint="chargepoint",t.chargeSummary="chargeSummary",t.device="device",t.deviceSummary="deviceSummary",t.house="house",t))(pt||{});class S1{constructor(e){ve(this,"id");ve(this,"name","Wechselrichter");ve(this,"type","inverter");ve(this,"color","var(--color-pv)");ve(this,"power",0);ve(this,"energy",0);ve(this,"energy_month",0);ve(this,"energy_year",0);ve(this,"energy_total",0);ve(this,"energyPv",0);ve(this,"energyBat",0);ve(this,"pvPercentage",0);ve(this,"icon","");ve(this,"showInGraph",!0);this.id=e}}const M2=[["EV","ev_mode"],["Speicher","bat_mode"],["MinSoc","min_soc_bat_mode"]];class k2{constructor(e){ve(this,"id");ve(this,"name","Gerät");ve(this,"type",pt.device);ve(this,"power",0);ve(this,"status","off");ve(this,"energy",0);ve(this,"runningTime",0);ve(this,"configured",!1);ve(this,"_showInGraph",!0);ve(this,"color","white");ve(this,"canSwitch",!1);ve(this,"countAsHouse",!1);ve(this,"energyPv",0);ve(this,"energyBat",0);ve(this,"pvPercentage",0);ve(this,"tempConfigured",0);ve(this,"temp",[300,300,300]);ve(this,"on",!1);ve(this,"isAutomatic",!0);ve(this,"icon","");this.id=e}get showInGraph(){return this._showInGraph}set showInGraph(e){this._showInGraph=e,qe.items["sh"+this.id].showInGraph=e,Et()}setShowInGraph(e){this._showInGraph=e}}const St=Dt(new Map);function mm(t){St.has(t)?console.info("Duplicate sh device message: "+t):(St.set(t,new k2(t)),St.get(t).color="var(--color-sh"+St.size+")")}var bm=Object.defineProperty,P2=Object.getOwnPropertyDescriptor,O2=Object.getOwnPropertyNames,L2=Object.prototype.hasOwnProperty,cr=(t,e)=>()=>(t&&(e=t(t=0)),e),Ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),no=(t,e)=>{for(var r in e)bm(t,r,{get:e[r],enumerable:!0})},R2=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of O2(e))!L2.call(t,s)&&s!==r&&bm(t,s,{get:()=>e[s],enumerable:!(n=P2(e,s))||n.enumerable});return t},It=t=>R2(bm({},"__esModule",{value:!0}),t),Pe=cr(()=>{}),vt={};no(vt,{_debugEnd:()=>xp,_debugProcess:()=>Sp,_events:()=>Up,_eventsCount:()=>Fp,_exiting:()=>up,_fatalExceptions:()=>vp,_getActiveHandles:()=>k1,_getActiveRequests:()=>M1,_kill:()=>dp,_linkedBinding:()=>C1,_maxListeners:()=>Dp,_preload_modules:()=>$p,_rawDebug:()=>op,_startProfilerIdleNotifier:()=>Tp,_stopProfilerIdleNotifier:()=>Ap,_tickCallback:()=>Ep,abort:()=>kp,addListener:()=>Vp,allowedNodeEnvironmentFlags:()=>yp,arch:()=>Gh,argv:()=>Xh,argv0:()=>Bp,assert:()=>P1,binding:()=>tp,chdir:()=>ip,config:()=>cp,cpuUsage:()=>ja,cwd:()=>np,debugPort:()=>Rp,default:()=>wm,dlopen:()=>I1,domain:()=>lp,emit:()=>qp,emitWarning:()=>ep,env:()=>Kh,execArgv:()=>Qh,execPath:()=>Lp,exit:()=>mp,features:()=>wp,hasUncaughtExceptionCaptureCallback:()=>O1,hrtime:()=>Bu,kill:()=>gp,listeners:()=>R1,memoryUsage:()=>pp,moduleLoadList:()=>ap,nextTick:()=>T1,off:()=>Wp,on:()=>ri,once:()=>jp,openStdin:()=>bp,pid:()=>Pp,platform:()=>Yh,ppid:()=>Op,prependListener:()=>Gp,prependOnceListener:()=>Yp,reallyExit:()=>fp,release:()=>sp,removeAllListeners:()=>Hp,removeListener:()=>zp,resourceUsage:()=>hp,setSourceMapsEnabled:()=>Np,setUncaughtExceptionCaptureCallback:()=>_p,stderr:()=>Ip,stdin:()=>Mp,stdout:()=>Cp,title:()=>qh,umask:()=>rp,uptime:()=>L1,version:()=>Jh,versions:()=>Zh});function ym(t){throw new Error("Node.js process "+t+" is not supported by JSPM core outside of Node.js")}function B2(){!Us||!Os||(Us=!1,Os.length?Dn=Os.concat(Dn):tl=-1,Dn.length&&x1())}function x1(){if(!Us){var t=setTimeout(B2,0);Us=!0;for(var e=Dn.length;e;){for(Os=Dn,Dn=[];++tl1)for(var r=1;r{Pe(),Le(),Oe(),Dn=[],Us=!1,tl=-1,A1.prototype.run=function(){this.fun.apply(null,this.array)},qh="browser",Gh="x64",Yh="browser",Kh={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Xh=["/usr/bin/node"],Qh=[],Jh="v16.8.0",Zh={},ep=function(t,e){console.warn((e?e+": ":"")+t)},tp=function(t){ym("binding")},rp=function(t){return 0},np=function(){return"/"},ip=function(t){},sp={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},op=gr,ap=[],lp={},up=!1,cp={},fp=gr,dp=gr,ja=function(){return{}},hp=ja,pp=ja,gp=gr,mp=gr,bp=gr,yp={},wp={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},vp=gr,_p=gr,Ep=gr,Sp=gr,xp=gr,Tp=gr,Ap=gr,Cp=void 0,Ip=void 0,Mp=void 0,kp=gr,Pp=2,Op=1,Lp="/bin/usr/node",Rp=9229,Bp="node",$p=[],Np=gr,ai={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},ai.now===void 0&&(jf=Date.now(),ai.timing&&ai.timing.navigationStart&&(jf=ai.timing.navigationStart),ai.now=()=>Date.now()-jf),$u=1e9,Bu.bigint=function(t){var e=Bu(t);return typeof BigInt>"u"?e[0]*$u+e[1]:BigInt(e[0]*$u)+BigInt(e[1])},Dp=10,Up={},Fp=0,Vp=ri,jp=ri,Wp=ri,zp=ri,Hp=ri,qp=gr,Gp=ri,Yp=ri,wm={version:Jh,versions:Zh,arch:Gh,platform:Yh,release:sp,_rawDebug:op,moduleLoadList:ap,binding:tp,_linkedBinding:C1,_events:Up,_eventsCount:Fp,_maxListeners:Dp,on:ri,addListener:Vp,once:jp,off:Wp,removeListener:zp,removeAllListeners:Hp,emit:qp,prependListener:Gp,prependOnceListener:Yp,listeners:R1,domain:lp,_exiting:up,config:cp,dlopen:I1,uptime:L1,_getActiveRequests:M1,_getActiveHandles:k1,reallyExit:fp,_kill:dp,cpuUsage:ja,resourceUsage:hp,memoryUsage:pp,kill:gp,exit:mp,openStdin:bp,allowedNodeEnvironmentFlags:yp,assert:P1,features:wp,_fatalExceptions:vp,setUncaughtExceptionCaptureCallback:_p,hasUncaughtExceptionCaptureCallback:O1,emitWarning:ep,nextTick:T1,_tickCallback:Ep,_debugProcess:Sp,_debugEnd:xp,_startProfilerIdleNotifier:Tp,_stopProfilerIdleNotifier:Ap,stdout:Cp,stdin:Mp,stderr:Ip,abort:kp,umask:rp,chdir:ip,cwd:np,env:Kh,title:qh,argv:Xh,execArgv:Qh,pid:Pp,ppid:Op,execPath:Lp,debugPort:Rp,hrtime:Bu,argv0:Bp,_preload_modules:$p,setSourceMapsEnabled:Np}}),Oe=cr(()=>{$2()}),fr={};no(fr,{Buffer:()=>bc,INSPECT_MAX_BYTES:()=>B1,default:()=>ni,kMaxLength:()=>$1});function N2(){if(Kp)return Eo;Kp=!0,Eo.byteLength=o,Eo.toByteArray=u,Eo.fromByteArray=d;for(var t=[],e=[],r=typeof Uint8Array<"u"?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,i=n.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var b=p.indexOf("=");b===-1&&(b=g);var v=b===g?0:4-b%4;return[b,v]}function o(p){var g=a(p),b=g[0],v=g[1];return(b+v)*3/4-v}function l(p,g,b){return(g+b)*3/4-b}function u(p){var g,b=a(p),v=b[0],w=b[1],_=new r(l(p,v,w)),y=0,x=w>0?v-4:v,T;for(T=0;T>16&255,_[y++]=g>>8&255,_[y++]=g&255;return w===2&&(g=e[p.charCodeAt(T)]<<2|e[p.charCodeAt(T+1)]>>4,_[y++]=g&255),w===1&&(g=e[p.charCodeAt(T)]<<10|e[p.charCodeAt(T+1)]<<4|e[p.charCodeAt(T+2)]>>2,_[y++]=g>>8&255,_[y++]=g&255),_}function c(p){return t[p>>18&63]+t[p>>12&63]+t[p>>6&63]+t[p&63]}function f(p,g,b){for(var v,w=[],_=g;_x?x:y+_));return v===1?(g=p[b-1],w.push(t[g>>2]+t[g<<4&63]+"==")):v===2&&(g=(p[b-2]<<8)+p[b-1],w.push(t[g>>10]+t[g>>4&63]+t[g<<2&63]+"=")),w.join("")}return Eo}function D2(){return Xp?Wa:(Xp=!0,Wa.read=function(t,e,r,n,s){var i,a,o=s*8-n-1,l=(1<>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=i*256+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:(p?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-u}return(p?-1:1)*a*Math.pow(2,i-n)},Wa.write=function(t,e,r,n,s,i){var a,o,l,u=i*8-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,g=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=o&255,p+=g,o/=256,s-=8);for(a=a<0;t[r+p]=a&255,p+=g,a/=256,u-=8);t[r+p-g]|=b*128},Wa)}function U2(){if(Qp)return Di;Qp=!0;let t=N2(),e=D2(),r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Di.Buffer=a,Di.SlowBuffer=w,Di.INSPECT_MAX_BYTES=50;let n=2147483647;Di.kMaxLength=n,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{let S=new Uint8Array(1),m={foo:function(){return 42}};return Object.setPrototypeOf(m,Uint8Array.prototype),Object.setPrototypeOf(S,m),S.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function i(S){if(S>n)throw new RangeError('The value "'+S+'" is invalid for option "size"');let m=new Uint8Array(S);return Object.setPrototypeOf(m,a.prototype),m}function a(S,m,h){if(typeof S=="number"){if(typeof m=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(S)}return o(S,m,h)}a.poolSize=8192;function o(S,m,h){if(typeof S=="string")return f(S,m);if(ArrayBuffer.isView(S))return p(S);if(S==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof S);if(ie(S,ArrayBuffer)||S&&ie(S.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ie(S,SharedArrayBuffer)||S&&ie(S.buffer,SharedArrayBuffer)))return g(S,m,h);if(typeof S=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let E=S.valueOf&&S.valueOf();if(E!=null&&E!==S)return a.from(E,m,h);let O=b(S);if(O)return O;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof S[Symbol.toPrimitive]=="function")return a.from(S[Symbol.toPrimitive]("string"),m,h);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof S)}a.from=function(S,m,h){return o(S,m,h)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(S){if(typeof S!="number")throw new TypeError('"size" argument must be of type number');if(S<0)throw new RangeError('The value "'+S+'" is invalid for option "size"')}function u(S,m,h){return l(S),S<=0?i(S):m!==void 0?typeof h=="string"?i(S).fill(m,h):i(S).fill(m):i(S)}a.alloc=function(S,m,h){return u(S,m,h)};function c(S){return l(S),i(S<0?0:v(S)|0)}a.allocUnsafe=function(S){return c(S)},a.allocUnsafeSlow=function(S){return c(S)};function f(S,m){if((typeof m!="string"||m==="")&&(m="utf8"),!a.isEncoding(m))throw new TypeError("Unknown encoding: "+m);let h=_(S,m)|0,E=i(h),O=E.write(S,m);return O!==h&&(E=E.slice(0,O)),E}function d(S){let m=S.length<0?0:v(S.length)|0,h=i(m);for(let E=0;E=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return S|0}function w(S){return+S!=S&&(S=0),a.alloc(+S)}a.isBuffer=function(S){return S!=null&&S._isBuffer===!0&&S!==a.prototype},a.compare=function(S,m){if(ie(S,Uint8Array)&&(S=a.from(S,S.offset,S.byteLength)),ie(m,Uint8Array)&&(m=a.from(m,m.offset,m.byteLength)),!a.isBuffer(S)||!a.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(S===m)return 0;let h=S.length,E=m.length;for(let O=0,te=Math.min(h,E);OE.length?(a.isBuffer(te)||(te=a.from(te)),te.copy(E,O)):Uint8Array.prototype.set.call(E,te,O);else if(a.isBuffer(te))te.copy(E,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=te.length}return E};function _(S,m){if(a.isBuffer(S))return S.length;if(ArrayBuffer.isView(S)||ie(S,ArrayBuffer))return S.byteLength;if(typeof S!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof S);let h=S.length,E=arguments.length>2&&arguments[2]===!0;if(!E&&h===0)return 0;let O=!1;for(;;)switch(m){case"ascii":case"latin1":case"binary":return h;case"utf8":case"utf-8":return H(S).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return h*2;case"hex":return h>>>1;case"base64":return J(S).length;default:if(O)return E?-1:H(S).length;m=(""+m).toLowerCase(),O=!0}}a.byteLength=_;function y(S,m,h){let E=!1;if((m===void 0||m<0)&&(m=0),m>this.length||((h===void 0||h>this.length)&&(h=this.length),h<=0)||(h>>>=0,m>>>=0,h<=m))return"";for(S||(S="utf8");;)switch(S){case"hex":return N(this,m,h);case"utf8":case"utf-8":return M(this,m,h);case"ascii":return ne(this,m,h);case"latin1":case"binary":return re(this,m,h);case"base64":return I(this,m,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return fe(this,m,h);default:if(E)throw new TypeError("Unknown encoding: "+S);S=(S+"").toLowerCase(),E=!0}}a.prototype._isBuffer=!0;function x(S,m,h){let E=S[m];S[m]=S[h],S[h]=E}a.prototype.swap16=function(){let S=this.length;if(S%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;mm&&(S+=" ... "),""},r&&(a.prototype[r]=a.prototype.inspect),a.prototype.compare=function(S,m,h,E,O){if(ie(S,Uint8Array)&&(S=a.from(S,S.offset,S.byteLength)),!a.isBuffer(S))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof S);if(m===void 0&&(m=0),h===void 0&&(h=S?S.length:0),E===void 0&&(E=0),O===void 0&&(O=this.length),m<0||h>S.length||E<0||O>this.length)throw new RangeError("out of range index");if(E>=O&&m>=h)return 0;if(E>=O)return-1;if(m>=h)return 1;if(m>>>=0,h>>>=0,E>>>=0,O>>>=0,this===S)return 0;let te=O-E,he=h-m,Ce=Math.min(te,he),Ue=this.slice(E,O),We=S.slice(m,h);for(let De=0;De2147483647?h=2147483647:h<-2147483648&&(h=-2147483648),h=+h,Q(h)&&(h=O?0:S.length-1),h<0&&(h=S.length+h),h>=S.length){if(O)return-1;h=S.length-1}else if(h<0)if(O)h=0;else return-1;if(typeof m=="string"&&(m=a.from(m,E)),a.isBuffer(m))return m.length===0?-1:A(S,m,h,E,O);if(typeof m=="number")return m=m&255,typeof Uint8Array.prototype.indexOf=="function"?O?Uint8Array.prototype.indexOf.call(S,m,h):Uint8Array.prototype.lastIndexOf.call(S,m,h):A(S,[m],h,E,O);throw new TypeError("val must be string, number or Buffer")}function A(S,m,h,E,O){let te=1,he=S.length,Ce=m.length;if(E!==void 0&&(E=String(E).toLowerCase(),E==="ucs2"||E==="ucs-2"||E==="utf16le"||E==="utf-16le")){if(S.length<2||m.length<2)return-1;te=2,he/=2,Ce/=2,h/=2}function Ue(De,He){return te===1?De[He]:De.readUInt16BE(He*te)}let We;if(O){let De=-1;for(We=h;Wehe&&(h=he-Ce),We=h;We>=0;We--){let De=!0;for(let He=0;HeO&&(E=O)):E=O;let te=m.length;E>te/2&&(E=te/2);let he;for(he=0;he>>0,isFinite(h)?(h=h>>>0,E===void 0&&(E="utf8")):(E=h,h=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let O=this.length-m;if((h===void 0||h>O)&&(h=O),S.length>0&&(h<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");E||(E="utf8");let te=!1;for(;;)switch(E){case"hex":return C(this,S,m,h);case"utf8":case"utf-8":return L(this,S,m,h);case"ascii":case"latin1":case"binary":return j(this,S,m,h);case"base64":return R(this,S,m,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,S,m,h);default:if(te)throw new TypeError("Unknown encoding: "+E);E=(""+E).toLowerCase(),te=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(S,m,h){return m===0&&h===S.length?t.fromByteArray(S):t.fromByteArray(S.slice(m,h))}function M(S,m,h){h=Math.min(S.length,h);let E=[],O=m;for(;O239?4:te>223?3:te>191?2:1;if(O+Ce<=h){let Ue,We,De,He;switch(Ce){case 1:te<128&&(he=te);break;case 2:Ue=S[O+1],(Ue&192)===128&&(He=(te&31)<<6|Ue&63,He>127&&(he=He));break;case 3:Ue=S[O+1],We=S[O+2],(Ue&192)===128&&(We&192)===128&&(He=(te&15)<<12|(Ue&63)<<6|We&63,He>2047&&(He<55296||He>57343)&&(he=He));break;case 4:Ue=S[O+1],We=S[O+2],De=S[O+3],(Ue&192)===128&&(We&192)===128&&(De&192)===128&&(He=(te&15)<<18|(Ue&63)<<12|(We&63)<<6|De&63,He>65535&&He<1114112&&(he=He))}}he===null?(he=65533,Ce=1):he>65535&&(he-=65536,E.push(he>>>10&1023|55296),he=56320|he&1023),E.push(he),O+=Ce}return Z(E)}let $=4096;function Z(S){let m=S.length;if(m<=$)return String.fromCharCode.apply(String,S);let h="",E=0;for(;EE)&&(h=E);let O="";for(let te=m;teh&&(S=h),m<0?(m+=h,m<0&&(m=0)):m>h&&(m=h),mh)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(S,m,h){S=S>>>0,m=m>>>0,h||G(S,m,this.length);let E=this[S],O=1,te=0;for(;++te>>0,m=m>>>0,h||G(S,m,this.length);let E=this[S+--m],O=1;for(;m>0&&(O*=256);)E+=this[S+--m]*O;return E},a.prototype.readUint8=a.prototype.readUInt8=function(S,m){return S=S>>>0,m||G(S,1,this.length),this[S]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(S,m){return S=S>>>0,m||G(S,2,this.length),this[S]|this[S+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(S,m){return S=S>>>0,m||G(S,2,this.length),this[S]<<8|this[S+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(S,m){return S=S>>>0,m||G(S,4,this.length),(this[S]|this[S+1]<<8|this[S+2]<<16)+this[S+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(S,m){return S=S>>>0,m||G(S,4,this.length),this[S]*16777216+(this[S+1]<<16|this[S+2]<<8|this[S+3])},a.prototype.readBigUInt64LE=me(function(S){S=S>>>0,k(S,"offset");let m=this[S],h=this[S+7];(m===void 0||h===void 0)&&P(S,this.length-8);let E=m+this[++S]*2**8+this[++S]*2**16+this[++S]*2**24,O=this[++S]+this[++S]*2**8+this[++S]*2**16+h*2**24;return BigInt(E)+(BigInt(O)<>>0,k(S,"offset");let m=this[S],h=this[S+7];(m===void 0||h===void 0)&&P(S,this.length-8);let E=m*2**24+this[++S]*2**16+this[++S]*2**8+this[++S],O=this[++S]*2**24+this[++S]*2**16+this[++S]*2**8+h;return(BigInt(E)<>>0,m=m>>>0,h||G(S,m,this.length);let E=this[S],O=1,te=0;for(;++te=O&&(E-=Math.pow(2,8*m)),E},a.prototype.readIntBE=function(S,m,h){S=S>>>0,m=m>>>0,h||G(S,m,this.length);let E=m,O=1,te=this[S+--E];for(;E>0&&(O*=256);)te+=this[S+--E]*O;return O*=128,te>=O&&(te-=Math.pow(2,8*m)),te},a.prototype.readInt8=function(S,m){return S=S>>>0,m||G(S,1,this.length),this[S]&128?(255-this[S]+1)*-1:this[S]},a.prototype.readInt16LE=function(S,m){S=S>>>0,m||G(S,2,this.length);let h=this[S]|this[S+1]<<8;return h&32768?h|4294901760:h},a.prototype.readInt16BE=function(S,m){S=S>>>0,m||G(S,2,this.length);let h=this[S+1]|this[S]<<8;return h&32768?h|4294901760:h},a.prototype.readInt32LE=function(S,m){return S=S>>>0,m||G(S,4,this.length),this[S]|this[S+1]<<8|this[S+2]<<16|this[S+3]<<24},a.prototype.readInt32BE=function(S,m){return S=S>>>0,m||G(S,4,this.length),this[S]<<24|this[S+1]<<16|this[S+2]<<8|this[S+3]},a.prototype.readBigInt64LE=me(function(S){S=S>>>0,k(S,"offset");let m=this[S],h=this[S+7];(m===void 0||h===void 0)&&P(S,this.length-8);let E=this[S+4]+this[S+5]*2**8+this[S+6]*2**16+(h<<24);return(BigInt(E)<>>0,k(S,"offset");let m=this[S],h=this[S+7];(m===void 0||h===void 0)&&P(S,this.length-8);let E=(m<<24)+this[++S]*2**16+this[++S]*2**8+this[++S];return(BigInt(E)<>>0,m||G(S,4,this.length),e.read(this,S,!0,23,4)},a.prototype.readFloatBE=function(S,m){return S=S>>>0,m||G(S,4,this.length),e.read(this,S,!1,23,4)},a.prototype.readDoubleLE=function(S,m){return S=S>>>0,m||G(S,8,this.length),e.read(this,S,!0,52,8)},a.prototype.readDoubleBE=function(S,m){return S=S>>>0,m||G(S,8,this.length),e.read(this,S,!1,52,8)};function pe(S,m,h,E,O,te){if(!a.isBuffer(S))throw new TypeError('"buffer" argument must be a Buffer instance');if(m>O||mS.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(S,m,h,E){if(S=+S,m=m>>>0,h=h>>>0,!E){let he=Math.pow(2,8*h)-1;pe(this,S,m,h,he,0)}let O=1,te=0;for(this[m]=S&255;++te>>0,h=h>>>0,!E){let he=Math.pow(2,8*h)-1;pe(this,S,m,h,he,0)}let O=h-1,te=1;for(this[m+O]=S&255;--O>=0&&(te*=256);)this[m+O]=S/te&255;return m+h},a.prototype.writeUint8=a.prototype.writeUInt8=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,1,255,0),this[m]=S&255,m+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,2,65535,0),this[m]=S&255,this[m+1]=S>>>8,m+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,2,65535,0),this[m]=S>>>8,this[m+1]=S&255,m+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,4,4294967295,0),this[m+3]=S>>>24,this[m+2]=S>>>16,this[m+1]=S>>>8,this[m]=S&255,m+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,4,4294967295,0),this[m]=S>>>24,this[m+1]=S>>>16,this[m+2]=S>>>8,this[m+3]=S&255,m+4};function F(S,m,h,E,O){le(m,E,O,S,h,7);let te=Number(m&BigInt(4294967295));S[h++]=te,te=te>>8,S[h++]=te,te=te>>8,S[h++]=te,te=te>>8,S[h++]=te;let he=Number(m>>BigInt(32)&BigInt(4294967295));return S[h++]=he,he=he>>8,S[h++]=he,he=he>>8,S[h++]=he,he=he>>8,S[h++]=he,h}function de(S,m,h,E,O){le(m,E,O,S,h,7);let te=Number(m&BigInt(4294967295));S[h+7]=te,te=te>>8,S[h+6]=te,te=te>>8,S[h+5]=te,te=te>>8,S[h+4]=te;let he=Number(m>>BigInt(32)&BigInt(4294967295));return S[h+3]=he,he=he>>8,S[h+2]=he,he=he>>8,S[h+1]=he,he=he>>8,S[h]=he,h+8}a.prototype.writeBigUInt64LE=me(function(S,m=0){return F(this,S,m,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=me(function(S,m=0){return de(this,S,m,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(S,m,h,E){if(S=+S,m=m>>>0,!E){let Ce=Math.pow(2,8*h-1);pe(this,S,m,h,Ce-1,-Ce)}let O=0,te=1,he=0;for(this[m]=S&255;++O>0)-he&255;return m+h},a.prototype.writeIntBE=function(S,m,h,E){if(S=+S,m=m>>>0,!E){let Ce=Math.pow(2,8*h-1);pe(this,S,m,h,Ce-1,-Ce)}let O=h-1,te=1,he=0;for(this[m+O]=S&255;--O>=0&&(te*=256);)S<0&&he===0&&this[m+O+1]!==0&&(he=1),this[m+O]=(S/te>>0)-he&255;return m+h},a.prototype.writeInt8=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,1,127,-128),S<0&&(S=255+S+1),this[m]=S&255,m+1},a.prototype.writeInt16LE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,2,32767,-32768),this[m]=S&255,this[m+1]=S>>>8,m+2},a.prototype.writeInt16BE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,2,32767,-32768),this[m]=S>>>8,this[m+1]=S&255,m+2},a.prototype.writeInt32LE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,4,2147483647,-2147483648),this[m]=S&255,this[m+1]=S>>>8,this[m+2]=S>>>16,this[m+3]=S>>>24,m+4},a.prototype.writeInt32BE=function(S,m,h){return S=+S,m=m>>>0,h||pe(this,S,m,4,2147483647,-2147483648),S<0&&(S=4294967295+S+1),this[m]=S>>>24,this[m+1]=S>>>16,this[m+2]=S>>>8,this[m+3]=S&255,m+4},a.prototype.writeBigInt64LE=me(function(S,m=0){return F(this,S,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=me(function(S,m=0){return de(this,S,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Se(S,m,h,E,O,te){if(h+E>S.length)throw new RangeError("Index out of range");if(h<0)throw new RangeError("Index out of range")}function ee(S,m,h,E,O){return m=+m,h=h>>>0,O||Se(S,m,h,4),e.write(S,m,h,E,23,4),h+4}a.prototype.writeFloatLE=function(S,m,h){return ee(this,S,m,!0,h)},a.prototype.writeFloatBE=function(S,m,h){return ee(this,S,m,!1,h)};function K(S,m,h,E,O){return m=+m,h=h>>>0,O||Se(S,m,h,8),e.write(S,m,h,E,52,8),h+8}a.prototype.writeDoubleLE=function(S,m,h){return K(this,S,m,!0,h)},a.prototype.writeDoubleBE=function(S,m,h){return K(this,S,m,!1,h)},a.prototype.copy=function(S,m,h,E){if(!a.isBuffer(S))throw new TypeError("argument should be a Buffer");if(h||(h=0),!E&&E!==0&&(E=this.length),m>=S.length&&(m=S.length),m||(m=0),E>0&&E=this.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("sourceEnd out of bounds");E>this.length&&(E=this.length),S.length-m>>0,h=h===void 0?this.length:h>>>0,S||(S=0);let O;if(typeof S=="number")for(O=m;O2**32?O=X(String(h)):typeof h=="bigint"&&(O=String(h),(h>BigInt(2)**BigInt(32)||h<-(BigInt(2)**BigInt(32)))&&(O=X(O)),O+="n"),E+=` It must be ${m}. Received ${O}`,E},RangeError);function X(S){let m="",h=S.length,E=S[0]==="-"?1:0;for(;h>=E+4;h-=3)m=`_${S.slice(h-3,h)}${m}`;return`${S.slice(0,h)}${m}`}function ce(S,m,h){k(m,"offset"),(S[m]===void 0||S[m+h]===void 0)&&P(m,S.length-(h+1))}function le(S,m,h,E,O,te){if(S>h||S= 0${he} and < 2${he} ** ${(te+1)*8}${he}`:Ce=`>= -(2${he} ** ${(te+1)*8-1}${he}) and < 2 ** ${(te+1)*8-1}${he}`,new W.ERR_OUT_OF_RANGE("value",Ce,S)}ce(E,O,te)}function k(S,m){if(typeof S!="number")throw new W.ERR_INVALID_ARG_TYPE(m,"number",S)}function P(S,m,h){throw Math.floor(S)!==S?(k(S,h),new W.ERR_OUT_OF_RANGE("offset","an integer",S)):m<0?new W.ERR_BUFFER_OUT_OF_BOUNDS:new W.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${m}`,S)}let V=/[^+/0-9A-Za-z-_]/g;function B(S){if(S=S.split("=")[0],S=S.trim().replace(V,""),S.length<2)return"";for(;S.length%4!==0;)S=S+"=";return S}function H(S,m){m=m||1/0;let h,E=S.length,O=null,te=[];for(let he=0;he55295&&h<57344){if(!O){if(h>56319){(m-=3)>-1&&te.push(239,191,189);continue}else if(he+1===E){(m-=3)>-1&&te.push(239,191,189);continue}O=h;continue}if(h<56320){(m-=3)>-1&&te.push(239,191,189),O=h;continue}h=(O-55296<<10|h-56320)+65536}else O&&(m-=3)>-1&&te.push(239,191,189);if(O=null,h<128){if((m-=1)<0)break;te.push(h)}else if(h<2048){if((m-=2)<0)break;te.push(h>>6|192,h&63|128)}else if(h<65536){if((m-=3)<0)break;te.push(h>>12|224,h>>6&63|128,h&63|128)}else if(h<1114112){if((m-=4)<0)break;te.push(h>>18|240,h>>12&63|128,h>>6&63|128,h&63|128)}else throw new Error("Invalid code point")}return te}function q(S){let m=[];for(let h=0;h>8,O=h%256,te.push(O),te.push(E);return te}function J(S){return t.toByteArray(B(S))}function Y(S,m,h,E){let O;for(O=0;O=m.length||O>=S.length);++O)m[O+h]=S[O];return O}function ie(S,m){return S instanceof m||S!=null&&S.constructor!=null&&S.constructor.name!=null&&S.constructor.name===m.name}function Q(S){return S!==S}let oe=function(){let S="0123456789abcdef",m=new Array(256);for(let h=0;h<16;++h){let E=h*16;for(let O=0;O<16;++O)m[E+O]=S[h]+S[O]}return m}();function me(S){return typeof BigInt>"u"?Te:S}function Te(){throw new Error("BigInt not supported")}return Di}var Eo,Kp,Wa,Xp,Di,Qp,ni,bc,B1,$1,dr=cr(()=>{Pe(),Le(),Oe(),Eo={},Kp=!1,Wa={},Xp=!1,Di={},Qp=!1,ni=U2(),ni.Buffer,ni.SlowBuffer,ni.INSPECT_MAX_BYTES,ni.kMaxLength,bc=ni.Buffer,B1=ni.INSPECT_MAX_BYTES,$1=ni.kMaxLength}),Le=cr(()=>{dr()}),F2=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=class{constructor(r){this.aliasToTopic={},this.max=r}put(r,n){return n===0||n>this.max?!1:(this.aliasToTopic[n]=r,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(r){return this.aliasToTopic[r]}clear(){this.aliasToTopic={}}};t.default=e}),Zt=Ne((t,e)=>{Pe(),Le(),Oe(),e.exports={ArrayIsArray(r){return Array.isArray(r)},ArrayPrototypeIncludes(r,n){return r.includes(n)},ArrayPrototypeIndexOf(r,n){return r.indexOf(n)},ArrayPrototypeJoin(r,n){return r.join(n)},ArrayPrototypeMap(r,n){return r.map(n)},ArrayPrototypePop(r,n){return r.pop(n)},ArrayPrototypePush(r,n){return r.push(n)},ArrayPrototypeSlice(r,n,s){return r.slice(n,s)},Error,FunctionPrototypeCall(r,n,...s){return r.call(n,...s)},FunctionPrototypeSymbolHasInstance(r,n){return Function.prototype[Symbol.hasInstance].call(r,n)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(r,n){return Object.defineProperties(r,n)},ObjectDefineProperty(r,n,s){return Object.defineProperty(r,n,s)},ObjectGetOwnPropertyDescriptor(r,n){return Object.getOwnPropertyDescriptor(r,n)},ObjectKeys(r){return Object.keys(r)},ObjectSetPrototypeOf(r,n){return Object.setPrototypeOf(r,n)},Promise,PromisePrototypeCatch(r,n){return r.catch(n)},PromisePrototypeThen(r,n,s){return r.then(n,s)},PromiseReject(r){return Promise.reject(r)},ReflectApply:Reflect.apply,RegExpPrototypeTest(r,n){return r.test(n)},SafeSet:Set,String,StringPrototypeSlice(r,n,s){return r.slice(n,s)},StringPrototypeToLowerCase(r){return r.toLowerCase()},StringPrototypeToUpperCase(r){return r.toUpperCase()},StringPrototypeTrim(r){return r.trim()},Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(r,n,s){return r.set(n,s)},Uint8Array}}),Ti=Ne((t,e)=>{Pe(),Le(),Oe();var r=(dr(),It(fr)),n=Object.getPrototypeOf(async function(){}).constructor,s=globalThis.Blob||r.Blob,i=typeof s<"u"?function(o){return o instanceof s}:function(o){return!1},a=class extends Error{constructor(o){if(!Array.isArray(o))throw new TypeError(`Expected input to be an Array, got ${typeof o}`);let l="";for(let u=0;u{o=u,l=c}),resolve:o,reject:l}},promisify(o){return new Promise((l,u)=>{o((c,...f)=>c?u(c):l(...f))})},debuglog(){return function(){}},format(o,...l){return o.replace(/%([sdifj])/g,function(...[u,c]){let f=l.shift();return c==="f"?f.toFixed(6):c==="j"?JSON.stringify(f):c==="s"&&typeof f=="object"?`${f.constructor!==Object?f.constructor.name:""} {}`.trim():f.toString()})},inspect(o){switch(typeof o){case"string":if(o.includes("'"))if(o.includes('"')){if(!o.includes("`")&&!o.includes("${"))return`\`${o}\``}else return`"${o}"`;return`'${o}'`;case"number":return isNaN(o)?"NaN":Object.is(o,-0)?String(o):o;case"bigint":return`${String(o)}n`;case"boolean":case"undefined":return String(o);case"object":return"{}"}},types:{isAsyncFunction(o){return o instanceof n},isArrayBufferView(o){return ArrayBuffer.isView(o)}},isBlob:i},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),vm=Ne((t,e)=>{Pe(),Le(),Oe();var{AbortController:r,AbortSignal:n}=typeof self<"u"?self:typeof window<"u"?window:void 0;e.exports=r,e.exports.AbortSignal=n,e.exports.default=r}),Dr=Ne((t,e)=>{Pe(),Le(),Oe();var{format:r,inspect:n,AggregateError:s}=Ti(),i=globalThis.AggregateError||s,a=Symbol("kIsNodeError"),o=["string","function","number","object","Function","Object","boolean","bigint","symbol"],l=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(_,y){if(!_)throw new c.ERR_INTERNAL_ASSERTION(y)}function d(_){let y="",x=_.length,T=_[0]==="-"?1:0;for(;x>=T+4;x-=3)y=`_${_.slice(x-3,x)}${y}`;return`${_.slice(0,x)}${y}`}function p(_,y,x){if(typeof y=="function")return f(y.length<=x.length,`Code: ${_}; The provided arguments length (${x.length}) does not match the required ones (${y.length}).`),y(...x);let T=(y.match(/%[dfijoOs]/g)||[]).length;return f(T===x.length,`Code: ${_}; The provided arguments length (${x.length}) does not match the required ones (${T}).`),x.length===0?y:r(y,...x)}function g(_,y,x){x||(x=Error);class T extends x{constructor(...C){super(p(_,y,C))}toString(){return`${this.name} [${_}]: ${this.message}`}}Object.defineProperties(T.prototype,{name:{value:x.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${_}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),T.prototype.code=_,T.prototype[a]=!0,c[_]=T}function b(_){let y=u+_.name;return Object.defineProperty(_,"name",{value:y}),_}function v(_,y){if(_&&y&&_!==y){if(Array.isArray(y.errors))return y.errors.push(_),y;let x=new i([y,_],y.message);return x.code=y.code,x}return _||y}var w=class extends Error{constructor(_="The operation was aborted",y=void 0){if(y!==void 0&&typeof y!="object")throw new c.ERR_INVALID_ARG_TYPE("options","Object",y);super(_,y),this.code="ABORT_ERR",this.name="AbortError"}};g("ERR_ASSERTION","%s",Error),g("ERR_INVALID_ARG_TYPE",(_,y,x)=>{f(typeof _=="string","'name' must be a string"),Array.isArray(y)||(y=[y]);let T="The ";_.endsWith(" argument")?T+=`${_} `:T+=`"${_}" ${_.includes(".")?"property":"argument"} `,T+="must be ";let A=[],C=[],L=[];for(let R of y)f(typeof R=="string","All expected entries have to be of type string"),o.includes(R)?A.push(R.toLowerCase()):l.test(R)?C.push(R):(f(R!=="object",'The value "object" should be written as "Object"'),L.push(R));if(C.length>0){let R=A.indexOf("object");R!==-1&&(A.splice(A,R,1),C.push("Object"))}if(A.length>0){switch(A.length){case 1:T+=`of type ${A[0]}`;break;case 2:T+=`one of type ${A[0]} or ${A[1]}`;break;default:{let R=A.pop();T+=`one of type ${A.join(", ")}, or ${R}`}}(C.length>0||L.length>0)&&(T+=" or ")}if(C.length>0){switch(C.length){case 1:T+=`an instance of ${C[0]}`;break;case 2:T+=`an instance of ${C[0]} or ${C[1]}`;break;default:{let R=C.pop();T+=`an instance of ${C.join(", ")}, or ${R}`}}L.length>0&&(T+=" or ")}switch(L.length){case 0:break;case 1:L[0].toLowerCase()!==L[0]&&(T+="an "),T+=`${L[0]}`;break;case 2:T+=`one of ${L[0]} or ${L[1]}`;break;default:{let R=L.pop();T+=`one of ${L.join(", ")}, or ${R}`}}if(x==null)T+=`. Received ${x}`;else if(typeof x=="function"&&x.name)T+=`. Received function ${x.name}`;else if(typeof x=="object"){var j;if((j=x.constructor)!==null&&j!==void 0&&j.name)T+=`. Received an instance of ${x.constructor.name}`;else{let R=n(x,{depth:-1});T+=`. Received ${R}`}}else{let R=n(x,{colors:!1});R.length>25&&(R=`${R.slice(0,25)}...`),T+=`. Received type ${typeof x} (${R})`}return T},TypeError),g("ERR_INVALID_ARG_VALUE",(_,y,x="is invalid")=>{let T=n(y);return T.length>128&&(T=T.slice(0,128)+"..."),`The ${_.includes(".")?"property":"argument"} '${_}' ${x}. Received ${T}`},TypeError),g("ERR_INVALID_RETURN_VALUE",(_,y,x)=>{var T;let A=x!=null&&(T=x.constructor)!==null&&T!==void 0&&T.name?`instance of ${x.constructor.name}`:`type ${typeof x}`;return`Expected ${_} to be returned from the "${y}" function but got ${A}.`},TypeError),g("ERR_MISSING_ARGS",(..._)=>{f(_.length>0,"At least one arg needs to be specified");let y,x=_.length;switch(_=(Array.isArray(_)?_:[_]).map(T=>`"${T}"`).join(" or "),x){case 1:y+=`The ${_[0]} argument`;break;case 2:y+=`The ${_[0]} and ${_[1]} arguments`;break;default:{let T=_.pop();y+=`The ${_.join(", ")}, and ${T} arguments`}break}return`${y} must be specified`},TypeError),g("ERR_OUT_OF_RANGE",(_,y,x)=>{f(y,'Missing "range" argument');let T;return Number.isInteger(x)&&Math.abs(x)>2**32?T=d(String(x)):typeof x=="bigint"?(T=String(x),(x>2n**32n||x<-(2n**32n))&&(T=d(T)),T+="n"):T=n(x),`The value of "${_}" is out of range. It must be ${y}. Received ${T}`},RangeError),g("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),g("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),g("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),g("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),g("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),g("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),g("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),g("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),g("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),g("ERR_STREAM_WRITE_AFTER_END","write after end",Error),g("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:w,aggregateTwoErrors:b(v),hideStackFrames:b,codes:c}}),Qc=Ne((t,e)=>{Pe(),Le(),Oe();var{ArrayIsArray:r,ArrayPrototypeIncludes:n,ArrayPrototypeJoin:s,ArrayPrototypeMap:i,NumberIsInteger:a,NumberIsNaN:o,NumberMAX_SAFE_INTEGER:l,NumberMIN_SAFE_INTEGER:u,NumberParseInt:c,ObjectPrototypeHasOwnProperty:f,RegExpPrototypeExec:d,String:p,StringPrototypeToUpperCase:g,StringPrototypeTrim:b}=Zt(),{hideStackFrames:v,codes:{ERR_SOCKET_BAD_PORT:w,ERR_INVALID_ARG_TYPE:_,ERR_INVALID_ARG_VALUE:y,ERR_OUT_OF_RANGE:x,ERR_UNKNOWN_SIGNAL:T}}=Dr(),{normalizeEncoding:A}=Ti(),{isAsyncFunction:C,isArrayBufferView:L}=Ti().types,j={};function R(Y){return Y===(Y|0)}function U(Y){return Y===Y>>>0}var I=/^[0-7]+$/,M="must be a 32-bit unsigned integer or an octal string";function $(Y,ie,Q){if(typeof Y>"u"&&(Y=Q),typeof Y=="string"){if(d(I,Y)===null)throw new y(ie,Y,M);Y=c(Y,8)}return re(Y,ie),Y}var Z=v((Y,ie,Q=u,oe=l)=>{if(typeof Y!="number")throw new _(ie,"number",Y);if(!a(Y))throw new x(ie,"an integer",Y);if(Yoe)throw new x(ie,`>= ${Q} && <= ${oe}`,Y)}),ne=v((Y,ie,Q=-2147483648,oe=2147483647)=>{if(typeof Y!="number")throw new _(ie,"number",Y);if(!a(Y))throw new x(ie,"an integer",Y);if(Yoe)throw new x(ie,`>= ${Q} && <= ${oe}`,Y)}),re=v((Y,ie,Q=!1)=>{if(typeof Y!="number")throw new _(ie,"number",Y);if(!a(Y))throw new x(ie,"an integer",Y);let oe=Q?1:0,me=4294967295;if(Yme)throw new x(ie,`>= ${oe} && <= ${me}`,Y)});function N(Y,ie){if(typeof Y!="string")throw new _(ie,"string",Y)}function fe(Y,ie,Q=void 0,oe){if(typeof Y!="number")throw new _(ie,"number",Y);if(Q!=null&&Yoe||(Q!=null||oe!=null)&&o(Y))throw new x(ie,`${Q!=null?`>= ${Q}`:""}${Q!=null&&oe!=null?" && ":""}${oe!=null?`<= ${oe}`:""}`,Y)}var G=v((Y,ie,Q)=>{if(!n(Q,Y)){let oe="must be one of: "+s(i(Q,me=>typeof me=="string"?`'${me}'`:p(me)),", ");throw new y(ie,Y,oe)}});function pe(Y,ie){if(typeof Y!="boolean")throw new _(ie,"boolean",Y)}function F(Y,ie,Q){return Y==null||!f(Y,ie)?Q:Y[ie]}var de=v((Y,ie,Q=null)=>{let oe=F(Q,"allowArray",!1),me=F(Q,"allowFunction",!1);if(!F(Q,"nullable",!1)&&Y===null||!oe&&r(Y)||typeof Y!="object"&&(!me||typeof Y!="function"))throw new _(ie,"Object",Y)}),Se=v((Y,ie)=>{if(Y!=null&&typeof Y!="object"&&typeof Y!="function")throw new _(ie,"a dictionary",Y)}),ee=v((Y,ie,Q=0)=>{if(!r(Y))throw new _(ie,"Array",Y);if(Y.length{if(!L(Y))throw new _(ie,["Buffer","TypedArray","DataView"],Y)});function ce(Y,ie){let Q=A(ie),oe=Y.length;if(Q==="hex"&&oe%2!==0)throw new y("encoding",ie,`is invalid for data of length ${oe}`)}function le(Y,ie="Port",Q=!0){if(typeof Y!="number"&&typeof Y!="string"||typeof Y=="string"&&b(Y).length===0||+Y!==+Y>>>0||Y>65535||Y===0&&!Q)throw new w(ie,Y,Q);return Y|0}var k=v((Y,ie)=>{if(Y!==void 0&&(Y===null||typeof Y!="object"||!("aborted"in Y)))throw new _(ie,"AbortSignal",Y)}),P=v((Y,ie)=>{if(typeof Y!="function")throw new _(ie,"Function",Y)}),V=v((Y,ie)=>{if(typeof Y!="function"||C(Y))throw new _(ie,"Function",Y)}),B=v((Y,ie)=>{if(Y!==void 0)throw new _(ie,"undefined",Y)});function H(Y,ie,Q){if(!n(Q,Y))throw new _(ie,`('${s(Q,"|")}')`,Y)}var q=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ue(Y,ie){if(typeof Y>"u"||!d(q,Y))throw new y(ie,Y,'must be an array or string of format "; rel=preload; as=style"')}function J(Y){if(typeof Y=="string")return ue(Y,"hints"),Y;if(r(Y)){let ie=Y.length,Q="";if(ie===0)return Q;for(let oe=0;oe; rel=preload; as=style"')}e.exports={isInt32:R,isUint32:U,parseFileMode:$,validateArray:ee,validateStringArray:K,validateBooleanArray:W,validateBoolean:pe,validateBuffer:X,validateDictionary:Se,validateEncoding:ce,validateFunction:P,validateInt32:ne,validateInteger:Z,validateNumber:fe,validateObject:de,validateOneOf:G,validatePlainFunction:V,validatePort:le,validateSignalName:D,validateString:N,validateUint32:re,validateUndefined:B,validateUnion:H,validateAbortSignal:k,validateLinkHeaderValue:J}}),io=Ne((t,e)=>{Pe(),Le(),Oe();var r=e.exports={},n,s;function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?n=setTimeout:n=i}catch{n=i}try{typeof clearTimeout=="function"?s=clearTimeout:s=a}catch{s=a}})();function o(w){if(n===setTimeout)return setTimeout(w,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(w,0);try{return n(w,0)}catch{try{return n.call(null,w,0)}catch{return n.call(this,w,0)}}}function l(w){if(s===clearTimeout)return clearTimeout(w);if((s===a||!s)&&clearTimeout)return s=clearTimeout,clearTimeout(w);try{return s(w)}catch{try{return s.call(null,w)}catch{return s.call(this,w)}}}var u=[],c=!1,f,d=-1;function p(){!c||!f||(c=!1,f.length?u=f.concat(u):d=-1,u.length&&g())}function g(){if(!c){var w=o(p);c=!0;for(var _=u.length;_;){for(f=u,u=[];++d<_;)f&&f[d].run();d=-1,_=u.length}f=null,c=!1,l(w)}}r.nextTick=function(w){var _=new Array(arguments.length-1);if(arguments.length>1)for(var y=1;y{Pe(),Le(),Oe();var{Symbol:r,SymbolAsyncIterator:n,SymbolIterator:s,SymbolFor:i}=Zt(),a=r("kDestroyed"),o=r("kIsErrored"),l=r("kIsReadable"),u=r("kIsDisturbed"),c=i("nodejs.webstream.isClosedPromise"),f=i("nodejs.webstream.controllerErrorFunction");function d(F,de=!1){var Se;return!!(F&&typeof F.pipe=="function"&&typeof F.on=="function"&&(!de||typeof F.pause=="function"&&typeof F.resume=="function")&&(!F._writableState||((Se=F._readableState)===null||Se===void 0?void 0:Se.readable)!==!1)&&(!F._writableState||F._readableState))}function p(F){var de;return!!(F&&typeof F.write=="function"&&typeof F.on=="function"&&(!F._readableState||((de=F._writableState)===null||de===void 0?void 0:de.writable)!==!1))}function g(F){return!!(F&&typeof F.pipe=="function"&&F._readableState&&typeof F.on=="function"&&typeof F.write=="function")}function b(F){return F&&(F._readableState||F._writableState||typeof F.write=="function"&&typeof F.on=="function"||typeof F.pipe=="function"&&typeof F.on=="function")}function v(F){return!!(F&&!b(F)&&typeof F.pipeThrough=="function"&&typeof F.getReader=="function"&&typeof F.cancel=="function")}function w(F){return!!(F&&!b(F)&&typeof F.getWriter=="function"&&typeof F.abort=="function")}function _(F){return!!(F&&!b(F)&&typeof F.readable=="object"&&typeof F.writable=="object")}function y(F){return v(F)||w(F)||_(F)}function x(F,de){return F==null?!1:de===!0?typeof F[n]=="function":de===!1?typeof F[s]=="function":typeof F[n]=="function"||typeof F[s]=="function"}function T(F){if(!b(F))return null;let de=F._writableState,Se=F._readableState,ee=de||Se;return!!(F.destroyed||F[a]||ee!=null&&ee.destroyed)}function A(F){if(!p(F))return null;if(F.writableEnded===!0)return!0;let de=F._writableState;return de!=null&&de.errored?!1:typeof(de==null?void 0:de.ended)!="boolean"?null:de.ended}function C(F,de){if(!p(F))return null;if(F.writableFinished===!0)return!0;let Se=F._writableState;return Se!=null&&Se.errored?!1:typeof(Se==null?void 0:Se.finished)!="boolean"?null:!!(Se.finished||de===!1&&Se.ended===!0&&Se.length===0)}function L(F){if(!d(F))return null;if(F.readableEnded===!0)return!0;let de=F._readableState;return!de||de.errored?!1:typeof(de==null?void 0:de.ended)!="boolean"?null:de.ended}function j(F,de){if(!d(F))return null;let Se=F._readableState;return Se!=null&&Se.errored?!1:typeof(Se==null?void 0:Se.endEmitted)!="boolean"?null:!!(Se.endEmitted||de===!1&&Se.ended===!0&&Se.length===0)}function R(F){return F&&F[l]!=null?F[l]:typeof(F==null?void 0:F.readable)!="boolean"?null:T(F)?!1:d(F)&&F.readable&&!j(F)}function U(F){return typeof(F==null?void 0:F.writable)!="boolean"?null:T(F)?!1:p(F)&&F.writable&&!A(F)}function I(F,de){return b(F)?T(F)?!0:!((de==null?void 0:de.readable)!==!1&&R(F)||(de==null?void 0:de.writable)!==!1&&U(F)):null}function M(F){var de,Se;return b(F)?F.writableErrored?F.writableErrored:(de=(Se=F._writableState)===null||Se===void 0?void 0:Se.errored)!==null&&de!==void 0?de:null:null}function $(F){var de,Se;return b(F)?F.readableErrored?F.readableErrored:(de=(Se=F._readableState)===null||Se===void 0?void 0:Se.errored)!==null&&de!==void 0?de:null:null}function Z(F){if(!b(F))return null;if(typeof F.closed=="boolean")return F.closed;let de=F._writableState,Se=F._readableState;return typeof(de==null?void 0:de.closed)=="boolean"||typeof(Se==null?void 0:Se.closed)=="boolean"?(de==null?void 0:de.closed)||(Se==null?void 0:Se.closed):typeof F._closed=="boolean"&&ne(F)?F._closed:null}function ne(F){return typeof F._closed=="boolean"&&typeof F._defaultKeepAlive=="boolean"&&typeof F._removedConnection=="boolean"&&typeof F._removedContLen=="boolean"}function re(F){return typeof F._sent100=="boolean"&&ne(F)}function N(F){var de;return typeof F._consuming=="boolean"&&typeof F._dumped=="boolean"&&((de=F.req)===null||de===void 0?void 0:de.upgradeOrConnect)===void 0}function fe(F){if(!b(F))return null;let de=F._writableState,Se=F._readableState,ee=de||Se;return!ee&&re(F)||!!(ee&&ee.autoDestroy&&ee.emitClose&&ee.closed===!1)}function G(F){var de;return!!(F&&((de=F[u])!==null&&de!==void 0?de:F.readableDidRead||F.readableAborted))}function pe(F){var de,Se,ee,K,W,D,X,ce,le,k;return!!(F&&((de=(Se=(ee=(K=(W=(D=F[o])!==null&&D!==void 0?D:F.readableErrored)!==null&&W!==void 0?W:F.writableErrored)!==null&&K!==void 0?K:(X=F._readableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&ee!==void 0?ee:(ce=F._writableState)===null||ce===void 0?void 0:ce.errorEmitted)!==null&&Se!==void 0?Se:(le=F._readableState)===null||le===void 0?void 0:le.errored)!==null&&de!==void 0?de:!((k=F._writableState)===null||k===void 0)&&k.errored))}e.exports={kDestroyed:a,isDisturbed:G,kIsDisturbed:u,isErrored:pe,kIsErrored:o,isReadable:R,kIsReadable:l,kIsClosedPromise:c,kControllerErrorFunction:f,isClosed:Z,isDestroyed:T,isDuplexNodeStream:g,isFinished:I,isIterable:x,isReadableNodeStream:d,isReadableStream:v,isReadableEnded:L,isReadableFinished:j,isReadableErrored:$,isNodeStream:b,isWebStream:y,isWritable:U,isWritableNodeStream:p,isWritableStream:w,isWritableEnded:A,isWritableFinished:C,isWritableErrored:M,isServerRequest:N,isServerResponse:re,willEmitClose:fe,isTransformStream:_}}),ls=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{AbortError:n,codes:s}=Dr(),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_PREMATURE_CLOSE:a}=s,{kEmptyObject:o,once:l}=Ti(),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:d}=Qc(),{Promise:p,PromisePrototypeThen:g}=Zt(),{isClosed:b,isReadable:v,isReadableNodeStream:w,isReadableStream:_,isReadableFinished:y,isReadableErrored:x,isWritable:T,isWritableNodeStream:A,isWritableStream:C,isWritableFinished:L,isWritableErrored:j,isNodeStream:R,willEmitClose:U,kIsClosedPromise:I}=Oi();function M(N){return N.setHeader&&typeof N.abort=="function"}var $=()=>{};function Z(N,fe,G){var pe,F;if(arguments.length===2?(G=fe,fe=o):fe==null?fe=o:f(fe,"options"),c(G,"callback"),u(fe.signal,"options.signal"),G=l(G),_(N)||C(N))return ne(N,fe,G);if(!R(N))throw new i("stream",["ReadableStream","WritableStream","Stream"],N);let de=(pe=fe.readable)!==null&&pe!==void 0?pe:w(N),Se=(F=fe.writable)!==null&&F!==void 0?F:A(N),ee=N._writableState,K=N._readableState,W=()=>{N.writable||ce()},D=U(N)&&w(N)===de&&A(N)===Se,X=L(N,!1),ce=()=>{X=!0,N.destroyed&&(D=!1),!(D&&(!N.readable||de))&&(!de||le)&&G.call(N)},le=y(N,!1),k=()=>{le=!0,N.destroyed&&(D=!1),!(D&&(!N.writable||Se))&&(!Se||X)&&G.call(N)},P=J=>{G.call(N,J)},V=b(N),B=()=>{V=!0;let J=j(N)||x(N);if(J&&typeof J!="boolean")return G.call(N,J);if(de&&!le&&w(N,!0)&&!y(N,!1))return G.call(N,new a);if(Se&&!X&&!L(N,!1))return G.call(N,new a);G.call(N)},H=()=>{V=!0;let J=j(N)||x(N);if(J&&typeof J!="boolean")return G.call(N,J);G.call(N)},q=()=>{N.req.on("finish",ce)};M(N)?(N.on("complete",ce),D||N.on("abort",B),N.req?q():N.on("request",q)):Se&&!ee&&(N.on("end",W),N.on("close",W)),!D&&typeof N.aborted=="boolean"&&N.on("aborted",B),N.on("end",k),N.on("finish",ce),fe.error!==!1&&N.on("error",P),N.on("close",B),V?r.nextTick(B):ee!=null&&ee.errorEmitted||K!=null&&K.errorEmitted?D||r.nextTick(H):(!de&&(!D||v(N))&&(X||T(N)===!1)||!Se&&(!D||T(N))&&(le||v(N)===!1)||K&&N.req&&N.aborted)&&r.nextTick(H);let ue=()=>{G=$,N.removeListener("aborted",B),N.removeListener("complete",ce),N.removeListener("abort",B),N.removeListener("request",q),N.req&&N.req.removeListener("finish",ce),N.removeListener("end",W),N.removeListener("close",W),N.removeListener("finish",ce),N.removeListener("end",k),N.removeListener("error",P),N.removeListener("close",B)};if(fe.signal&&!V){let J=()=>{let Y=G;ue(),Y.call(N,new n(void 0,{cause:fe.signal.reason}))};if(fe.signal.aborted)r.nextTick(J);else{let Y=G;G=l((...ie)=>{fe.signal.removeEventListener("abort",J),Y.apply(N,ie)}),fe.signal.addEventListener("abort",J)}}return ue}function ne(N,fe,G){let pe=!1,F=$;if(fe.signal)if(F=()=>{pe=!0,G.call(N,new n(void 0,{cause:fe.signal.reason}))},fe.signal.aborted)r.nextTick(F);else{let Se=G;G=l((...ee)=>{fe.signal.removeEventListener("abort",F),Se.apply(N,ee)}),fe.signal.addEventListener("abort",F)}let de=(...Se)=>{pe||r.nextTick(()=>G.apply(N,Se))};return g(N[I].promise,de,de),$}function re(N,fe){var G;let pe=!1;return fe===null&&(fe=o),(G=fe)!==null&&G!==void 0&&G.cleanup&&(d(fe.cleanup,"cleanup"),pe=fe.cleanup),new p((F,de)=>{let Se=Z(N,fe,ee=>{pe&&Se(),ee?de(ee):F()})})}e.exports=Z,e.exports.finished=re}),aa=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:s},AbortError:i}=Dr(),{Symbol:a}=Zt(),{kDestroyed:o,isDestroyed:l,isFinished:u,isServerRequest:c}=Oi(),f=a("kDestroy"),d=a("kConstruct");function p(I,M,$){I&&(I.stack,M&&!M.errored&&(M.errored=I),$&&!$.errored&&($.errored=I))}function g(I,M){let $=this._readableState,Z=this._writableState,ne=Z||$;return Z!=null&&Z.destroyed||$!=null&&$.destroyed?(typeof M=="function"&&M(),this):(p(I,Z,$),Z&&(Z.destroyed=!0),$&&($.destroyed=!0),ne.constructed?b(this,I,M):this.once(f,function(re){b(this,n(re,I),M)}),this)}function b(I,M,$){let Z=!1;function ne(re){if(Z)return;Z=!0;let N=I._readableState,fe=I._writableState;p(re,fe,N),fe&&(fe.closed=!0),N&&(N.closed=!0),typeof $=="function"&&$(re),re?r.nextTick(v,I,re):r.nextTick(w,I)}try{I._destroy(M||null,ne)}catch(re){ne(re)}}function v(I,M){_(I,M),w(I)}function w(I){let M=I._readableState,$=I._writableState;$&&($.closeEmitted=!0),M&&(M.closeEmitted=!0),($!=null&&$.emitClose||M!=null&&M.emitClose)&&I.emit("close")}function _(I,M){let $=I._readableState,Z=I._writableState;Z!=null&&Z.errorEmitted||$!=null&&$.errorEmitted||(Z&&(Z.errorEmitted=!0),$&&($.errorEmitted=!0),I.emit("error",M))}function y(){let I=this._readableState,M=this._writableState;I&&(I.constructed=!0,I.closed=!1,I.closeEmitted=!1,I.destroyed=!1,I.errored=null,I.errorEmitted=!1,I.reading=!1,I.ended=I.readable===!1,I.endEmitted=I.readable===!1),M&&(M.constructed=!0,M.destroyed=!1,M.closed=!1,M.closeEmitted=!1,M.errored=null,M.errorEmitted=!1,M.finalCalled=!1,M.prefinished=!1,M.ended=M.writable===!1,M.ending=M.writable===!1,M.finished=M.writable===!1)}function x(I,M,$){let Z=I._readableState,ne=I._writableState;if(ne!=null&&ne.destroyed||Z!=null&&Z.destroyed)return this;Z!=null&&Z.autoDestroy||ne!=null&&ne.autoDestroy?I.destroy(M):M&&(M.stack,ne&&!ne.errored&&(ne.errored=M),Z&&!Z.errored&&(Z.errored=M),$?r.nextTick(_,I,M):_(I,M))}function T(I,M){if(typeof I._construct!="function")return;let $=I._readableState,Z=I._writableState;$&&($.constructed=!1),Z&&(Z.constructed=!1),I.once(d,M),!(I.listenerCount(d)>1)&&r.nextTick(A,I)}function A(I){let M=!1;function $(Z){if(M){x(I,Z??new s);return}M=!0;let ne=I._readableState,re=I._writableState,N=re||ne;ne&&(ne.constructed=!0),re&&(re.constructed=!0),N.destroyed?I.emit(f,Z):Z?x(I,Z,!0):r.nextTick(C,I)}try{I._construct(Z=>{r.nextTick($,Z)})}catch(Z){r.nextTick($,Z)}}function C(I){I.emit(d)}function L(I){return(I==null?void 0:I.setHeader)&&typeof I.abort=="function"}function j(I){I.emit("close")}function R(I,M){I.emit("error",M),r.nextTick(j,I)}function U(I,M){!I||l(I)||(!M&&!u(I)&&(M=new i),c(I)?(I.socket=null,I.destroy(M)):L(I)?I.abort():L(I.req)?I.req.abort():typeof I.destroy=="function"?I.destroy(M):typeof I.close=="function"?I.close():M?r.nextTick(R,I,M):r.nextTick(j,I),I.destroyed||(I[o]=!0))}e.exports={construct:T,destroyer:U,destroy:g,undestroy:y,errorOrDestroy:x}});function Tt(){Tt.init.call(this)}function Nu(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function N1(t){return t._maxListeners===void 0?Tt.defaultMaxListeners:t._maxListeners}function Ny(t,e,r,n){var s,i,a,o;if(Nu(r),(i=t._events)===void 0?(i=t._events=Object.create(null),t._eventsCount=0):(i.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),a=i[e]),a===void 0)a=i[e]=r,++t._eventsCount;else if(typeof a=="function"?a=i[e]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(s=N1(t))>0&&a.length>s&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=a.length,o=l,console&&console.warn&&console.warn(o)}return t}function V2(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Dy(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},s=V2.bind(n);return s.listener=r,n.wrapFn=s,s}function Uy(t,e,r){var n=t._events;if(n===void 0)return[];var s=n[e];return s===void 0?[]:typeof s=="function"?r?[s.listener||s]:[s]:r?function(i){for(var a=new Array(i.length),o=0;o{Pe(),Le(),Oe(),ws=typeof Reflect=="object"?Reflect:null,Wf=ws&&typeof ws.apply=="function"?ws.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},jy=ws&&typeof ws.ownKeys=="function"?ws.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)},zf=Number.isNaN||function(t){return t!=t},Vy=Tt,Tt.EventEmitter=Tt,Tt.prototype._events=void 0,Tt.prototype._eventsCount=0,Tt.prototype._maxListeners=void 0,Hf=10,Object.defineProperty(Tt,"defaultMaxListeners",{enumerable:!0,get:function(){return Hf},set:function(t){if(typeof t!="number"||t<0||zf(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Hf=t}}),Tt.init=function(){this._events!==void 0&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Tt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||zf(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},Tt.prototype.getMaxListeners=function(){return N1(this)},Tt.prototype.emit=function(t){for(var e=[],r=1;r0&&(i=e[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var o=s[t];if(o===void 0)return!1;if(typeof o=="function")Wf(o,this,e);else{var l=o.length,u=D1(o,l);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){a=r[i].listener,s=i;break}if(s<0)return this;s===0?r.shift():function(o,l){for(;l+1=0;n--)this.removeListener(t,e[n]);return this},Tt.prototype.listeners=function(t){return Uy(this,t,!0)},Tt.prototype.rawListeners=function(t){return Uy(this,t,!1)},Tt.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Fy.call(t,e)},Tt.prototype.listenerCount=Fy,Tt.prototype.eventNames=function(){return this._eventsCount>0?jy(this._events):[]},jr=Vy,jr.EventEmitter,jr.defaultMaxListeners,jr.init,jr.listenerCount,jr.EventEmitter,jr.defaultMaxListeners,jr.init,jr.listenerCount}),so={};no(so,{EventEmitter:()=>U1,default:()=>jr,defaultMaxListeners:()=>F1,init:()=>V1,listenerCount:()=>j1,on:()=>W1,once:()=>z1});var U1,F1,V1,j1,W1,z1,la=cr(()=>{Pe(),Le(),Oe(),Wy(),Wy(),jr.once=function(t,e){return new Promise((r,n)=>{function s(...a){i!==void 0&&t.removeListener("error",i),r(a)}let i;e!=="error"&&(i=a=>{t.removeListener(name,s),n(a)},t.once("error",i)),t.once(e,s)})},jr.on=function(t,e){let r=[],n=[],s=null,i=!1,a={async next(){let u=r.shift();if(u)return createIterResult(u,!1);if(s){let c=Promise.reject(s);return s=null,c}return i?createIterResult(void 0,!0):new Promise((c,f)=>n.push({resolve:c,reject:f}))},async return(){t.removeListener(e,o),t.removeListener("error",l),i=!0;for(let u of n)u.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(u){s=u,t.removeListener(e,o),t.removeListener("error",l)},[Symbol.asyncIterator](){return this}};return t.on(e,o),t.on("error",l),a;function o(...u){let c=n.shift();c?c.resolve(createIterResult(u,!1)):r.push(u)}function l(u){i=!0;let c=n.shift();c?c.reject(u):s=u,a.return()}},{EventEmitter:U1,defaultMaxListeners:F1,init:V1,listenerCount:j1,on:W1,once:z1}=jr}),_m=Ne((t,e)=>{Pe(),Le(),Oe();var{ArrayIsArray:r,ObjectSetPrototypeOf:n}=Zt(),{EventEmitter:s}=(la(),It(so));function i(o){s.call(this,o)}n(i.prototype,s.prototype),n(i,s),i.prototype.pipe=function(o,l){let u=this;function c(w){o.writable&&o.write(w)===!1&&u.pause&&u.pause()}u.on("data",c);function f(){u.readable&&u.resume&&u.resume()}o.on("drain",f),!o._isStdio&&(!l||l.end!==!1)&&(u.on("end",p),u.on("close",g));let d=!1;function p(){d||(d=!0,o.end())}function g(){d||(d=!0,typeof o.destroy=="function"&&o.destroy())}function b(w){v(),s.listenerCount(this,"error")===0&&this.emit("error",w)}a(u,"error",b),a(o,"error",b);function v(){u.removeListener("data",c),o.removeListener("drain",f),u.removeListener("end",p),u.removeListener("close",g),u.removeListener("error",b),o.removeListener("error",b),u.removeListener("end",v),u.removeListener("close",v),o.removeListener("close",v)}return u.on("end",v),u.on("close",v),o.on("close",v),o.emit("pipe",u),o};function a(o,l,u){if(typeof o.prependListener=="function")return o.prependListener(l,u);!o._events||!o._events[l]?o.on(l,u):r(o._events[l])?o._events[l].unshift(u):o._events[l]=[u,o._events[l]]}e.exports={Stream:i,prependListener:a}}),Jc=Ne((t,e)=>{Pe(),Le(),Oe();var{AbortError:r,codes:n}=Dr(),{isNodeStream:s,isWebStream:i,kControllerErrorFunction:a}=Oi(),o=ls(),{ERR_INVALID_ARG_TYPE:l}=n,u=(c,f)=>{if(typeof c!="object"||!("aborted"in c))throw new l(f,"AbortSignal",c)};e.exports.addAbortSignal=function(c,f){if(u(c,"signal"),!s(f)&&!i(f))throw new l("stream",["ReadableStream","WritableStream","Stream"],f);return e.exports.addAbortSignalNoValidate(c,f)},e.exports.addAbortSignalNoValidate=function(c,f){if(typeof c!="object"||!("aborted"in c))return f;let d=s(f)?()=>{f.destroy(new r(void 0,{cause:c.reason}))}:()=>{f[a](new r(void 0,{cause:c.reason}))};return c.aborted?d():(c.addEventListener("abort",d),o(f,()=>c.removeEventListener("abort",d))),f}}),j2=Ne((t,e)=>{Pe(),Le(),Oe();var{StringPrototypeSlice:r,SymbolIterator:n,TypedArrayPrototypeSet:s,Uint8Array:i}=Zt(),{Buffer:a}=(dr(),It(fr)),{inspect:o}=Ti();e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(l){let u={data:l,next:null};this.length>0?this.tail.next=u:this.head=u,this.tail=u,++this.length}unshift(l){let u={data:l,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length}shift(){if(this.length===0)return;let l=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,l}clear(){this.head=this.tail=null,this.length=0}join(l){if(this.length===0)return"";let u=this.head,c=""+u.data;for(;(u=u.next)!==null;)c+=l+u.data;return c}concat(l){if(this.length===0)return a.alloc(0);let u=a.allocUnsafe(l>>>0),c=this.head,f=0;for(;c;)s(u,c.data,f),f+=c.data.length,c=c.next;return u}consume(l,u){let c=this.head.data;if(ld.length)u+=d,l-=d.length;else{l===d.length?(u+=d,++f,c.next?this.head=c.next:this.head=this.tail=null):(u+=r(d,0,l),this.head=c,c.data=r(d,l));break}++f}while((c=c.next)!==null);return this.length-=f,u}_getBuffer(l){let u=a.allocUnsafe(l),c=l,f=this.head,d=0;do{let p=f.data;if(l>p.length)s(u,p,c-l),l-=p.length;else{l===p.length?(s(u,p,c-l),++d,f.next?this.head=f.next:this.head=this.tail=null):(s(u,new i(p.buffer,p.byteOffset,l),c-l),this.head=f,f.data=p.slice(l));break}++d}while((f=f.next)!==null);return this.length-=d,u}[Symbol.for("nodejs.util.inspect.custom")](l,u){return o(this,{...u,depth:0,customInspect:!1})}}}),Em=Ne((t,e)=>{Pe(),Le(),Oe();var{MathFloor:r,NumberIsInteger:n}=Zt(),{ERR_INVALID_ARG_VALUE:s}=Dr().codes;function i(l,u,c){return l.highWaterMark!=null?l.highWaterMark:u?l[c]:null}function a(l){return l?16:16*1024}function o(l,u,c,f){let d=i(u,f,c);if(d!=null){if(!n(d)||d<0){let p=f?`options.${c}`:"options.highWaterMark";throw new s(p,d)}return r(d)}return a(l.objectMode)}e.exports={getHighWaterMark:o,getDefaultHighWaterMark:a}});function zy(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return r===-1&&(r=e),[r,r===e?0:4-r%4]}function W2(t,e,r){for(var n,s,i=[],a=e;a>18&63]+yn[s>>12&63]+yn[s>>6&63]+yn[63&s]);return i.join("")}function gi(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,Be.prototype),e}function Be(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Jp(t)}return H1(t,e,r)}function H1(t,e,r){if(typeof t=="string")return function(i,a){if(typeof a=="string"&&a!==""||(a="utf8"),!Be.isEncoding(a))throw new TypeError("Unknown encoding: "+a);var o=0|G1(i,a),l=gi(o),u=l.write(i,a);return u!==o&&(l=l.slice(0,u)),l}(t,e);if(ArrayBuffer.isView(t))return qf(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(mi(t,ArrayBuffer)||t&&mi(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(mi(t,SharedArrayBuffer)||t&&mi(t.buffer,SharedArrayBuffer)))return z2(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(n!=null&&n!==t)return Be.from(n,e,r);var s=function(i){if(Be.isBuffer(i)){var a=0|Sm(i.length),o=gi(a);return o.length===0||i.copy(o,0,0,a),o}if(i.length!==void 0)return typeof i.length!="number"||xm(i.length)?gi(0):qf(i);if(i.type==="Buffer"&&Array.isArray(i.data))return qf(i.data)}(t);if(s)return s;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return Be.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function q1(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function Jp(t){return q1(t),gi(t<0?0:0|Sm(t))}function qf(t){for(var e=t.length<0?0:0|Sm(t.length),r=gi(e),n=0;n=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function G1(t,e){if(Be.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||mi(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;for(var s=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Zp(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Q1(t).length;default:if(s)return n?-1:Zp(t).length;e=(""+e).toLowerCase(),s=!0}}function H2(t,e,r){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return eL(this,e,r);case"utf8":case"utf-8":return K1(this,e,r);case"ascii":return J2(this,e,r);case"latin1":case"binary":return Z2(this,e,r);case"base64":return Q2(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return tL(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function vs(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Hy(t,e,r,n,s){if(t.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),xm(r=+r)&&(r=s?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(s)return-1;r=t.length-1}else if(r<0){if(!s)return-1;r=0}if(typeof e=="string"&&(e=Be.from(e,n)),Be.isBuffer(e))return e.length===0?-1:qy(t,e,r,n,s);if(typeof e=="number")return e&=255,typeof Uint8Array.prototype.indexOf=="function"?s?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):qy(t,[e],r,n,s);throw new TypeError("val must be string, number or Buffer")}function qy(t,e,r,n,s){var i,a=1,o=t.length,l=e.length;if(n!==void 0&&((n=String(n).toLowerCase())==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,r/=2}function u(p,g){return a===1?p[g]:p.readUInt16BE(g*a)}if(s){var c=-1;for(i=r;io&&(r=o-l),i=r;i>=0;i--){for(var f=!0,d=0;ds&&(n=s):n=s;var i=e.length;n>i/2&&(n=i/2);for(var a=0;a>8,l=a%256,u.push(l),u.push(o);return u}(e,t.length-r),t,r,n)}function Q2(t,e,r){return e===0&&r===t.length?yc.fromByteArray(t):yc.fromByteArray(t.slice(e,r))}function K1(t,e,r){r=Math.min(t.length,r);for(var n=[],s=e;s239?4:u>223?3:u>191?2:1;if(s+f<=r)switch(f){case 1:u<128&&(c=u);break;case 2:(192&(i=t[s+1]))==128&&(l=(31&u)<<6|63&i)>127&&(c=l);break;case 3:i=t[s+1],a=t[s+2],(192&i)==128&&(192&a)==128&&(l=(15&u)<<12|(63&i)<<6|63&a)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:i=t[s+1],a=t[s+2],o=t[s+3],(192&i)==128&&(192&a)==128&&(192&o)==128&&(l=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(c=l)}c===null?(c=65533,f=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),s+=f}return function(d){var p=d.length;if(p<=4096)return String.fromCharCode.apply(String,d);for(var g="",b=0;bn)&&(r=n);for(var s="",i=e;ir)throw new RangeError("Trying to access beyond buffer length")}function Or(t,e,r,n,s,i){if(!Be.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||et.length)throw new RangeError("Index out of range")}function X1(t,e,r,n,s,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Gy(t,e,r,n,s){return e=+e,r>>>=0,s||X1(t,0,r,4),Ms.write(t,e,r,n,23,4),r+4}function Yy(t,e,r,n,s){return e=+e,r>>>=0,s||X1(t,0,r,8),Ms.write(t,e,r,n,52,8),r+8}function Zp(t,e){var r;e=e||1/0;for(var n=t.length,s=null,i=[],a=0;a55295&&r<57344){if(!s){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&i.push(239,191,189);continue}s=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),s=r;continue}r=65536+(s-55296<<10|r-56320)}else s&&(e-=3)>-1&&i.push(239,191,189);if(s=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function Q1(t){return yc.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(J1,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(t))}function Zc(t,e,r,n){for(var s=0;s=e.length||s>=t.length);++s)e[s+r]=t[s];return s}function mi(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function xm(t){return t!=t}function Ky(t,e){for(var r in t)e[r]=t[r]}function _s(t,e,r){return mn(t,e,r)}function Ca(t){var e;switch(this.encoding=function(r){var n=function(s){if(!s)return"utf8";for(var i;;)switch(s){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return s;default:if(i)return;s=(""+s).toLowerCase(),i=!0}}(r);if(typeof n!="string"&&(wc.isEncoding===eg||!eg(r)))throw new Error("Unknown encoding: "+r);return n||r}(t),this.encoding){case"utf16le":this.text=nL,this.end=iL,e=4;break;case"utf8":this.fillLast=rL,e=4;break;case"base64":this.text=sL,this.end=oL,e=3;break;default:return this.write=aL,this.end=lL,void 0}this.lastNeed=0,this.lastTotal=0,this.lastChar=wc.allocUnsafe(e)}function Gf(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function rL(t){var e=this.lastTotal-this.lastNeed,r=function(n,s,i){if((192&s[0])!=128)return n.lastNeed=0,"�";if(n.lastNeed>1&&s.length>1){if((192&s[1])!=128)return n.lastNeed=1,"�";if(n.lastNeed>2&&s.length>2&&(192&s[2])!=128)return n.lastNeed=2,"�"}}(this,t);return r!==void 0?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length,void 0)}function nL(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function iL(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function sL(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function oL(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function aL(t){return t.toString(this.encoding)}function lL(t){return t&&t.length?this.write(t):""}var Xy,yn,Ur,Qy,Jl,Es,Jy,Zy,kn,yc,Ms,Yf,J1,Z1,Ia,Ma,mn,ew,Mo,wc,eg,tw=cr(()=>{for(Pe(),Le(),Oe(),Xy={byteLength:function(t){var e=zy(t),r=e[0],n=e[1];return 3*(r+n)/4-n},toByteArray:function(t){var e,r,n=zy(t),s=n[0],i=n[1],a=new Qy(function(u,c,f){return 3*(c+f)/4-f}(0,s,i)),o=0,l=i>0?s-4:s;for(r=0;r>16&255,a[o++]=e>>8&255,a[o++]=255&e;return i===2&&(e=Ur[t.charCodeAt(r)]<<2|Ur[t.charCodeAt(r+1)]>>4,a[o++]=255&e),i===1&&(e=Ur[t.charCodeAt(r)]<<10|Ur[t.charCodeAt(r+1)]<<4|Ur[t.charCodeAt(r+2)]>>2,a[o++]=e>>8&255,a[o++]=255&e),a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,s=[],i=0,a=r-n;ia?a:i+16383));return n===1?(e=t[r-1],s.push(yn[e>>2]+yn[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],s.push(yn[e>>10]+yn[e>>4&63]+yn[e<<2&63]+"=")),s.join("")}},yn=[],Ur=[],Qy=typeof Uint8Array<"u"?Uint8Array:Array,Jl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Es=0,Jy=Jl.length;Es>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=256*i+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=256*a+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),i-=u}return(p?-1:1)*a*Math.pow(2,i-n)},write:function(t,e,r,n,s,i){var a,o,l,u=8*i-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,g=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+f>=1?d/l:d*Math.pow(2,1-f))*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a+=f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=255&o,p+=g,o/=256,s-=8);for(a=a<0;t[r+p]=255&a,p+=g,a/=256,u-=8);t[r+p-g]|=128*b}},kn={},yc=Xy,Ms=Zy,Yf=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null,kn.Buffer=Be,kn.SlowBuffer=function(t){return+t!=t&&(t=0),Be.alloc(+t)},kn.INSPECT_MAX_BYTES=50,kn.kMaxLength=2147483647,Be.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}(),Be.TYPED_ARRAY_SUPPORT||typeof console>"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(Be.prototype,"parent",{enumerable:!0,get:function(){if(Be.isBuffer(this))return this.buffer}}),Object.defineProperty(Be.prototype,"offset",{enumerable:!0,get:function(){if(Be.isBuffer(this))return this.byteOffset}}),Be.poolSize=8192,Be.from=function(t,e,r){return H1(t,e,r)},Object.setPrototypeOf(Be.prototype,Uint8Array.prototype),Object.setPrototypeOf(Be,Uint8Array),Be.alloc=function(t,e,r){return function(n,s,i){return q1(n),n<=0?gi(n):s!==void 0?typeof i=="string"?gi(n).fill(s,i):gi(n).fill(s):gi(n)}(t,e,r)},Be.allocUnsafe=function(t){return Jp(t)},Be.allocUnsafeSlow=function(t){return Jp(t)},Be.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==Be.prototype},Be.compare=function(t,e){if(mi(t,Uint8Array)&&(t=Be.from(t,t.offset,t.byteLength)),mi(e,Uint8Array)&&(e=Be.from(e,e.offset,e.byteLength)),!Be.isBuffer(t)||!Be.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,s=0,i=Math.min(r,n);se&&(t+=" ... "),""},Yf&&(Be.prototype[Yf]=Be.prototype.inspect),Be.prototype.compare=function(t,e,r,n,s){if(mi(t,Uint8Array)&&(t=Be.from(t,t.offset,t.byteLength)),!Be.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),r===void 0&&(r=t?t.length:0),n===void 0&&(n=0),s===void 0&&(s=this.length),e<0||r>t.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&e>=r)return 0;if(n>=s)return-1;if(e>=r)return 1;if(this===t)return 0;for(var i=(s>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0),o=Math.min(i,a),l=this.slice(n,s),u=t.slice(e,r),c=0;c>>=0,isFinite(r)?(r>>>=0,n===void 0&&(n="utf8")):(n=r,r=void 0)}var s=this.length-e;if((r===void 0||r>s)&&(r=s),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return q2(this,t,e,r);case"utf8":case"utf-8":return G2(this,t,e,r);case"ascii":return Y1(this,t,e,r);case"latin1":case"binary":return Y2(this,t,e,r);case"base64":return K2(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X2(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},Be.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Be.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=e===void 0?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||tr(t,e,this.length);for(var n=this[t],s=1,i=0;++i>>=0,e>>>=0,r||tr(t,e,this.length);for(var n=this[t+--e],s=1;e>0&&(s*=256);)n+=this[t+--e]*s;return n},Be.prototype.readUInt8=function(t,e){return t>>>=0,e||tr(t,1,this.length),this[t]},Be.prototype.readUInt16LE=function(t,e){return t>>>=0,e||tr(t,2,this.length),this[t]|this[t+1]<<8},Be.prototype.readUInt16BE=function(t,e){return t>>>=0,e||tr(t,2,this.length),this[t]<<8|this[t+1]},Be.prototype.readUInt32LE=function(t,e){return t>>>=0,e||tr(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Be.prototype.readUInt32BE=function(t,e){return t>>>=0,e||tr(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Be.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||tr(t,e,this.length);for(var n=this[t],s=1,i=0;++i=(s*=128)&&(n-=Math.pow(2,8*e)),n},Be.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||tr(t,e,this.length);for(var n=e,s=1,i=this[t+--n];n>0&&(s*=256);)i+=this[t+--n]*s;return i>=(s*=128)&&(i-=Math.pow(2,8*e)),i},Be.prototype.readInt8=function(t,e){return t>>>=0,e||tr(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Be.prototype.readInt16LE=function(t,e){t>>>=0,e||tr(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Be.prototype.readInt16BE=function(t,e){t>>>=0,e||tr(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Be.prototype.readInt32LE=function(t,e){return t>>>=0,e||tr(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Be.prototype.readInt32BE=function(t,e){return t>>>=0,e||tr(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Be.prototype.readFloatLE=function(t,e){return t>>>=0,e||tr(t,4,this.length),Ms.read(this,t,!0,23,4)},Be.prototype.readFloatBE=function(t,e){return t>>>=0,e||tr(t,4,this.length),Ms.read(this,t,!1,23,4)},Be.prototype.readDoubleLE=function(t,e){return t>>>=0,e||tr(t,8,this.length),Ms.read(this,t,!0,52,8)},Be.prototype.readDoubleBE=function(t,e){return t>>>=0,e||tr(t,8,this.length),Ms.read(this,t,!1,52,8)},Be.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||Or(this,t,e,r,Math.pow(2,8*r)-1,0);var s=1,i=0;for(this[e]=255&t;++i>>=0,r>>>=0,n||Or(this,t,e,r,Math.pow(2,8*r)-1,0);var s=r-1,i=1;for(this[e+s]=255&t;--s>=0&&(i*=256);)this[e+s]=t/i&255;return e+r},Be.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,1,255,0),this[e]=255&t,e+1},Be.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},Be.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},Be.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},Be.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Be.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);Or(this,t,e,r,s-1,-s)}var i=0,a=1,o=0;for(this[e]=255&t;++i>0)-o&255;return e+r},Be.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);Or(this,t,e,r,s-1,-s)}var i=r-1,a=1,o=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&o===0&&this[e+i+1]!==0&&(o=1),this[e+i]=(t/a>>0)-o&255;return e+r},Be.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},Be.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},Be.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},Be.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},Be.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||Or(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Be.prototype.writeFloatLE=function(t,e,r){return Gy(this,t,e,!0,r)},Be.prototype.writeFloatBE=function(t,e,r){return Gy(this,t,e,!1,r)},Be.prototype.writeDoubleLE=function(t,e,r){return Yy(this,t,e,!0,r)},Be.prototype.writeDoubleBE=function(t,e,r){return Yy(this,t,e,!1,r)},Be.prototype.copy=function(t,e,r,n){if(!Be.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||n===0||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return s},Be.prototype.fill=function(t,e,r,n){if(typeof t=="string"){if(typeof e=="string"?(n=e,e=0,r=this.length):typeof r=="string"&&(n=r,r=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!Be.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(t.length===1){var s=t.charCodeAt(0);(n==="utf8"&&s<128||n==="latin1")&&(t=s)}}else typeof t=="number"?t&=255:typeof t=="boolean"&&(t=Number(t));if(e<0||this.length>>=0,r=r===void 0?this.length:r>>>0,t||(t=0),typeof t=="number")for(i=e;i=0?(l>0&&(s.lastNeed=l-1),l):--o=0?(l>0&&(s.lastNeed=l-2),l):--o=0?(l>0&&(l===2?l=0:s.lastNeed=l-3),l):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},Ca.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},Mo.StringDecoder,Mo.StringDecoder}),eE={};no(eE,{StringDecoder:()=>tE,default:()=>Mo});var tE,uL=cr(()=>{Pe(),Le(),Oe(),tw(),tw(),tE=Mo.StringDecoder}),rE=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{PromisePrototypeThen:n,SymbolAsyncIterator:s,SymbolIterator:i}=Zt(),{Buffer:a}=(dr(),It(fr)),{ERR_INVALID_ARG_TYPE:o,ERR_STREAM_NULL_VALUES:l}=Dr().codes;function u(c,f,d){let p;if(typeof f=="string"||f instanceof a)return new c({objectMode:!0,...d,read(){this.push(f),this.push(null)}});let g;if(f&&f[s])g=!0,p=f[s]();else if(f&&f[i])g=!1,p=f[i]();else throw new o("iterable",["Iterable"],f);let b=new c({objectMode:!0,highWaterMark:1,...d}),v=!1;b._read=function(){v||(v=!0,_())},b._destroy=function(y,x){n(w(y),()=>r.nextTick(x,y),T=>r.nextTick(x,T||y))};async function w(y){let x=y!=null,T=typeof p.throw=="function";if(x&&T){let{value:A,done:C}=await p.throw(y);if(await A,C)return}if(typeof p.return=="function"){let{value:A}=await p.return();await A}}async function _(){for(;;){try{let{value:y,done:x}=g?await p.next():p.next();if(x)b.push(null);else{let T=y&&typeof y.then=="function"?await y:y;if(T===null)throw v=!1,new l;if(b.push(T))continue;v=!1}}catch(y){b.destroy(y)}break}}return b}e.exports=u}),ef=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{ArrayPrototypeIndexOf:n,NumberIsInteger:s,NumberIsNaN:i,NumberParseInt:a,ObjectDefineProperties:o,ObjectKeys:l,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncIterator:d,Symbol:p}=Zt();e.exports=F,F.ReadableState=pe;var{EventEmitter:g}=(la(),It(so)),{Stream:b,prependListener:v}=_m(),{Buffer:w}=(dr(),It(fr)),{addAbortSignal:_}=Jc(),y=ls(),x=Ti().debuglog("stream",m=>{x=m}),T=j2(),A=aa(),{getHighWaterMark:C,getDefaultHighWaterMark:L}=Em(),{aggregateTwoErrors:j,codes:{ERR_INVALID_ARG_TYPE:R,ERR_METHOD_NOT_IMPLEMENTED:U,ERR_OUT_OF_RANGE:I,ERR_STREAM_PUSH_AFTER_EOF:M,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:$}}=Dr(),{validateObject:Z}=Qc(),ne=p("kPaused"),{StringDecoder:re}=(uL(),It(eE)),N=rE();u(F.prototype,b.prototype),u(F,b);var fe=()=>{},{errorOrDestroy:G}=A;function pe(m,h,E){typeof E!="boolean"&&(E=h instanceof Ai()),this.objectMode=!!(m&&m.objectMode),E&&(this.objectMode=this.objectMode||!!(m&&m.readableObjectMode)),this.highWaterMark=m?C(this,m,"readableHighWaterMark",E):L(!1),this.buffer=new T,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[ne]=null,this.errorEmitted=!1,this.emitClose=!m||m.emitClose!==!1,this.autoDestroy=!m||m.autoDestroy!==!1,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=m&&m.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,m&&m.encoding&&(this.decoder=new re(m.encoding),this.encoding=m.encoding)}function F(m){if(!(this instanceof F))return new F(m);let h=this instanceof Ai();this._readableState=new pe(m,this,h),m&&(typeof m.read=="function"&&(this._read=m.read),typeof m.destroy=="function"&&(this._destroy=m.destroy),typeof m.construct=="function"&&(this._construct=m.construct),m.signal&&!h&&_(m.signal,this)),b.call(this,m),A.construct(this,()=>{this._readableState.needReadable&&le(this,this._readableState)})}F.prototype.destroy=A.destroy,F.prototype._undestroy=A.undestroy,F.prototype._destroy=function(m,h){h(m)},F.prototype[g.captureRejectionSymbol]=function(m){this.destroy(m)},F.prototype.push=function(m,h){return de(this,m,h,!1)},F.prototype.unshift=function(m,h){return de(this,m,h,!0)};function de(m,h,E,O){x("readableAddChunk",h);let te=m._readableState,he;if(te.objectMode||(typeof h=="string"?(E=E||te.defaultEncoding,te.encoding!==E&&(O&&te.encoding?h=w.from(h,E).toString(te.encoding):(h=w.from(h,E),E=""))):h instanceof w?E="":b._isUint8Array(h)?(h=b._uint8ArrayToBuffer(h),E=""):h!=null&&(he=new R("chunk",["string","Buffer","Uint8Array"],h))),he)G(m,he);else if(h===null)te.reading=!1,D(m,te);else if(te.objectMode||h&&h.length>0)if(O)if(te.endEmitted)G(m,new $);else{if(te.destroyed||te.errored)return!1;Se(m,te,h,!0)}else if(te.ended)G(m,new M);else{if(te.destroyed||te.errored)return!1;te.reading=!1,te.decoder&&!E?(h=te.decoder.write(h),te.objectMode||h.length!==0?Se(m,te,h,!1):le(m,te)):Se(m,te,h,!1)}else O||(te.reading=!1,le(m,te));return!te.ended&&(te.length0?(h.multiAwaitDrain?h.awaitDrainWriters.clear():h.awaitDrainWriters=null,h.dataEmitted=!0,m.emit("data",E)):(h.length+=h.objectMode?1:E.length,O?h.buffer.unshift(E):h.buffer.push(E),h.needReadable&&X(m)),le(m,h)}F.prototype.isPaused=function(){let m=this._readableState;return m[ne]===!0||m.flowing===!1},F.prototype.setEncoding=function(m){let h=new re(m);this._readableState.decoder=h,this._readableState.encoding=this._readableState.decoder.encoding;let E=this._readableState.buffer,O="";for(let te of E)O+=h.write(te);return E.clear(),O!==""&&E.push(O),this._readableState.length=O.length,this};var ee=1073741824;function K(m){if(m>ee)throw new I("size","<= 1GiB",m);return m--,m|=m>>>1,m|=m>>>2,m|=m>>>4,m|=m>>>8,m|=m>>>16,m++,m}function W(m,h){return m<=0||h.length===0&&h.ended?0:h.objectMode?1:i(m)?h.flowing&&h.length?h.buffer.first().length:h.length:m<=h.length?m:h.ended?h.length:0}F.prototype.read=function(m){x("read",m),m===void 0?m=NaN:s(m)||(m=a(m,10));let h=this._readableState,E=m;if(m>h.highWaterMark&&(h.highWaterMark=K(m)),m!==0&&(h.emittedReadable=!1),m===0&&h.needReadable&&((h.highWaterMark!==0?h.length>=h.highWaterMark:h.length>0)||h.ended))return x("read: emitReadable",h.length,h.ended),h.length===0&&h.ended?Q(this):X(this),null;if(m=W(m,h),m===0&&h.ended)return h.length===0&&Q(this),null;let O=h.needReadable;if(x("need readable",O),(h.length===0||h.length-m0?te=ie(m,h):te=null,te===null?(h.needReadable=h.length<=h.highWaterMark,m=0):(h.length-=m,h.multiAwaitDrain?h.awaitDrainWriters.clear():h.awaitDrainWriters=null),h.length===0&&(h.ended||(h.needReadable=!0),E!==m&&h.ended&&Q(this)),te!==null&&!h.errorEmitted&&!h.closeEmitted&&(h.dataEmitted=!0,this.emit("data",te)),te};function D(m,h){if(x("onEofChunk"),!h.ended){if(h.decoder){let E=h.decoder.end();E&&E.length&&(h.buffer.push(E),h.length+=h.objectMode?1:E.length)}h.ended=!0,h.sync?X(m):(h.needReadable=!1,h.emittedReadable=!0,ce(m))}}function X(m){let h=m._readableState;x("emitReadable",h.needReadable,h.emittedReadable),h.needReadable=!1,h.emittedReadable||(x("emitReadable",h.flowing),h.emittedReadable=!0,r.nextTick(ce,m))}function ce(m){let h=m._readableState;x("emitReadable_",h.destroyed,h.length,h.ended),!h.destroyed&&!h.errored&&(h.length||h.ended)&&(m.emit("readable"),h.emittedReadable=!1),h.needReadable=!h.flowing&&!h.ended&&h.length<=h.highWaterMark,ue(m)}function le(m,h){!h.readingMore&&h.constructed&&(h.readingMore=!0,r.nextTick(k,m,h))}function k(m,h){for(;!h.reading&&!h.ended&&(h.length1&&O.pipes.includes(m)&&(x("false write response, pause",O.awaitDrainWriters.size),O.awaitDrainWriters.add(m)),E.pause()),Ue||(Ue=P(E,m),m.on("drain",Ue))}E.on("data",ze);function ze(or){x("ondata");let Qt=m.write(or);x("dest.write",Qt),Qt===!1&&He()}function _t(or){if(x("onerror",or),qt(),m.removeListener("error",_t),m.listenerCount("error")===0){let Qt=m._writableState||m._readableState;Qt&&!Qt.errorEmitted?G(m,or):m.emit("error",or)}}v(m,"error",_t);function Xt(){m.removeListener("finish",Lt),qt()}m.once("close",Xt);function Lt(){x("onfinish"),m.removeListener("close",Xt),qt()}m.once("finish",Lt);function qt(){x("unpipe"),E.unpipe(m)}return m.emit("pipe",E),m.writableNeedDrain===!0?O.flowing&&He():O.flowing||(x("pipe resume"),E.resume()),m};function P(m,h){return function(){let E=m._readableState;E.awaitDrainWriters===h?(x("pipeOnDrain",1),E.awaitDrainWriters=null):E.multiAwaitDrain&&(x("pipeOnDrain",E.awaitDrainWriters.size),E.awaitDrainWriters.delete(h)),(!E.awaitDrainWriters||E.awaitDrainWriters.size===0)&&m.listenerCount("data")&&m.resume()}}F.prototype.unpipe=function(m){let h=this._readableState,E={hasUnpiped:!1};if(h.pipes.length===0)return this;if(!m){let te=h.pipes;h.pipes=[],this.pause();for(let he=0;he0,O.flowing!==!1&&this.resume()):m==="readable"&&!O.endEmitted&&!O.readableListening&&(O.readableListening=O.needReadable=!0,O.flowing=!1,O.emittedReadable=!1,x("on readable",O.length,O.reading),O.length?X(this):O.reading||r.nextTick(B,this)),E},F.prototype.addListener=F.prototype.on,F.prototype.removeListener=function(m,h){let E=b.prototype.removeListener.call(this,m,h);return m==="readable"&&r.nextTick(V,this),E},F.prototype.off=F.prototype.removeListener,F.prototype.removeAllListeners=function(m){let h=b.prototype.removeAllListeners.apply(this,arguments);return(m==="readable"||m===void 0)&&r.nextTick(V,this),h};function V(m){let h=m._readableState;h.readableListening=m.listenerCount("readable")>0,h.resumeScheduled&&h[ne]===!1?h.flowing=!0:m.listenerCount("data")>0?m.resume():h.readableListening||(h.flowing=null)}function B(m){x("readable nexttick read 0"),m.read(0)}F.prototype.resume=function(){let m=this._readableState;return m.flowing||(x("resume"),m.flowing=!m.readableListening,H(this,m)),m[ne]=!1,this};function H(m,h){h.resumeScheduled||(h.resumeScheduled=!0,r.nextTick(q,m,h))}function q(m,h){x("resume",h.reading),h.reading||m.read(0),h.resumeScheduled=!1,m.emit("resume"),ue(m),h.flowing&&!h.reading&&m.read(0)}F.prototype.pause=function(){return x("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(x("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[ne]=!0,this};function ue(m){let h=m._readableState;for(x("flow",h.flowing);h.flowing&&m.read()!==null;);}F.prototype.wrap=function(m){let h=!1;m.on("data",O=>{!this.push(O)&&m.pause&&(h=!0,m.pause())}),m.on("end",()=>{this.push(null)}),m.on("error",O=>{G(this,O)}),m.on("close",()=>{this.destroy()}),m.on("destroy",()=>{this.destroy()}),this._read=()=>{h&&m.resume&&(h=!1,m.resume())};let E=l(m);for(let O=1;O{te=Ce?j(te,Ce):null,E(),E=fe});try{for(;;){let Ce=m.destroyed?null:m.read();if(Ce!==null)yield Ce;else{if(te)throw te;if(te===null)return;await new c(O)}}}catch(Ce){throw te=j(te,Ce),te}finally{(te||(h==null?void 0:h.destroyOnReturn)!==!1)&&(te===void 0||m._readableState.autoDestroy)?A.destroyer(m,null):(m.off("readable",O),he())}}o(F.prototype,{readable:{__proto__:null,get(){let m=this._readableState;return!!m&&m.readable!==!1&&!m.destroyed&&!m.errorEmitted&&!m.endEmitted},set(m){this._readableState&&(this._readableState.readable=!!m)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(m){this._readableState&&(this._readableState.flowing=m)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(m){this._readableState&&(this._readableState.destroyed=m)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),o(pe.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(m){this[ne]=!!m}}}),F._fromList=ie;function ie(m,h){if(h.length===0)return null;let E;return h.objectMode?E=h.buffer.shift():!m||m>=h.length?(h.decoder?E=h.buffer.join(""):h.buffer.length===1?E=h.buffer.first():E=h.buffer.concat(h.length),h.buffer.clear()):E=h.buffer.consume(m,h.decoder),E}function Q(m){let h=m._readableState;x("endReadable",h.endEmitted),h.endEmitted||(h.ended=!0,r.nextTick(oe,h,m))}function oe(m,h){if(x("endReadableNT",m.endEmitted,m.length),!m.errored&&!m.closeEmitted&&!m.endEmitted&&m.length===0){if(m.endEmitted=!0,h.emit("end"),h.writable&&h.allowHalfOpen===!1)r.nextTick(me,h);else if(m.autoDestroy){let E=h._writableState;(!E||E.autoDestroy&&(E.finished||E.writable===!1))&&h.destroy()}}}function me(m){m.writable&&!m.writableEnded&&!m.destroyed&&m.end()}F.from=function(m,h){return N(F,m,h)};var Te;function S(){return Te===void 0&&(Te={}),Te}F.fromWeb=function(m,h){return S().newStreamReadableFromReadableStream(m,h)},F.toWeb=function(m,h){return S().newReadableStreamFromStreamReadable(m,h)},F.wrap=function(m,h){var E,O;return new F({objectMode:(E=(O=m.readableObjectMode)!==null&&O!==void 0?O:m.objectMode)!==null&&E!==void 0?E:!0,...h,destroy(te,he){A.destroyer(m,te),he(te)}}).wrap(m)}}),nE=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{ArrayPrototypeSlice:n,Error:s,FunctionPrototypeSymbolHasInstance:i,ObjectDefineProperty:a,ObjectDefineProperties:o,ObjectSetPrototypeOf:l,StringPrototypeToLowerCase:u,Symbol:c,SymbolHasInstance:f}=Zt();e.exports=re,re.WritableState=Z;var{EventEmitter:d}=(la(),It(so)),p=_m().Stream,{Buffer:g}=(dr(),It(fr)),b=aa(),{addAbortSignal:v}=Jc(),{getHighWaterMark:w,getDefaultHighWaterMark:_}=Em(),{ERR_INVALID_ARG_TYPE:y,ERR_METHOD_NOT_IMPLEMENTED:x,ERR_MULTIPLE_CALLBACK:T,ERR_STREAM_CANNOT_PIPE:A,ERR_STREAM_DESTROYED:C,ERR_STREAM_ALREADY_FINISHED:L,ERR_STREAM_NULL_VALUES:j,ERR_STREAM_WRITE_AFTER_END:R,ERR_UNKNOWN_ENCODING:U}=Dr().codes,{errorOrDestroy:I}=b;l(re.prototype,p.prototype),l(re,p);function M(){}var $=c("kOnFinished");function Z(B,H,q){typeof q!="boolean"&&(q=H instanceof Ai()),this.objectMode=!!(B&&B.objectMode),q&&(this.objectMode=this.objectMode||!!(B&&B.writableObjectMode)),this.highWaterMark=B?w(this,B,"writableHighWaterMark",q):_(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let ue=!!(B&&B.decodeStrings===!1);this.decodeStrings=!ue,this.defaultEncoding=B&&B.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=F.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,ne(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!B||B.emitClose!==!1,this.autoDestroy=!B||B.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[$]=[]}function ne(B){B.buffered=[],B.bufferedIndex=0,B.allBuffers=!0,B.allNoop=!0}Z.prototype.getBuffer=function(){return n(this.buffered,this.bufferedIndex)},a(Z.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function re(B){let H=this instanceof Ai();if(!H&&!i(re,this))return new re(B);this._writableState=new Z(B,this,H),B&&(typeof B.write=="function"&&(this._write=B.write),typeof B.writev=="function"&&(this._writev=B.writev),typeof B.destroy=="function"&&(this._destroy=B.destroy),typeof B.final=="function"&&(this._final=B.final),typeof B.construct=="function"&&(this._construct=B.construct),B.signal&&v(B.signal,this)),p.call(this,B),b.construct(this,()=>{let q=this._writableState;q.writing||K(this,q),ce(this,q)})}a(re,f,{__proto__:null,value:function(B){return i(this,B)?!0:this!==re?!1:B&&B._writableState instanceof Z}}),re.prototype.pipe=function(){I(this,new A)};function N(B,H,q,ue){let J=B._writableState;if(typeof q=="function")ue=q,q=J.defaultEncoding;else{if(!q)q=J.defaultEncoding;else if(q!=="buffer"&&!g.isEncoding(q))throw new U(q);typeof ue!="function"&&(ue=M)}if(H===null)throw new j;if(!J.objectMode)if(typeof H=="string")J.decodeStrings!==!1&&(H=g.from(H,q),q="buffer");else if(H instanceof g)q="buffer";else if(p._isUint8Array(H))H=p._uint8ArrayToBuffer(H),q="buffer";else throw new y("chunk",["string","Buffer","Uint8Array"],H);let Y;return J.ending?Y=new R:J.destroyed&&(Y=new C("write")),Y?(r.nextTick(ue,Y),I(B,Y,!0),Y):(J.pendingcb++,fe(B,J,H,q,ue))}re.prototype.write=function(B,H,q){return N(this,B,H,q)===!0},re.prototype.cork=function(){this._writableState.corked++},re.prototype.uncork=function(){let B=this._writableState;B.corked&&(B.corked--,B.writing||K(this,B))},re.prototype.setDefaultEncoding=function(B){if(typeof B=="string"&&(B=u(B)),!g.isEncoding(B))throw new U(B);return this._writableState.defaultEncoding=B,this};function fe(B,H,q,ue,J){let Y=H.objectMode?1:q.length;H.length+=Y;let ie=H.lengthq.bufferedIndex&&K(B,q),ue?q.afterWriteTickInfo!==null&&q.afterWriteTickInfo.cb===J?q.afterWriteTickInfo.count++:(q.afterWriteTickInfo={count:1,cb:J,stream:B,state:q},r.nextTick(de,q.afterWriteTickInfo)):Se(B,q,1,J))}function de({stream:B,state:H,count:q,cb:ue}){return H.afterWriteTickInfo=null,Se(B,H,q,ue)}function Se(B,H,q,ue){for(!H.ending&&!B.destroyed&&H.length===0&&H.needDrain&&(H.needDrain=!1,B.emit("drain"));q-- >0;)H.pendingcb--,ue();H.destroyed&&ee(H),ce(B,H)}function ee(B){if(B.writing)return;for(let J=B.bufferedIndex;J1&&B._writev){H.pendingcb-=Y-1;let Q=H.allNoop?M:me=>{for(let Te=ie;Te256?(q.splice(0,ie),H.bufferedIndex=0):H.bufferedIndex=ie}H.bufferProcessing=!1}re.prototype._write=function(B,H,q){if(this._writev)this._writev([{chunk:B,encoding:H}],q);else throw new x("_write()")},re.prototype._writev=null,re.prototype.end=function(B,H,q){let ue=this._writableState;typeof B=="function"?(q=B,B=null,H=null):typeof H=="function"&&(q=H,H=null);let J;if(B!=null){let Y=N(this,B,H);Y instanceof s&&(J=Y)}return ue.corked&&(ue.corked=1,this.uncork()),J||(!ue.errored&&!ue.ending?(ue.ending=!0,ce(this,ue,!0),ue.ended=!0):ue.finished?J=new L("end"):ue.destroyed&&(J=new C("end"))),typeof q=="function"&&(J||ue.finished?r.nextTick(q,J):ue[$].push(q)),this};function W(B){return B.ending&&!B.destroyed&&B.constructed&&B.length===0&&!B.errored&&B.buffered.length===0&&!B.finished&&!B.writing&&!B.errorEmitted&&!B.closeEmitted}function D(B,H){let q=!1;function ue(J){if(q){I(B,J??T());return}if(q=!0,H.pendingcb--,J){let Y=H[$].splice(0);for(let ie=0;ie{W(J)?le(ue,J):J.pendingcb--},B,H)):W(H)&&(H.pendingcb++,le(B,H))))}function le(B,H){H.pendingcb--,H.finished=!0;let q=H[$].splice(0);for(let ue=0;ue{Pe(),Le(),Oe();var r=io(),n=(dr(),It(fr)),{isReadable:s,isWritable:i,isIterable:a,isNodeStream:o,isReadableNodeStream:l,isWritableNodeStream:u,isDuplexNodeStream:c}=Oi(),f=ls(),{AbortError:d,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g}}=Dr(),{destroyer:b}=aa(),v=Ai(),w=ef(),{createDeferredPromise:_}=Ti(),y=rE(),x=globalThis.Blob||n.Blob,T=typeof x<"u"?function(U){return U instanceof x}:function(U){return!1},A=globalThis.AbortController||vm().AbortController,{FunctionPrototypeCall:C}=Zt(),L=class extends v{constructor(U){super(U),(U==null?void 0:U.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(U==null?void 0:U.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};e.exports=function U(I,M){if(c(I))return I;if(l(I))return R({readable:I});if(u(I))return R({writable:I});if(o(I))return R({writable:!1,readable:!1});if(typeof I=="function"){let{value:Z,write:ne,final:re,destroy:N}=j(I);if(a(Z))return y(L,Z,{objectMode:!0,write:ne,final:re,destroy:N});let fe=Z==null?void 0:Z.then;if(typeof fe=="function"){let G,pe=C(fe,Z,F=>{if(F!=null)throw new g("nully","body",F)},F=>{b(G,F)});return G=new L({objectMode:!0,readable:!1,write:ne,final(F){re(async()=>{try{await pe,r.nextTick(F,null)}catch(de){r.nextTick(F,de)}})},destroy:N})}throw new g("Iterable, AsyncIterable or AsyncFunction",M,Z)}if(T(I))return U(I.arrayBuffer());if(a(I))return y(L,I,{objectMode:!0,writable:!1});if(typeof(I==null?void 0:I.writable)=="object"||typeof(I==null?void 0:I.readable)=="object"){let Z=I!=null&&I.readable?l(I==null?void 0:I.readable)?I==null?void 0:I.readable:U(I.readable):void 0,ne=I!=null&&I.writable?u(I==null?void 0:I.writable)?I==null?void 0:I.writable:U(I.writable):void 0;return R({readable:Z,writable:ne})}let $=I==null?void 0:I.then;if(typeof $=="function"){let Z;return C($,I,ne=>{ne!=null&&Z.push(ne),Z.push(null)},ne=>{b(Z,ne)}),Z=new L({objectMode:!0,writable:!1,read(){}})}throw new p(M,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],I)};function j(U){let{promise:I,resolve:M}=_(),$=new A,Z=$.signal;return{value:U(async function*(){for(;;){let ne=I;I=null;let{chunk:re,done:N,cb:fe}=await ne;if(r.nextTick(fe),N)return;if(Z.aborted)throw new d(void 0,{cause:Z.reason});({promise:I,resolve:M}=_()),yield re}}(),{signal:Z}),write(ne,re,N){let fe=M;M=null,fe({chunk:ne,done:!1,cb:N})},final(ne){let re=M;M=null,re({done:!0,cb:ne})},destroy(ne,re){$.abort(),re(ne)}}}function R(U){let I=U.readable&&typeof U.readable.read!="function"?w.wrap(U.readable):U.readable,M=U.writable,$=!!s(I),Z=!!i(M),ne,re,N,fe,G;function pe(F){let de=fe;fe=null,de?de(F):F&&G.destroy(F)}return G=new L({readableObjectMode:!!(I!=null&&I.readableObjectMode),writableObjectMode:!!(M!=null&&M.writableObjectMode),readable:$,writable:Z}),Z&&(f(M,F=>{Z=!1,F&&b(I,F),pe(F)}),G._write=function(F,de,Se){M.write(F,de)?Se():ne=Se},G._final=function(F){M.end(),re=F},M.on("drain",function(){if(ne){let F=ne;ne=null,F()}}),M.on("finish",function(){if(re){let F=re;re=null,F()}})),$&&(f(I,F=>{$=!1,F&&b(I,F),pe(F)}),I.on("readable",function(){if(N){let F=N;N=null,F()}}),I.on("end",function(){G.push(null)}),G._read=function(){for(;;){let F=I.read();if(F===null){N=G._read;return}if(!G.push(F))return}}),G._destroy=function(F,de){!F&&fe!==null&&(F=new d),N=null,ne=null,re=null,fe===null?de(F):(fe=de,b(M,F),b(I,F))},G}}),Ai=Ne((t,e)=>{Pe(),Le(),Oe();var{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:s,ObjectSetPrototypeOf:i}=Zt();e.exports=l;var a=ef(),o=nE();i(l.prototype,a.prototype),i(l,a);{let d=s(o.prototype);for(let p=0;p{Pe(),Le(),Oe();var{ObjectSetPrototypeOf:r,Symbol:n}=Zt();e.exports=l;var{ERR_METHOD_NOT_IMPLEMENTED:s}=Dr().codes,i=Ai(),{getHighWaterMark:a}=Em();r(l.prototype,i.prototype),r(l,i);var o=n("kCallback");function l(f){if(!(this instanceof l))return new l(f);let d=f?a(this,f,"readableHighWaterMark",!0):null;d===0&&(f={...f,highWaterMark:null,readableHighWaterMark:d,writableHighWaterMark:f.writableHighWaterMark||0}),i.call(this,f),this._readableState.sync=!1,this[o]=null,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",c)}function u(f){typeof this._flush=="function"&&!this.destroyed?this._flush((d,p)=>{if(d){f?f(d):this.destroy(d);return}p!=null&&this.push(p),this.push(null),f&&f()}):(this.push(null),f&&f())}function c(){this._final!==u&&u.call(this)}l.prototype._final=u,l.prototype._transform=function(f,d,p){throw new s("_transform()")},l.prototype._write=function(f,d,p){let g=this._readableState,b=this._writableState,v=g.length;this._transform(f,d,(w,_)=>{if(w){p(w);return}_!=null&&this.push(_),b.ended||v===g.length||g.length{Pe(),Le(),Oe();var{ObjectSetPrototypeOf:r}=Zt();e.exports=s;var n=iE();r(s.prototype,n.prototype),r(s,n);function s(i){if(!(this instanceof s))return new s(i);n.call(this,i)}s.prototype._transform=function(i,a,o){o(null,i)}}),Tm=Ne((t,e)=>{Pe(),Le(),Oe();var r=io(),{ArrayIsArray:n,Promise:s,SymbolAsyncIterator:i}=Zt(),a=ls(),{once:o}=Ti(),l=aa(),u=Ai(),{aggregateTwoErrors:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:d,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:g,ERR_STREAM_PREMATURE_CLOSE:b},AbortError:v}=Dr(),{validateFunction:w,validateAbortSignal:_}=Qc(),{isIterable:y,isReadable:x,isReadableNodeStream:T,isNodeStream:A,isTransformStream:C,isWebStream:L,isReadableStream:j,isReadableEnded:R}=Oi(),U=globalThis.AbortController||vm().AbortController,I,M;function $(de,Se,ee){let K=!1;de.on("close",()=>{K=!0});let W=a(de,{readable:Se,writable:ee},D=>{K=!D});return{destroy:D=>{K||(K=!0,l.destroyer(de,D||new g("pipe")))},cleanup:W}}function Z(de){return w(de[de.length-1],"streams[stream.length - 1]"),de.pop()}function ne(de){if(y(de))return de;if(T(de))return re(de);throw new f("val",["Readable","Iterable","AsyncIterable"],de)}async function*re(de){M||(M=ef()),yield*M.prototype[i].call(de)}async function N(de,Se,ee,{end:K}){let W,D=null,X=k=>{if(k&&(W=k),D){let P=D;D=null,P()}},ce=()=>new s((k,P)=>{W?P(W):D=()=>{W?P(W):k()}});Se.on("drain",X);let le=a(Se,{readable:!1},X);try{Se.writableNeedDrain&&await ce();for await(let k of de)Se.write(k)||await ce();K&&Se.end(),await ce(),ee()}catch(k){ee(W!==k?c(W,k):k)}finally{le(),Se.off("drain",X)}}async function fe(de,Se,ee,{end:K}){C(Se)&&(Se=Se.writable);let W=Se.getWriter();try{for await(let D of de)await W.ready,W.write(D).catch(()=>{});await W.ready,K&&await W.close(),ee()}catch(D){try{await W.abort(D),ee(D)}catch(X){ee(X)}}}function G(...de){return pe(de,o(Z(de)))}function pe(de,Se,ee){if(de.length===1&&n(de[0])&&(de=de[0]),de.length<2)throw new p("streams");let K=new U,W=K.signal,D=ee==null?void 0:ee.signal,X=[];_(D,"options.signal");function ce(){H(new v)}D==null||D.addEventListener("abort",ce);let le,k,P=[],V=0;function B(Y){H(Y,--V===0)}function H(Y,ie){if(Y&&(!le||le.code==="ERR_STREAM_PREMATURE_CLOSE")&&(le=Y),!(!le&&!ie)){for(;P.length;)P.shift()(le);D==null||D.removeEventListener("abort",ce),K.abort(),ie&&(le||X.forEach(Q=>Q()),r.nextTick(Se,le,k))}}let q;for(let Y=0;Y0,me=Q||(ee==null?void 0:ee.end)!==!1,Te=Y===de.length-1;if(A(ie)){let S=function(m){m&&m.name!=="AbortError"&&m.code!=="ERR_STREAM_PREMATURE_CLOSE"&&B(m)};if(me){let{destroy:m,cleanup:h}=$(ie,Q,oe);P.push(m),x(ie)&&Te&&X.push(h)}ie.on("error",S),x(ie)&&Te&&X.push(()=>{ie.removeListener("error",S)})}if(Y===0)if(typeof ie=="function"){if(q=ie({signal:W}),!y(q))throw new d("Iterable, AsyncIterable or Stream","source",q)}else y(ie)||T(ie)||C(ie)?q=ie:q=u.from(ie);else if(typeof ie=="function"){if(C(q)){var ue;q=ne((ue=q)===null||ue===void 0?void 0:ue.readable)}else q=ne(q);if(q=ie(q,{signal:W}),Q){if(!y(q,!0))throw new d("AsyncIterable",`transform[${Y-1}]`,q)}else{var J;I||(I=sE());let S=new I({objectMode:!0}),m=(J=q)===null||J===void 0?void 0:J.then;if(typeof m=="function")V++,m.call(q,O=>{k=O,O!=null&&S.write(O),me&&S.end(),r.nextTick(B)},O=>{S.destroy(O),r.nextTick(B,O)});else if(y(q,!0))V++,N(q,S,B,{end:me});else if(j(q)||C(q)){let O=q.readable||q;V++,N(O,S,B,{end:me})}else throw new d("AsyncIterable or Promise","destination",q);q=S;let{destroy:h,cleanup:E}=$(q,!1,!0);P.push(h),Te&&X.push(E)}}else if(A(ie)){if(T(q)){V+=2;let S=F(q,ie,B,{end:me});x(ie)&&Te&&X.push(S)}else if(C(q)||j(q)){let S=q.readable||q;V++,N(S,ie,B,{end:me})}else if(y(q))V++,N(q,ie,B,{end:me});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],q);q=ie}else if(L(ie)){if(T(q))V++,fe(ne(q),ie,B,{end:me});else if(j(q)||y(q))V++,fe(q,ie,B,{end:me});else if(C(q))V++,fe(q.readable,ie,B,{end:me});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],q);q=ie}else q=u.from(ie)}return(W!=null&&W.aborted||D!=null&&D.aborted)&&r.nextTick(ce),q}function F(de,Se,ee,{end:K}){let W=!1;if(Se.on("close",()=>{W||ee(new b)}),de.pipe(Se,{end:!1}),K){let D=function(){W=!0,Se.end()};R(de)?r.nextTick(D):de.once("end",D)}else ee();return a(de,{readable:!0,writable:!1},D=>{let X=de._readableState;D&&D.code==="ERR_STREAM_PREMATURE_CLOSE"&&X&&X.ended&&!X.errored&&!X.errorEmitted?de.once("end",ee).once("error",ee):ee(D)}),a(Se,{readable:!1,writable:!0},ee)}e.exports={pipelineImpl:pe,pipeline:G}}),oE=Ne((t,e)=>{Pe(),Le(),Oe();var{pipeline:r}=Tm(),n=Ai(),{destroyer:s}=aa(),{isNodeStream:i,isReadable:a,isWritable:o,isWebStream:l,isTransformStream:u,isWritableStream:c,isReadableStream:f}=Oi(),{AbortError:d,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:g}}=Dr(),b=ls();e.exports=function(...v){if(v.length===0)throw new g("streams");if(v.length===1)return n.from(v[0]);let w=[...v];if(typeof v[0]=="function"&&(v[0]=n.from(v[0])),typeof v[v.length-1]=="function"){let I=v.length-1;v[I]=n.from(v[I])}for(let I=0;I0&&!(o(v[I])||c(v[I])||u(v[I])))throw new p(`streams[${I}]`,w[I],"must be writable")}let _,y,x,T,A;function C(I){let M=T;T=null,M?M(I):I?A.destroy(I):!U&&!R&&A.destroy()}let L=v[0],j=r(v,C),R=!!(o(L)||c(L)||u(L)),U=!!(a(j)||f(j)||u(j));if(A=new n({writableObjectMode:!!(L!=null&&L.writableObjectMode),readableObjectMode:!!(j!=null&&j.writableObjectMode),writable:R,readable:U}),R){if(i(L))A._write=function(M,$,Z){L.write(M,$)?Z():_=Z},A._final=function(M){L.end(),y=M},L.on("drain",function(){if(_){let M=_;_=null,M()}});else if(l(L)){let M=(u(L)?L.writable:L).getWriter();A._write=async function($,Z,ne){try{await M.ready,M.write($).catch(()=>{}),ne()}catch(re){ne(re)}},A._final=async function($){try{await M.ready,M.close().catch(()=>{}),y=$}catch(Z){$(Z)}}}let I=u(j)?j.readable:j;b(I,()=>{if(y){let M=y;y=null,M()}})}if(U){if(i(j))j.on("readable",function(){if(x){let I=x;x=null,I()}}),j.on("end",function(){A.push(null)}),A._read=function(){for(;;){let I=j.read();if(I===null){x=A._read;return}if(!A.push(I))return}};else if(l(j)){let I=(u(j)?j.readable:j).getReader();A._read=async function(){for(;;)try{let{value:M,done:$}=await I.read();if(!A.push(M))return;if($){A.push(null);return}}catch{return}}}}return A._destroy=function(I,M){!I&&T!==null&&(I=new d),x=null,_=null,y=null,T===null?M(I):(T=M,i(j)&&s(j,I))},A}}),fL=Ne((t,e)=>{Pe(),Le(),Oe();var r=globalThis.AbortController||vm().AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:s,ERR_MISSING_ARGS:i,ERR_OUT_OF_RANGE:a},AbortError:o}=Dr(),{validateAbortSignal:l,validateInteger:u,validateObject:c}=Qc(),f=Zt().Symbol("kWeak"),{finished:d}=ls(),p=oE(),{addAbortSignalNoValidate:g}=Jc(),{isWritable:b,isNodeStream:v}=Oi(),{ArrayPrototypePush:w,MathFloor:_,Number:y,NumberIsNaN:x,Promise:T,PromiseReject:A,PromisePrototypeThen:C,Symbol:L}=Zt(),j=L("kEmpty"),R=L("kEof");function U(K,W){if(W!=null&&c(W,"options"),(W==null?void 0:W.signal)!=null&&l(W.signal,"options.signal"),v(K)&&!b(K))throw new n("stream",K,"must be writable");let D=p(this,K);return W!=null&&W.signal&&g(W.signal,D),D}function I(K,W){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);W!=null&&c(W,"options"),(W==null?void 0:W.signal)!=null&&l(W.signal,"options.signal");let D=1;return(W==null?void 0:W.concurrency)!=null&&(D=_(W.concurrency)),u(D,"concurrency",1),(async function*(){var X,ce;let le=new r,k=this,P=[],V=le.signal,B={signal:V},H=()=>le.abort();W!=null&&(X=W.signal)!==null&&X!==void 0&&X.aborted&&H(),W==null||(ce=W.signal)===null||ce===void 0||ce.addEventListener("abort",H);let q,ue,J=!1;function Y(){J=!0}async function ie(){try{for await(let me of k){var Q;if(J)return;if(V.aborted)throw new o;try{me=K(me,B)}catch(Te){me=A(Te)}me!==j&&(typeof((Q=me)===null||Q===void 0?void 0:Q.catch)=="function"&&me.catch(Y),P.push(me),q&&(q(),q=null),!J&&P.length&&P.length>=D&&await new T(Te=>{ue=Te}))}P.push(R)}catch(me){let Te=A(me);C(Te,void 0,Y),P.push(Te)}finally{var oe;J=!0,q&&(q(),q=null),W==null||(oe=W.signal)===null||oe===void 0||oe.removeEventListener("abort",H)}}ie();try{for(;;){for(;P.length>0;){let Q=await P[0];if(Q===R)return;if(V.aborted)throw new o;Q!==j&&(yield Q),P.shift(),ue&&(ue(),ue=null)}await new T(Q=>{q=Q})}}finally{le.abort(),J=!0,ue&&(ue(),ue=null)}}).call(this)}function M(K=void 0){return K!=null&&c(K,"options"),(K==null?void 0:K.signal)!=null&&l(K.signal,"options.signal"),(async function*(){let W=0;for await(let X of this){var D;if(K!=null&&(D=K.signal)!==null&&D!==void 0&&D.aborted)throw new o({cause:K.signal.reason});yield[W++,X]}}).call(this)}async function $(K,W=void 0){for await(let D of N.call(this,K,W))return!0;return!1}async function Z(K,W=void 0){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);return!await $.call(this,async(...D)=>!await K(...D),W)}async function ne(K,W){for await(let D of N.call(this,K,W))return D}async function re(K,W){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);async function D(X,ce){return await K(X,ce),j}for await(let X of I.call(this,D,W));}function N(K,W){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);async function D(X,ce){return await K(X,ce)?X:j}return I.call(this,D,W)}var fe=class extends i{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function G(K,W,D){var X;if(typeof K!="function")throw new s("reducer",["Function","AsyncFunction"],K);D!=null&&c(D,"options"),(D==null?void 0:D.signal)!=null&&l(D.signal,"options.signal");let ce=arguments.length>1;if(D!=null&&(X=D.signal)!==null&&X!==void 0&&X.aborted){let B=new o(void 0,{cause:D.signal.reason});throw this.once("error",()=>{}),await d(this.destroy(B)),B}let le=new r,k=le.signal;if(D!=null&&D.signal){let B={once:!0,[f]:this};D.signal.addEventListener("abort",()=>le.abort(),B)}let P=!1;try{for await(let B of this){var V;if(P=!0,D!=null&&(V=D.signal)!==null&&V!==void 0&&V.aborted)throw new o;ce?W=await K(W,B,{signal:k}):(W=B,ce=!0)}if(!P&&!ce)throw new fe}finally{le.abort()}return W}async function pe(K){K!=null&&c(K,"options"),(K==null?void 0:K.signal)!=null&&l(K.signal,"options.signal");let W=[];for await(let X of this){var D;if(K!=null&&(D=K.signal)!==null&&D!==void 0&&D.aborted)throw new o(void 0,{cause:K.signal.reason});w(W,X)}return W}function F(K,W){let D=I.call(this,K,W);return(async function*(){for await(let X of D)yield*X}).call(this)}function de(K){if(K=y(K),x(K))return 0;if(K<0)throw new a("number",">= 0",K);return K}function Se(K,W=void 0){return W!=null&&c(W,"options"),(W==null?void 0:W.signal)!=null&&l(W.signal,"options.signal"),K=de(K),(async function*(){var D;if(W!=null&&(D=W.signal)!==null&&D!==void 0&&D.aborted)throw new o;for await(let ce of this){var X;if(W!=null&&(X=W.signal)!==null&&X!==void 0&&X.aborted)throw new o;K--<=0&&(yield ce)}}).call(this)}function ee(K,W=void 0){return W!=null&&c(W,"options"),(W==null?void 0:W.signal)!=null&&l(W.signal,"options.signal"),K=de(K),(async function*(){var D;if(W!=null&&(D=W.signal)!==null&&D!==void 0&&D.aborted)throw new o;for await(let ce of this){var X;if(W!=null&&(X=W.signal)!==null&&X!==void 0&&X.aborted)throw new o;if(K-- >0)yield ce;else return}}).call(this)}e.exports.streamReturningOperators={asIndexedPairs:M,drop:Se,filter:N,flatMap:F,map:I,take:ee,compose:U},e.exports.promiseReturningOperators={every:Z,forEach:re,reduce:G,toArray:pe,some:$,find:ne}}),aE=Ne((t,e)=>{Pe(),Le(),Oe();var{ArrayPrototypePop:r,Promise:n}=Zt(),{isIterable:s,isNodeStream:i,isWebStream:a}=Oi(),{pipelineImpl:o}=Tm(),{finished:l}=ls();lE();function u(...c){return new n((f,d)=>{let p,g,b=c[c.length-1];if(b&&typeof b=="object"&&!i(b)&&!s(b)&&!a(b)){let v=r(c);p=v.signal,g=v.end}o(c,(v,w)=>{v?d(v):f(w)},{signal:p,end:g})})}e.exports={finished:l,pipeline:u}}),lE=Ne((t,e)=>{Pe(),Le(),Oe();var{Buffer:r}=(dr(),It(fr)),{ObjectDefineProperty:n,ObjectKeys:s,ReflectApply:i}=Zt(),{promisify:{custom:a}}=Ti(),{streamReturningOperators:o,promiseReturningOperators:l}=fL(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=Dr(),c=oE(),{pipeline:f}=Tm(),{destroyer:d}=aa(),p=ls(),g=aE(),b=Oi(),v=e.exports=_m().Stream;v.isDisturbed=b.isDisturbed,v.isErrored=b.isErrored,v.isReadable=b.isReadable,v.Readable=ef();for(let _ of s(o)){let y=function(...T){if(new.target)throw u();return v.Readable.from(i(x,this,T))},x=o[_];n(y,"name",{__proto__:null,value:x.name}),n(y,"length",{__proto__:null,value:x.length}),n(v.Readable.prototype,_,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}for(let _ of s(l)){let y=function(...T){if(new.target)throw u();return i(x,this,T)},x=l[_];n(y,"name",{__proto__:null,value:x.name}),n(y,"length",{__proto__:null,value:x.length}),n(v.Readable.prototype,_,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}v.Writable=nE(),v.Duplex=Ai(),v.Transform=iE(),v.PassThrough=sE(),v.pipeline=f;var{addAbortSignal:w}=Jc();v.addAbortSignal=w,v.finished=p,v.destroy=d,v.compose=c,n(v,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),n(f,a,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),n(p,a,{__proto__:null,enumerable:!0,get(){return g.finished}}),v.Stream=v,v._isUint8Array=function(_){return _ instanceof Uint8Array},v._uint8ArrayToBuffer=function(_){return r.from(_.buffer,_.byteOffset,_.byteLength)}}),oo=Ne((t,e)=>{Pe(),Le(),Oe();var r=lE(),n=aE(),s=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=s,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return n}}),e.exports.Stream=r.Stream,e.exports.default=e.exports}),dL=Ne((t,e)=>{Pe(),Le(),Oe(),typeof Object.create=="function"?e.exports=function(r,n){n&&(r.super_=n,r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(r,n){if(n){r.super_=n;var s=function(){};s.prototype=n.prototype,r.prototype=new s,r.prototype.constructor=r}}}),hL=Ne((t,e)=>{Pe(),Le(),Oe();var{Buffer:r}=(dr(),It(fr)),n=Symbol.for("BufferList");function s(i){if(!(this instanceof s))return new s(i);s._init.call(this,i)}s._init=function(i){Object.defineProperty(this,n,{value:!0}),this._bufs=[],this.length=0,i&&this.append(i)},s.prototype._new=function(i){return new s(i)},s.prototype._offset=function(i){if(i===0)return[0,0];let a=0;for(let o=0;othis.length||i<0)return;let a=this._offset(i);return this._bufs[a[0]][a[1]]},s.prototype.slice=function(i,a){return typeof i=="number"&&i<0&&(i+=this.length),typeof a=="number"&&a<0&&(a+=this.length),this.copy(null,0,i,a)},s.prototype.copy=function(i,a,o,l){if((typeof o!="number"||o<0)&&(o=0),(typeof l!="number"||l>this.length)&&(l=this.length),o>=this.length||l<=0)return i||r.alloc(0);let u=!!i,c=this._offset(o),f=l-o,d=f,p=u&&a||0,g=c[1];if(o===0&&l===this.length){if(!u)return this._bufs.length===1?this._bufs[0]:r.concat(this._bufs,this.length);for(let b=0;bv)this._bufs[b].copy(i,p,g),p+=v;else{this._bufs[b].copy(i,p,g,g+d),p+=v;break}d-=v,g&&(g=0)}return i.length>p?i.slice(0,p):i},s.prototype.shallowSlice=function(i,a){if(i=i||0,a=typeof a!="number"?this.length:a,i<0&&(i+=this.length),a<0&&(a+=this.length),i===a)return this._new();let o=this._offset(i),l=this._offset(a),u=this._bufs.slice(o[0],l[0]+1);return l[1]===0?u.pop():u[u.length-1]=u[u.length-1].slice(0,l[1]),o[1]!==0&&(u[0]=u[0].slice(o[1])),this._new(u)},s.prototype.toString=function(i,a,o){return this.slice(a,o).toString(i)},s.prototype.consume=function(i){if(i=Math.trunc(i),Number.isNaN(i)||i<=0)return this;for(;this._bufs.length;)if(i>=this._bufs[0].length)i-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(i),this.length-=i;break}return this},s.prototype.duplicate=function(){let i=this._new();for(let a=0;athis.length?this.length:a;let l=this._offset(a),u=l[0],c=l[1];for(;u=i.length){let d=f.indexOf(i,c);if(d!==-1)return this._reverseOffset([u,d]);c=f.length-i.length+1}else{let d=this._reverseOffset([u,c]);if(this._match(d,i))return d;c++}c=0}return-1},s.prototype._match=function(i,a){if(this.length-i{Pe(),Le(),Oe();var r=oo().Duplex,n=dL(),s=hL();function i(a){if(!(this instanceof i))return new i(a);if(typeof a=="function"){this._callback=a;let o=(function(l){this._callback&&(this._callback(l),this._callback=null)}).bind(this);this.on("pipe",function(l){l.on("error",o)}),this.on("unpipe",function(l){l.removeListener("error",o)}),a=null}s._init.call(this,a),r.call(this)}n(i,r),Object.assign(i.prototype,s.prototype),i.prototype._new=function(a){return new i(a)},i.prototype._write=function(a,o,l){this._appendBuffer(a),typeof l=="function"&&l()},i.prototype._read=function(a){if(!this.length)return this.push(null);a=Math.min(a,this.length),this.push(this.slice(0,a)),this.consume(a)},i.prototype.end=function(a){r.prototype.end.call(this,a),this._callback&&(this._callback(null,this.slice()),this._callback=null)},i.prototype._destroy=function(a,o){this._bufs.length=0,this.length=0,o(a)},i.prototype._isBufferList=function(a){return a instanceof i||a instanceof s||i.isBufferList(a)},i.isBufferList=s.isBufferList,e.exports=i,e.exports.BufferListStream=i,e.exports.BufferList=s}),gL=Ne((t,e)=>{Pe(),Le(),Oe();var r=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};e.exports=r}),uE=Ne((t,e)=>{Pe(),Le(),Oe();var r=e.exports,{Buffer:n}=(dr(),It(fr));r.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},r.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},r.requiredHeaderFlagsErrors={};for(let i in r.requiredHeaderFlags){let a=r.requiredHeaderFlags[i];r.requiredHeaderFlagsErrors[i]="Invalid header flag bits, must be 0x"+a.toString(16)+" for "+r.types[i]+" packet"}r.codes={};for(let i in r.types){let a=r.types[i];r.codes[a]=i}r.CMD_SHIFT=4,r.CMD_MASK=240,r.DUP_MASK=8,r.QOS_MASK=3,r.QOS_SHIFT=1,r.RETAIN_MASK=1,r.VARBYTEINT_MASK=127,r.VARBYTEINT_FIN_MASK=128,r.VARBYTEINT_MAX=268435455,r.SESSIONPRESENT_MASK=1,r.SESSIONPRESENT_HEADER=n.from([r.SESSIONPRESENT_MASK]),r.CONNACK_HEADER=n.from([r.codes.connack<[0,1].map(o=>[0,1].map(l=>{let u=n.alloc(1);return u.writeUInt8(r.codes[i]<n.from([i])),r.EMPTY={pingreq:n.from([r.codes.pingreq<<4,0]),pingresp:n.from([r.codes.pingresp<<4,0]),disconnect:n.from([r.codes.disconnect<<4,0])},r.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},r.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},r.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},r.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),mL=Ne((t,e)=>{Pe(),Le(),Oe();var r=1e3,n=r*60,s=n*60,i=s*24,a=i*7,o=i*365.25;e.exports=function(d,p){p=p||{};var g=typeof d;if(g==="string"&&d.length>0)return l(d);if(g==="number"&&isFinite(d))return p.long?c(d):u(d);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(d))};function l(d){if(d=String(d),!(d.length>100)){var p=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(d);if(p){var g=parseFloat(p[1]),b=(p[2]||"ms").toLowerCase();switch(b){case"years":case"year":case"yrs":case"yr":case"y":return g*o;case"weeks":case"week":case"w":return g*a;case"days":case"day":case"d":return g*i;case"hours":case"hour":case"hrs":case"hr":case"h":return g*s;case"minutes":case"minute":case"mins":case"min":case"m":return g*n;case"seconds":case"second":case"secs":case"sec":case"s":return g*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return g;default:return}}}}function u(d){var p=Math.abs(d);return p>=i?Math.round(d/i)+"d":p>=s?Math.round(d/s)+"h":p>=n?Math.round(d/n)+"m":p>=r?Math.round(d/r)+"s":d+"ms"}function c(d){var p=Math.abs(d);return p>=i?f(d,p,i,"day"):p>=s?f(d,p,s,"hour"):p>=n?f(d,p,n,"minute"):p>=r?f(d,p,r,"second"):d+" ms"}function f(d,p,g,b){var v=p>=g*1.5;return Math.round(d/g)+" "+b+(v?"s":"")}}),bL=Ne((t,e)=>{Pe(),Le(),Oe();function r(n){i.debug=i,i.default=i,i.coerce=f,i.disable=l,i.enable=o,i.enabled=u,i.humanize=mL(),i.destroy=d,Object.keys(n).forEach(p=>{i[p]=n[p]}),i.names=[],i.skips=[],i.formatters={};function s(p){let g=0;for(let b=0;b{if(L==="%%")return"%";C++;let R=i.formatters[j];if(typeof R=="function"){let U=y[C];L=R.call(x,U),y.splice(C,1),C--}return L}),i.formatArgs.call(x,y),(x.log||i.log).apply(x,y)}return _.namespace=p,_.useColors=i.useColors(),_.color=i.selectColor(p),_.extend=a,_.destroy=i.destroy,Object.defineProperty(_,"enabled",{enumerable:!0,configurable:!1,get:()=>b!==null?b:(v!==i.namespaces&&(v=i.namespaces,w=i.enabled(p)),w),set:y=>{b=y}}),typeof i.init=="function"&&i.init(_),_}function a(p,g){let b=i(this.namespace+(typeof g>"u"?":":g)+p);return b.log=this.log,b}function o(p){i.save(p),i.namespaces=p,i.names=[],i.skips=[];let g,b=(typeof p=="string"?p:"").split(/[\s,]+/),v=b.length;for(g=0;g"-"+g)].join(",");return i.enable(""),p}function u(p){if(p[p.length-1]==="*")return!0;let g,b;for(g=0,b=i.skips.length;g{Pe(),Le(),Oe(),t.formatArgs=n,t.save=s,t.load=i,t.useColors=r,t.storage=a(),t.destroy=(()=>{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let u="color: "+this.color;l.splice(1,0,u,"color: inherit");let c=0,f=0;l[0].replace(/%[a-zA-Z%]/g,d=>{d!=="%%"&&(c++,d==="%c"&&(f=c))}),l.splice(f,0,u)}t.log=console.debug||console.log||(()=>{});function s(l){try{l?t.storage.setItem("debug",l):t.storage.removeItem("debug")}catch{}}function i(){let l;try{l=t.storage.getItem("debug")}catch{}return!l&&typeof vt<"u"&&"env"in vt&&(l=vt.env.DEBUG),l}function a(){try{return localStorage}catch{}}e.exports=bL()(t);var{formatters:o}=e.exports;o.j=function(l){try{return JSON.stringify(l)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}}),yL=Ne((t,e)=>{Pe(),Le(),Oe();var r=pL(),{EventEmitter:n}=(la(),It(so)),s=gL(),i=uE(),a=Ci()("mqtt-packet:parser"),o=class tg extends n{constructor(){super(),this.parser=this.constructor.parser}static parser(u){return this instanceof tg?(this.settings=u||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new tg().parser(u)}_resetState(){a("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new s,this.error=null,this._list=r(),this._stateCounter=0}parse(u){for(this.error&&this._resetState(),this._list.append(u),a("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,a("parse: state complete. _stateCounter is now: %d",this._stateCounter),a("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return a("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let u=this._list.readUInt8(0),c=u>>i.CMD_SHIFT;this.packet.cmd=i.types[c];let f=u&15,d=i.requiredHeaderFlags[c];return d!=null&&f!==d?this._emitError(new Error(i.requiredHeaderFlagsErrors[c])):(this.packet.retain=(u&i.RETAIN_MASK)!==0,this.packet.qos=u>>i.QOS_SHIFT&i.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(u&i.DUP_MASK)!==0,a("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let u=this._parseVarByteNum(!0);return u&&(this.packet.length=u.value,this._list.consume(u.bytes)),a("_parseLength %d",u.value),!!u}_parsePayload(){a("_parsePayload: payload %O",this._list);let u=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}u=!0}return a("_parsePayload complete result: %s",u),u}_parseConnect(){a("_parseConnect");let u,c,f,d,p={},g=this.packet,b=this._parseString();if(b===null)return this._emitError(new Error("Cannot parse protocolId"));if(b!=="MQTT"&&b!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(g.protocolId=b,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(g.protocolVersion=this._list.readUInt8(this._pos),g.protocolVersion>=128&&(g.bridgeMode=!0,g.protocolVersion=g.protocolVersion-128),g.protocolVersion!==3&&g.protocolVersion!==4&&g.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));p.username=this._list.readUInt8(this._pos)&i.USERNAME_MASK,p.password=this._list.readUInt8(this._pos)&i.PASSWORD_MASK,p.will=this._list.readUInt8(this._pos)&i.WILL_FLAG_MASK;let v=!!(this._list.readUInt8(this._pos)&i.WILL_RETAIN_MASK),w=(this._list.readUInt8(this._pos)&i.WILL_QOS_MASK)>>i.WILL_QOS_SHIFT;if(p.will)g.will={},g.will.retain=v,g.will.qos=w;else{if(v)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(w)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(g.clean=(this._list.readUInt8(this._pos)&i.CLEAN_SESSION_MASK)!==0,this._pos++,g.keepalive=this._parseNum(),g.keepalive===-1)return this._emitError(new Error("Packet too short"));if(g.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(g.properties=y)}let _=this._parseString();if(_===null)return this._emitError(new Error("Packet too short"));if(g.clientId=_,a("_parseConnect: packet.clientId: %s",g.clientId),p.will){if(g.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(g.will.properties=y)}if(u=this._parseString(),u===null)return this._emitError(new Error("Cannot parse will topic"));if(g.will.topic=u,a("_parseConnect: packet.will.topic: %s",g.will.topic),c=this._parseBuffer(),c===null)return this._emitError(new Error("Cannot parse will payload"));g.will.payload=c,a("_parseConnect: packet.will.paylaod: %s",g.will.payload)}if(p.username){if(d=this._parseString(),d===null)return this._emitError(new Error("Cannot parse username"));g.username=d,a("_parseConnect: packet.username: %s",g.username)}if(p.password){if(f=this._parseBuffer(),f===null)return this._emitError(new Error("Cannot parse password"));g.password=f}return this.settings=g,a("_parseConnect: complete"),g}_parseConnack(){a("_parseConnack");let u=this.packet;if(this._list.length<1)return null;let c=this._list.readUInt8(this._pos++);if(c>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(u.sessionPresent=!!(c&i.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?u.reasonCode=this._list.readUInt8(this._pos++):u.reasonCode=0;else{if(this._list.length<2)return null;u.returnCode=this._list.readUInt8(this._pos++)}if(u.returnCode===-1||u.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let f=this._parseProperties();Object.getOwnPropertyNames(f).length&&(u.properties=f)}a("_parseConnack: complete")}_parsePublish(){a("_parsePublish");let u=this.packet;if(u.topic=this._parseString(),u.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(u.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}u.payload=this._list.slice(this._pos,u.length),a("_parsePublish: payload from buffer list: %o",u.payload)}}_parseSubscribe(){a("_parseSubscribe");let u=this.packet,c,f,d,p,g,b,v;if(u.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let w=this._parseProperties();Object.getOwnPropertyNames(w).length&&(u.properties=w)}if(u.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=u.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(f=this._parseByte(),this.settings.protocolVersion===5){if(f&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(f&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(d=f&i.SUBSCRIBE_OPTIONS_QOS_MASK,d>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(b=(f>>i.SUBSCRIBE_OPTIONS_NL_SHIFT&i.SUBSCRIBE_OPTIONS_NL_MASK)!==0,g=(f>>i.SUBSCRIBE_OPTIONS_RAP_SHIFT&i.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,p=f>>i.SUBSCRIBE_OPTIONS_RH_SHIFT&i.SUBSCRIBE_OPTIONS_RH_MASK,p>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));v={topic:c,qos:d},this.settings.protocolVersion===5?(v.nl=b,v.rap=g,v.rh=p):this.settings.bridgeMode&&(v.rh=0,v.rap=!0,v.nl=!0),a("_parseSubscribe: push subscription `%s` to subscription",v),u.subscriptions.push(v)}}}_parseSuback(){a("_parseSuback");let u=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&c!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(c)}}}_parseUnsubscribe(){a("_parseUnsubscribe");let u=this.packet;if(u.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(u.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!i.MQTT5_PUBACK_PUBREC_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!i.MQTT5_PUBREL_PUBCOMP_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}a("_parseConfirmation: packet.reasonCode `%d`",u.reasonCode)}else u.reasonCode=0;if(u.length>3){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}}return!0}_parseDisconnect(){let u=this.packet;if(a("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(u.reasonCode=this._parseByte(),i.MQTT5_DISCONNECT_CODES[u.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):u.reasonCode=0;let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}return a("_parseDisconnect result: true"),!0}_parseAuth(){a("_parseAuth");let u=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(u.reasonCode=this._parseByte(),!i.MQTT5_AUTH_CODES[u.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let c=this._parseProperties();return Object.getOwnPropertyNames(c).length&&(u.properties=c),a("_parseAuth: result: true"),!0}_parseMessageId(){let u=this.packet;return u.messageId=this._parseNum(),u.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(a("_parseMessageId: packet.messageId %d",u.messageId),!0)}_parseString(u){let c=this._parseNum(),f=c+this._pos;if(c===-1||f>this._list.length||f>this.packet.length)return null;let d=this._list.toString("utf8",this._pos,f);return this._pos+=c,a("_parseString: result: %s",d),d}_parseStringPair(){return a("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let u=this._parseNum(),c=u+this._pos;if(u===-1||c>this._list.length||c>this.packet.length)return null;let f=this._list.slice(this._pos,c);return this._pos+=u,a("_parseBuffer: result: %o",f),f}_parseNum(){if(this._list.length-this._pos<2)return-1;let u=this._list.readUInt16BE(this._pos);return this._pos+=2,a("_parseNum: result: %s",u),u}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let u=this._list.readUInt32BE(this._pos);return this._pos+=4,a("_parse4ByteNum: result: %s",u),u}_parseVarByteNum(u){a("_parseVarByteNum");let c=4,f=0,d=1,p=0,g=!1,b,v=this._pos?this._pos:0;for(;f=f&&this._emitError(new Error("Invalid variable byte integer")),v&&(this._pos+=f),g?u?g={bytes:f,value:p}:g=p:g=!1,a("_parseVarByteNum: result: %o",g),g}_parseByte(){let u;return this._pos{Pe(),Le(),Oe();var{Buffer:r}=(dr(),It(fr)),n=65536,s={},i=r.isBuffer(r.from([1,2]).subarray(0,1));function a(c){let f=r.allocUnsafe(2);return f.writeUInt8(c>>8,0),f.writeUInt8(c&255,1),f}function o(){for(let c=0;c0&&(f=f|128),p.writeUInt8(f,d++);while(c>0&&d<4);return c>0&&(d=0),i?p.subarray(0,d):p.slice(0,d)}function u(c){let f=r.allocUnsafe(4);return f.writeUInt32BE(c,0),f}e.exports={cache:s,generateCache:o,generateNumber:a,genBufVariableByteInt:l,generate4ByteBuffer:u}}),vL=Ne((t,e)=>{Pe(),Le(),Oe(),typeof vt>"u"||!vt.version||vt.version.indexOf("v0.")===0||vt.version.indexOf("v1.")===0&&vt.version.indexOf("v1.8.")!==0?e.exports={nextTick:r}:e.exports=vt;function r(n,s,i,a){if(typeof n!="function")throw new TypeError('"callback" argument must be a function');var o=arguments.length,l,u;switch(o){case 0:case 1:return vt.nextTick(n);case 2:return vt.nextTick(function(){n.call(null,s)});case 3:return vt.nextTick(function(){n.call(null,s,i)});case 4:return vt.nextTick(function(){n.call(null,s,i,a)});default:for(l=new Array(o-1),u=0;u{Pe(),Le(),Oe();var r=uE(),{Buffer:n}=(dr(),It(fr)),s=n.allocUnsafe(0),i=n.from([0]),a=wL(),o=vL().nextTick,l=Ci()("mqtt-packet:writeToStream"),u=a.cache,c=a.generateNumber,f=a.generateCache,d=a.genBufVariableByteInt,p=a.generate4ByteBuffer,g=re,b=!0;function v(W,D,X){switch(l("generate called"),D.cork&&(D.cork(),o(w,D)),b&&(b=!1,f()),l("generate: packet.cmd: %s",W.cmd),W.cmd){case"connect":return _(W,D);case"connack":return y(W,D,X);case"publish":return x(W,D,X);case"puback":case"pubrec":case"pubrel":case"pubcomp":return T(W,D,X);case"subscribe":return A(W,D,X);case"suback":return C(W,D,X);case"unsubscribe":return L(W,D,X);case"unsuback":return j(W,D,X);case"pingreq":case"pingresp":return R(W,D);case"disconnect":return U(W,D,X);case"auth":return I(W,D,X);default:return D.destroy(new Error("Unknown command")),!1}}Object.defineProperty(v,"cacheNumbers",{get(){return g===re},set(W){W?((!u||Object.keys(u).length===0)&&(b=!0),g=re):(b=!1,g=N)}});function w(W){W.uncork()}function _(W,D,X){let ce=W||{},le=ce.protocolId||"MQTT",k=ce.protocolVersion||4,P=ce.will,V=ce.clean,B=ce.keepalive||0,H=ce.clientId||"",q=ce.username,ue=ce.password,J=ce.properties;V===void 0&&(V=!0);let Y=0;if(!le||typeof le!="string"&&!n.isBuffer(le))return D.destroy(new Error("Invalid protocolId")),!1;if(Y+=le.length+2,k!==3&&k!==4&&k!==5)return D.destroy(new Error("Invalid protocol version")),!1;if(Y+=1,(typeof H=="string"||n.isBuffer(H))&&(H||k>=4)&&(H||V))Y+=n.byteLength(H)+2;else{if(k<4)return D.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(V*1===0)return D.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof B!="number"||B<0||B>65535||B%1!==0)return D.destroy(new Error("Invalid keepalive")),!1;Y+=2,Y+=1;let ie,Q;if(k===5){if(ie=pe(D,J),!ie)return!1;Y+=ie.length}if(P){if(typeof P!="object")return D.destroy(new Error("Invalid will")),!1;if(!P.topic||typeof P.topic!="string")return D.destroy(new Error("Invalid will topic")),!1;if(Y+=n.byteLength(P.topic)+2,Y+=2,P.payload)if(P.payload.length>=0)typeof P.payload=="string"?Y+=n.byteLength(P.payload):Y+=P.payload.length;else return D.destroy(new Error("Invalid will payload")),!1;if(Q={},k===5){if(Q=pe(D,P.properties),!Q)return!1;Y+=Q.length}}let oe=!1;if(q!=null)if(K(q))oe=!0,Y+=n.byteLength(q)+2;else return D.destroy(new Error("Invalid username")),!1;if(ue!=null){if(!oe)return D.destroy(new Error("Username is required to use password")),!1;if(K(ue))Y+=ee(ue)+2;else return D.destroy(new Error("Invalid password")),!1}D.write(r.CONNECT_HEADER),$(D,Y),G(D,le),ce.bridgeMode&&(k+=128),D.write(k===131?r.VERSION131:k===132?r.VERSION132:k===4?r.VERSION4:k===5?r.VERSION5:r.VERSION3);let me=0;return me|=q!=null?r.USERNAME_MASK:0,me|=ue!=null?r.PASSWORD_MASK:0,me|=P&&P.retain?r.WILL_RETAIN_MASK:0,me|=P&&P.qos?P.qos<0&&g(D,H),J==null||J.write(),l("publish: payload: %o",B),D.write(B)}function T(W,D,X){let ce=X?X.protocolVersion:4,le=W||{},k=le.cmd||"puback",P=le.messageId,V=le.dup&&k==="pubrel"?r.DUP_MASK:0,B=0,H=le.reasonCode,q=le.properties,ue=ce===5?3:2;if(k==="pubrel"&&(B=1),typeof P!="number")return D.destroy(new Error("Invalid messageId")),!1;let J=null;if(ce===5&&typeof q=="object"){if(J=F(D,q,X,ue),!J)return!1;ue+=J.length}return D.write(r.ACKS[k][B][V][0]),ue===3&&(ue+=H!==0?1:-1),$(D,ue),g(D,P),ce===5&&ue!==2&&D.write(n.from([H])),J!==null?J.write():ue===4&&D.write(n.from([0])),!0}function A(W,D,X){l("subscribe: packet: ");let ce=X?X.protocolVersion:4,le=W||{},k=le.dup?r.DUP_MASK:0,P=le.messageId,V=le.subscriptions,B=le.properties,H=0;if(typeof P!="number")return D.destroy(new Error("Invalid messageId")),!1;H+=2;let q=null;if(ce===5){if(q=pe(D,B),!q)return!1;H+=q.length}if(typeof V=="object"&&V.length)for(let J=0;J2)return D.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}H+=n.byteLength(Y)+2+1}else return D.destroy(new Error("Invalid subscriptions")),!1;l("subscribe: writing to stream: %o",r.SUBSCRIBE_HEADER),D.write(r.SUBSCRIBE_HEADER[1][k?1:0][0]),$(D,H),g(D,P),q!==null&&q.write();let ue=!0;for(let J of V){let Y=J.topic,ie=J.qos,Q=+J.nl,oe=+J.rap,me=J.rh,Te;Z(D,Y),Te=r.SUBSCRIBE_OPTIONS_QOS[ie],ce===5&&(Te|=Q?r.SUBSCRIBE_OPTIONS_NL:0,Te|=oe?r.SUBSCRIBE_OPTIONS_RAP:0,Te|=me?r.SUBSCRIBE_OPTIONS_RH[me]:0),ue=D.write(n.from([Te]))}return ue}function C(W,D,X){let ce=X?X.protocolVersion:4,le=W||{},k=le.messageId,P=le.granted,V=le.properties,B=0;if(typeof k!="number")return D.destroy(new Error("Invalid messageId")),!1;if(B+=2,typeof P=="object"&&P.length)for(let q=0;qr.VARBYTEINT_MAX)return W.destroy(new Error(`Invalid variable byte integer: ${D}`)),!1;let X=M[D];return X||(X=d(D),D<16384&&(M[D]=X)),l("writeVarByteInt: writing to stream: %o",X),W.write(X)}function Z(W,D){let X=n.byteLength(D);return g(W,X),l("writeString: %s",D),W.write(D,"utf8")}function ne(W,D,X){Z(W,D),Z(W,X)}function re(W,D){return l("writeNumberCached: number: %d",D),l("writeNumberCached: %o",u[D]),W.write(u[D])}function N(W,D){let X=c(D);return l("writeNumberGenerated: %o",X),W.write(X)}function fe(W,D){let X=p(D);return l("write4ByteNumber: %o",X),W.write(X)}function G(W,D){typeof D=="string"?Z(W,D):D?(g(W,D.length),W.write(D)):g(W,0)}function pe(W,D){if(typeof D!="object"||D.length!=null)return{length:1,write(){Se(W,{},0)}};let X=0;function ce(le,k){let P=r.propertiesTypes[le],V=0;switch(P){case"byte":{if(typeof k!="boolean")return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=2;break}case"int8":{if(typeof k!="number"||k<0||k>255)return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=2;break}case"binary":{if(k&&k===null)return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=1+n.byteLength(k)+2;break}case"int16":{if(typeof k!="number"||k<0||k>65535)return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=3;break}case"int32":{if(typeof k!="number"||k<0||k>4294967295)return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=5;break}case"var":{if(typeof k!="number"||k<0||k>268435455)return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=1+n.byteLength(d(k));break}case"string":{if(typeof k!="string")return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=3+n.byteLength(k.toString());break}case"pair":{if(typeof k!="object")return W.destroy(new Error(`Invalid ${le}: ${k}`)),!1;V+=Object.getOwnPropertyNames(k).reduce((B,H)=>{let q=k[H];return Array.isArray(q)?B+=q.reduce((ue,J)=>(ue+=3+n.byteLength(H.toString())+2+n.byteLength(J.toString()),ue),0):B+=3+n.byteLength(H.toString())+2+n.byteLength(k[H].toString()),B},0);break}default:return W.destroy(new Error(`Invalid property ${le}: ${k}`)),!1}return V}if(D)for(let le in D){let k=0,P=0,V=D[le];if(Array.isArray(V))for(let B=0;Bk;){let V=le.shift();if(V&&D[V])delete D[V],P=pe(W,D);else return!1}return P}function de(W,D,X){switch(r.propertiesTypes[D]){case"byte":{W.write(n.from([r.properties[D]])),W.write(n.from([+X]));break}case"int8":{W.write(n.from([r.properties[D]])),W.write(n.from([X]));break}case"binary":{W.write(n.from([r.properties[D]])),G(W,X);break}case"int16":{W.write(n.from([r.properties[D]])),g(W,X);break}case"int32":{W.write(n.from([r.properties[D]])),fe(W,X);break}case"var":{W.write(n.from([r.properties[D]])),$(W,X);break}case"string":{W.write(n.from([r.properties[D]])),Z(W,X);break}case"pair":{Object.getOwnPropertyNames(X).forEach(ce=>{let le=X[ce];Array.isArray(le)?le.forEach(k=>{W.write(n.from([r.properties[D]])),ne(W,ce.toString(),k.toString())}):(W.write(n.from([r.properties[D]])),ne(W,ce.toString(),le.toString()))});break}default:return W.destroy(new Error(`Invalid property ${D} value: ${X}`)),!1}}function Se(W,D,X){$(W,X);for(let ce in D)if(Object.prototype.hasOwnProperty.call(D,ce)&&D[ce]!==null){let le=D[ce];if(Array.isArray(le))for(let k=0;k{Pe(),Le(),Oe();var r=cE(),{EventEmitter:n}=(la(),It(so)),{Buffer:s}=(dr(),It(fr));function i(o,l){let u=new a;return r(o,u,l),u.concat()}var a=class extends n{constructor(){super(),this._array=new Array(20),this._i=0}write(o){return this._array[this._i++]=o,!0}concat(){let o=0,l=new Array(this._array.length),u=this._array,c=0,f;for(f=0;f{Pe(),Le(),Oe(),t.parser=yL().parser,t.generate=_L(),t.writeToStream=cE()}),fE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=class{constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let r=this.nextId++;return this.nextId===65536&&(this.nextId=1),r}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(r){return!0}deallocate(r){}clear(){}};t.default=e}),SL=Ne((t,e)=>{Pe(),Le(),Oe(),e.exports=n;function r(i){return i instanceof bc?bc.from(i):new i.constructor(i.buffer.slice(),i.byteOffset,i.length)}function n(i){if(i=i||{},i.circles)return s(i);return i.proto?l:o;function a(u,c){for(var f=Object.keys(u),d=new Array(f.length),p=0;p{Pe(),Le(),Oe(),e.exports=SL()()}),TL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.validateTopics=t.validateTopic=void 0;function e(n){let s=n.split("/");for(let i=0;i{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=oo(),r={objectMode:!0},n={clean:!0},s=class{constructor(i){this.options=i||{},this.options=Object.assign(Object.assign({},n),i),this._inflights=new Map}put(i,a){return this._inflights.set(i.messageId,i),a&&a(),this}createStream(){let i=new e.Readable(r),a=[],o=!1,l=0;return this._inflights.forEach((u,c)=>{a.push(u)}),i._read=()=>{!o&&l{if(!o)return o=!0,setTimeout(()=>{i.emit("close")},0),i},i}del(i,a){let o=this._inflights.get(i.messageId);return o?(this._inflights.delete(i.messageId),a(null,o)):a&&a(new Error("missing packet")),this}get(i,a){let o=this._inflights.get(i.messageId);return o?a(null,o):a&&a(new Error("missing packet")),this}close(i){this.options.clean&&(this._inflights=null),i&&i()}};t.default=s}),AL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=[0,16,128,131,135,144,145,151,153],r=(n,s,i)=>{n.log("handlePublish: packet %o",s),i=typeof i<"u"?i:n.noop;let a=s.topic.toString(),o=s.payload,{qos:l}=s,{messageId:u}=s,{options:c}=n;if(n.options.protocolVersion===5){let f;if(s.properties&&(f=s.properties.topicAlias),typeof f<"u")if(a.length===0)if(f>0&&f<=65535){let d=n.topicAliasRecv.getTopicByAlias(f);if(d)a=d,n.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",a,f);else{n.log("handlePublish :: unregistered topic alias. alias: %d",f),n.emit("error",new Error("Received unregistered Topic Alias"));return}}else{n.log("handlePublish :: topic alias out of range. alias: %d",f),n.emit("error",new Error("Received Topic Alias is out of range"));return}else if(n.topicAliasRecv.put(a,f))n.log("handlePublish :: registered topic: %s - alias: %d",a,f);else{n.log("handlePublish :: topic alias out of range. alias: %d",f),n.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(n.log("handlePublish: qos %d",l),l){case 2:{c.customHandleAcks(a,o,s,(f,d)=>{if(typeof f=="number"&&(d=f,f=null),f)return n.emit("error",f);if(e.indexOf(d)===-1)return n.emit("error",new Error("Wrong reason code for pubrec"));d?n._sendPacket({cmd:"pubrec",messageId:u,reasonCode:d},i):n.incomingStore.put(s,()=>{n._sendPacket({cmd:"pubrec",messageId:u},i)})});break}case 1:{c.customHandleAcks(a,o,s,(f,d)=>{if(typeof f=="number"&&(d=f,f=null),f)return n.emit("error",f);if(e.indexOf(d)===-1)return n.emit("error",new Error("Wrong reason code for puback"));d||n.emit("message",a,o,s),n.handleMessage(s,p=>{if(p)return i&&i(p);n._sendPacket({cmd:"puback",messageId:u,reasonCode:d},i)})});break}case 0:n.emit("message",a,o,s),n.handleMessage(s,i);break;default:n.log("handlePublish: unknown QoS. Doing nothing.");break}};t.default=r}),CL=Ne((t,e)=>{e.exports={version:"5.10.3"}}),ua=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.MQTTJS_VERSION=t.nextTick=t.applyMixin=t.ErrorWithReasonCode=void 0;var e=class hE extends Error{constructor(s,i){super(s),this.code=i,Object.setPrototypeOf(this,hE.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};t.ErrorWithReasonCode=e;function r(n,s,i=!1){var a;let o=[s];for(;;){let l=o[0],u=Object.getPrototypeOf(l);if(u!=null&&u.prototype)o.unshift(u);else break}for(let l of o)for(let u of Object.getOwnPropertyNames(l.prototype))(i||u!=="constructor")&&Object.defineProperty(n.prototype,u,(a=Object.getOwnPropertyDescriptor(l.prototype,u))!==null&&a!==void 0?a:Object.create(null))}t.applyMixin=r,t.nextTick=typeof(vt==null?void 0:vt.nextTick)=="function"?vt.nextTick:n=>{setTimeout(n,0)},t.MQTTJS_VERSION=CL().version}),tf=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=void 0;var e=ua();t.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var r=(n,s)=>{let{messageId:i}=s,a=s.cmd,o=null,l=n.outgoing[i]?n.outgoing[i].cb:null,u=null;if(!l){n.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(n.log("_handleAck :: packet type",a),a){case"pubcomp":case"puback":{let c=s.reasonCode;c&&c>0&&c!==16?(u=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[c]}`,c),n._removeOutgoingAndStoreMessage(i,()=>{l(u,s)})):n._removeOutgoingAndStoreMessage(i,l);break}case"pubrec":{o={cmd:"pubrel",qos:2,messageId:i};let c=s.reasonCode;c&&c>0&&c!==16?(u=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[c]}`,c),n._removeOutgoingAndStoreMessage(i,()=>{l(u,s)})):n._sendPacket(o);break}case"suback":{delete n.outgoing[i],n.messageIdProvider.deallocate(i);let c=s.granted;for(let f=0;f{delete n._resubscribeTopics[g]})}}delete n.messageIdToTopic[i],n._invokeStoreProcessingQueue(),l(u,s);break}case"unsuback":{delete n.outgoing[i],n.messageIdProvider.deallocate(i),n._invokeStoreProcessingQueue(),l(null,s);break}default:n.emit("error",new Error("unrecognized packet type"))}n.disconnecting&&Object.keys(n.outgoing).length===0&&n.emit("outgoingEmpty")};t.default=r}),IL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=ua(),r=tf(),n=(s,i)=>{let{options:a}=s,o=a.protocolVersion,l=o===5?i.reasonCode:i.returnCode;if(o!==5){let u=new e.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${o}`,l);s.emit("error",u);return}s.handleAuth(i,(u,c)=>{if(u){s.emit("error",u);return}if(l===24)s.reconnecting=!1,s._sendPacket(c);else{let f=new e.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[l]}`,l);s.emit("error",f)}})};t.default=n}),ML=Ne(t=>{var p,g,b,v,w,_,y,x,T,A,C,L,j,R,U,I,M,$,Z,ne,re,N,fe,G,pe,F,rg,Se,ee,K,W,pE,X,ce,le,Ui,Fi,ng,Du,Uu,Rt,ig,za,Y;Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=void 0;var e=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,r=new Set,n=typeof vt=="object"&&vt?vt:{},s=(ie,Q,oe,me)=>{typeof n.emitWarning=="function"?n.emitWarning(ie,Q,oe,me):console.error(`[${oe}] ${Q}: ${ie}`)},i=globalThis.AbortController,a=globalThis.AbortSignal;if(typeof i>"u"){a=class{constructor(){ve(this,"onabort");ve(this,"_onabort",[]);ve(this,"reason");ve(this,"aborted",!1)}addEventListener(oe,me){this._onabort.push(me)}},i=class{constructor(){ve(this,"signal",new a);Q()}abort(oe){var me,Te;if(!this.signal.aborted){this.signal.reason=oe,this.signal.aborted=!0;for(let S of this.signal._onabort)S(oe);(Te=(me=this.signal).onabort)==null||Te.call(me,oe)}}};let ie=((p=n.env)==null?void 0:p.LRU_CACHE_IGNORE_AC_WARNING)!=="1",Q=()=>{ie&&(ie=!1,s("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",Q))}}var o=ie=>!r.has(ie),l=ie=>ie&&ie===Math.floor(ie)&&ie>0&&isFinite(ie),u=ie=>l(ie)?ie<=Math.pow(2,8)?Uint8Array:ie<=Math.pow(2,16)?Uint16Array:ie<=Math.pow(2,32)?Uint32Array:ie<=Number.MAX_SAFE_INTEGER?c:null:null,c=class extends Array{constructor(ie){super(ie),this.fill(0)}},f=(g=class{constructor(Q,oe){ve(this,"heap");ve(this,"length");if(!ye(g,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new oe(Q),this.length=0}static create(Q){let oe=u(Q);if(!oe)return[];Ze(g,b,!0);let me=new g(Q,oe);return Ze(g,b,!1),me}push(Q){this.heap[this.length++]=Q}pop(){return this.heap[--this.length]}},b=new WeakMap,gt(g,b,!1),g),d=(Y=class{constructor(Q){gt(this,F);gt(this,v);gt(this,w);gt(this,_);gt(this,y);gt(this,x);ve(this,"ttl");ve(this,"ttlResolution");ve(this,"ttlAutopurge");ve(this,"updateAgeOnGet");ve(this,"updateAgeOnHas");ve(this,"allowStale");ve(this,"noDisposeOnSet");ve(this,"noUpdateTTL");ve(this,"maxEntrySize");ve(this,"sizeCalculation");ve(this,"noDeleteOnFetchRejection");ve(this,"noDeleteOnStaleGet");ve(this,"allowStaleOnFetchAbort");ve(this,"allowStaleOnFetchRejection");ve(this,"ignoreFetchAbort");gt(this,T);gt(this,A);gt(this,C);gt(this,L);gt(this,j);gt(this,R);gt(this,U);gt(this,I);gt(this,M);gt(this,$);gt(this,Z);gt(this,ne);gt(this,re);gt(this,N);gt(this,fe);gt(this,G);gt(this,pe);gt(this,Se,()=>{});gt(this,ee,()=>{});gt(this,K,()=>{});gt(this,W,()=>!1);gt(this,X,Q=>{});gt(this,ce,(Q,oe,me)=>{});gt(this,le,(Q,oe,me,Te)=>{if(me||Te)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});let{max:oe=0,ttl:me,ttlResolution:Te=1,ttlAutopurge:S,updateAgeOnGet:m,updateAgeOnHas:h,allowStale:E,dispose:O,disposeAfter:te,noDisposeOnSet:he,noUpdateTTL:Ce,maxSize:Ue=0,maxEntrySize:We=0,sizeCalculation:De,fetchMethod:He,noDeleteOnFetchRejection:ze,noDeleteOnStaleGet:_t,allowStaleOnFetchRejection:Xt,allowStaleOnFetchAbort:Lt,ignoreFetchAbort:qt}=Q;if(oe!==0&&!l(oe))throw new TypeError("max option must be a nonnegative integer");let or=oe?u(oe):Array;if(!or)throw new Error("invalid max value: "+oe);if(Ze(this,v,oe),Ze(this,w,Ue),this.maxEntrySize=We||ye(this,w),this.sizeCalculation=De,this.sizeCalculation){if(!ye(this,w)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(He!==void 0&&typeof He!="function")throw new TypeError("fetchMethod must be a function if specified");if(Ze(this,x,He),Ze(this,G,!!He),Ze(this,C,new Map),Ze(this,L,new Array(oe).fill(void 0)),Ze(this,j,new Array(oe).fill(void 0)),Ze(this,R,new or(oe)),Ze(this,U,new or(oe)),Ze(this,I,0),Ze(this,M,0),Ze(this,$,f.create(oe)),Ze(this,T,0),Ze(this,A,0),typeof O=="function"&&Ze(this,_,O),typeof te=="function"?(Ze(this,y,te),Ze(this,Z,[])):(Ze(this,y,void 0),Ze(this,Z,void 0)),Ze(this,fe,!!ye(this,_)),Ze(this,pe,!!ye(this,y)),this.noDisposeOnSet=!!he,this.noUpdateTTL=!!Ce,this.noDeleteOnFetchRejection=!!ze,this.allowStaleOnFetchRejection=!!Xt,this.allowStaleOnFetchAbort=!!Lt,this.ignoreFetchAbort=!!qt,this.maxEntrySize!==0){if(ye(this,w)!==0&&!l(ye(this,w)))throw new TypeError("maxSize must be a positive integer if specified");if(!l(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Xe(this,F,pE).call(this)}if(this.allowStale=!!E,this.noDeleteOnStaleGet=!!_t,this.updateAgeOnGet=!!m,this.updateAgeOnHas=!!h,this.ttlResolution=l(Te)||Te===0?Te:1,this.ttlAutopurge=!!S,this.ttl=me||0,this.ttl){if(!l(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Xe(this,F,rg).call(this)}if(ye(this,v)===0&&this.ttl===0&&ye(this,w)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!ye(this,v)&&!ye(this,w)){let Qt="LRU_CACHE_UNBOUNDED";o(Qt)&&(r.add(Qt),s("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Qt,Y))}}static unsafeExposeInternals(Q){return{starts:ye(Q,re),ttls:ye(Q,N),sizes:ye(Q,ne),keyMap:ye(Q,C),keyList:ye(Q,L),valList:ye(Q,j),next:ye(Q,R),prev:ye(Q,U),get head(){return ye(Q,I)},get tail(){return ye(Q,M)},free:ye(Q,$),isBackgroundFetch:oe=>{var me;return Xe(me=Q,F,Rt).call(me,oe)},backgroundFetch:(oe,me,Te,S)=>{var m;return Xe(m=Q,F,Uu).call(m,oe,me,Te,S)},moveToTail:oe=>{var me;return Xe(me=Q,F,za).call(me,oe)},indexes:oe=>{var me;return Xe(me=Q,F,Ui).call(me,oe)},rindexes:oe=>{var me;return Xe(me=Q,F,Fi).call(me,oe)},isStale:oe=>{var me;return ye(me=Q,W).call(me,oe)}}}get max(){return ye(this,v)}get maxSize(){return ye(this,w)}get calculatedSize(){return ye(this,A)}get size(){return ye(this,T)}get fetchMethod(){return ye(this,x)}get dispose(){return ye(this,_)}get disposeAfter(){return ye(this,y)}getRemainingTTL(Q){return ye(this,C).has(Q)?1/0:0}*entries(){for(let Q of Xe(this,F,Ui).call(this))ye(this,j)[Q]!==void 0&&ye(this,L)[Q]!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield[ye(this,L)[Q],ye(this,j)[Q]])}*rentries(){for(let Q of Xe(this,F,Fi).call(this))ye(this,j)[Q]!==void 0&&ye(this,L)[Q]!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield[ye(this,L)[Q],ye(this,j)[Q]])}*keys(){for(let Q of Xe(this,F,Ui).call(this)){let oe=ye(this,L)[Q];oe!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield oe)}}*rkeys(){for(let Q of Xe(this,F,Fi).call(this)){let oe=ye(this,L)[Q];oe!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield oe)}}*values(){for(let Q of Xe(this,F,Ui).call(this))ye(this,j)[Q]!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield ye(this,j)[Q])}*rvalues(){for(let Q of Xe(this,F,Fi).call(this))ye(this,j)[Q]!==void 0&&!Xe(this,F,Rt).call(this,ye(this,j)[Q])&&(yield ye(this,j)[Q])}[Symbol.iterator](){return this.entries()}find(Q,oe={}){for(let me of Xe(this,F,Ui).call(this)){let Te=ye(this,j)[me],S=Xe(this,F,Rt).call(this,Te)?Te.__staleWhileFetching:Te;if(S!==void 0&&Q(S,ye(this,L)[me],this))return this.get(ye(this,L)[me],oe)}}forEach(Q,oe=this){for(let me of Xe(this,F,Ui).call(this)){let Te=ye(this,j)[me],S=Xe(this,F,Rt).call(this,Te)?Te.__staleWhileFetching:Te;S!==void 0&&Q.call(oe,S,ye(this,L)[me],this)}}rforEach(Q,oe=this){for(let me of Xe(this,F,Fi).call(this)){let Te=ye(this,j)[me],S=Xe(this,F,Rt).call(this,Te)?Te.__staleWhileFetching:Te;S!==void 0&&Q.call(oe,S,ye(this,L)[me],this)}}purgeStale(){let Q=!1;for(let oe of Xe(this,F,Fi).call(this,{allowStale:!0}))ye(this,W).call(this,oe)&&(this.delete(ye(this,L)[oe]),Q=!0);return Q}dump(){let Q=[];for(let oe of Xe(this,F,Ui).call(this,{allowStale:!0})){let me=ye(this,L)[oe],Te=ye(this,j)[oe],S=Xe(this,F,Rt).call(this,Te)?Te.__staleWhileFetching:Te;if(S===void 0||me===void 0)continue;let m={value:S};if(ye(this,N)&&ye(this,re)){m.ttl=ye(this,N)[oe];let h=e.now()-ye(this,re)[oe];m.start=Math.floor(Date.now()-h)}ye(this,ne)&&(m.size=ye(this,ne)[oe]),Q.unshift([me,m])}return Q}load(Q){this.clear();for(let[oe,me]of Q){if(me.start){let Te=Date.now()-me.start;me.start=e.now()-Te}this.set(oe,me.value,me)}}set(Q,oe,me={}){var Ce,Ue,We,De,He;if(oe===void 0)return this.delete(Q),this;let{ttl:Te=this.ttl,start:S,noDisposeOnSet:m=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:E}=me,{noUpdateTTL:O=this.noUpdateTTL}=me,te=ye(this,le).call(this,Q,oe,me.size||0,h);if(this.maxEntrySize&&te>this.maxEntrySize)return E&&(E.set="miss",E.maxEntrySizeExceeded=!0),this.delete(Q),this;let he=ye(this,T)===0?void 0:ye(this,C).get(Q);if(he===void 0)he=ye(this,T)===0?ye(this,M):ye(this,$).length!==0?ye(this,$).pop():ye(this,T)===ye(this,v)?Xe(this,F,Du).call(this,!1):ye(this,T),ye(this,L)[he]=Q,ye(this,j)[he]=oe,ye(this,C).set(Q,he),ye(this,R)[ye(this,M)]=he,ye(this,U)[he]=ye(this,M),Ze(this,M,he),Vl(this,T)._++,ye(this,ce).call(this,he,te,E),E&&(E.set="add"),O=!1;else{Xe(this,F,za).call(this,he);let ze=ye(this,j)[he];if(oe!==ze){if(ye(this,G)&&Xe(this,F,Rt).call(this,ze)){ze.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:_t}=ze;_t!==void 0&&!m&&(ye(this,fe)&&((Ce=ye(this,_))==null||Ce.call(this,_t,Q,"set")),ye(this,pe)&&((Ue=ye(this,Z))==null||Ue.push([_t,Q,"set"])))}else m||(ye(this,fe)&&((We=ye(this,_))==null||We.call(this,ze,Q,"set")),ye(this,pe)&&((De=ye(this,Z))==null||De.push([ze,Q,"set"])));if(ye(this,X).call(this,he),ye(this,ce).call(this,he,te,E),ye(this,j)[he]=oe,E){E.set="replace";let _t=ze&&Xe(this,F,Rt).call(this,ze)?ze.__staleWhileFetching:ze;_t!==void 0&&(E.oldValue=_t)}}else E&&(E.set="update")}if(Te!==0&&!ye(this,N)&&Xe(this,F,rg).call(this),ye(this,N)&&(O||ye(this,K).call(this,he,Te,S),E&&ye(this,ee).call(this,E,he)),!m&&ye(this,pe)&&ye(this,Z)){let ze=ye(this,Z),_t;for(;_t=ze==null?void 0:ze.shift();)(He=ye(this,y))==null||He.call(this,..._t)}return this}pop(){var Q;try{for(;ye(this,T);){let oe=ye(this,j)[ye(this,I)];if(Xe(this,F,Du).call(this,!0),Xe(this,F,Rt).call(this,oe)){if(oe.__staleWhileFetching)return oe.__staleWhileFetching}else if(oe!==void 0)return oe}}finally{if(ye(this,pe)&&ye(this,Z)){let oe=ye(this,Z),me;for(;me=oe==null?void 0:oe.shift();)(Q=ye(this,y))==null||Q.call(this,...me)}}}has(Q,oe={}){let{updateAgeOnHas:me=this.updateAgeOnHas,status:Te}=oe,S=ye(this,C).get(Q);if(S!==void 0){let m=ye(this,j)[S];if(Xe(this,F,Rt).call(this,m)&&m.__staleWhileFetching===void 0)return!1;if(ye(this,W).call(this,S))Te&&(Te.has="stale",ye(this,ee).call(this,Te,S));else return me&&ye(this,Se).call(this,S),Te&&(Te.has="hit",ye(this,ee).call(this,Te,S)),!0}else Te&&(Te.has="miss");return!1}peek(Q,oe={}){let{allowStale:me=this.allowStale}=oe,Te=ye(this,C).get(Q);if(Te!==void 0&&(me||!ye(this,W).call(this,Te))){let S=ye(this,j)[Te];return Xe(this,F,Rt).call(this,S)?S.__staleWhileFetching:S}}async fetch(Q,oe={}){let{allowStale:me=this.allowStale,updateAgeOnGet:Te=this.updateAgeOnGet,noDeleteOnStaleGet:S=this.noDeleteOnStaleGet,ttl:m=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:E=0,sizeCalculation:O=this.sizeCalculation,noUpdateTTL:te=this.noUpdateTTL,noDeleteOnFetchRejection:he=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Ce=this.allowStaleOnFetchRejection,ignoreFetchAbort:Ue=this.ignoreFetchAbort,allowStaleOnFetchAbort:We=this.allowStaleOnFetchAbort,context:De,forceRefresh:He=!1,status:ze,signal:_t}=oe;if(!ye(this,G))return ze&&(ze.fetch="get"),this.get(Q,{allowStale:me,updateAgeOnGet:Te,noDeleteOnStaleGet:S,status:ze});let Xt={allowStale:me,updateAgeOnGet:Te,noDeleteOnStaleGet:S,ttl:m,noDisposeOnSet:h,size:E,sizeCalculation:O,noUpdateTTL:te,noDeleteOnFetchRejection:he,allowStaleOnFetchRejection:Ce,allowStaleOnFetchAbort:We,ignoreFetchAbort:Ue,status:ze,signal:_t},Lt=ye(this,C).get(Q);if(Lt===void 0){ze&&(ze.fetch="miss");let qt=Xe(this,F,Uu).call(this,Q,Lt,Xt,De);return qt.__returned=qt}else{let qt=ye(this,j)[Lt];if(Xe(this,F,Rt).call(this,qt)){let ba=me&&qt.__staleWhileFetching!==void 0;return ze&&(ze.fetch="inflight",ba&&(ze.returnedStale=!0)),ba?qt.__staleWhileFetching:qt.__returned=qt}let or=ye(this,W).call(this,Lt);if(!He&&!or)return ze&&(ze.fetch="hit"),Xe(this,F,za).call(this,Lt),Te&&ye(this,Se).call(this,Lt),ze&&ye(this,ee).call(this,ze,Lt),qt;let Qt=Xe(this,F,Uu).call(this,Q,Lt,Xt,De),po=Qt.__staleWhileFetching!==void 0&&me;return ze&&(ze.fetch=or?"stale":"refresh",po&&or&&(ze.returnedStale=!0)),po?Qt.__staleWhileFetching:Qt.__returned=Qt}}get(Q,oe={}){let{allowStale:me=this.allowStale,updateAgeOnGet:Te=this.updateAgeOnGet,noDeleteOnStaleGet:S=this.noDeleteOnStaleGet,status:m}=oe,h=ye(this,C).get(Q);if(h!==void 0){let E=ye(this,j)[h],O=Xe(this,F,Rt).call(this,E);return m&&ye(this,ee).call(this,m,h),ye(this,W).call(this,h)?(m&&(m.get="stale"),O?(m&&me&&E.__staleWhileFetching!==void 0&&(m.returnedStale=!0),me?E.__staleWhileFetching:void 0):(S||this.delete(Q),m&&me&&(m.returnedStale=!0),me?E:void 0)):(m&&(m.get="hit"),O?E.__staleWhileFetching:(Xe(this,F,za).call(this,h),Te&&ye(this,Se).call(this,h),E))}else m&&(m.get="miss")}delete(Q){var me,Te,S,m;let oe=!1;if(ye(this,T)!==0){let h=ye(this,C).get(Q);if(h!==void 0)if(oe=!0,ye(this,T)===1)this.clear();else{ye(this,X).call(this,h);let E=ye(this,j)[h];Xe(this,F,Rt).call(this,E)?E.__abortController.abort(new Error("deleted")):(ye(this,fe)||ye(this,pe))&&(ye(this,fe)&&((me=ye(this,_))==null||me.call(this,E,Q,"delete")),ye(this,pe)&&((Te=ye(this,Z))==null||Te.push([E,Q,"delete"]))),ye(this,C).delete(Q),ye(this,L)[h]=void 0,ye(this,j)[h]=void 0,h===ye(this,M)?Ze(this,M,ye(this,U)[h]):h===ye(this,I)?Ze(this,I,ye(this,R)[h]):(ye(this,R)[ye(this,U)[h]]=ye(this,R)[h],ye(this,U)[ye(this,R)[h]]=ye(this,U)[h]),Vl(this,T)._--,ye(this,$).push(h)}}if(ye(this,pe)&&((S=ye(this,Z))!=null&&S.length)){let h=ye(this,Z),E;for(;E=h==null?void 0:h.shift();)(m=ye(this,y))==null||m.call(this,...E)}return oe}clear(){var Q,oe,me;for(let Te of Xe(this,F,Fi).call(this,{allowStale:!0})){let S=ye(this,j)[Te];if(Xe(this,F,Rt).call(this,S))S.__abortController.abort(new Error("deleted"));else{let m=ye(this,L)[Te];ye(this,fe)&&((Q=ye(this,_))==null||Q.call(this,S,m,"delete")),ye(this,pe)&&((oe=ye(this,Z))==null||oe.push([S,m,"delete"]))}}if(ye(this,C).clear(),ye(this,j).fill(void 0),ye(this,L).fill(void 0),ye(this,N)&&ye(this,re)&&(ye(this,N).fill(0),ye(this,re).fill(0)),ye(this,ne)&&ye(this,ne).fill(0),Ze(this,I,0),Ze(this,M,0),ye(this,$).length=0,Ze(this,A,0),Ze(this,T,0),ye(this,pe)&&ye(this,Z)){let Te=ye(this,Z),S;for(;S=Te==null?void 0:Te.shift();)(me=ye(this,y))==null||me.call(this,...S)}}},v=new WeakMap,w=new WeakMap,_=new WeakMap,y=new WeakMap,x=new WeakMap,T=new WeakMap,A=new WeakMap,C=new WeakMap,L=new WeakMap,j=new WeakMap,R=new WeakMap,U=new WeakMap,I=new WeakMap,M=new WeakMap,$=new WeakMap,Z=new WeakMap,ne=new WeakMap,re=new WeakMap,N=new WeakMap,fe=new WeakMap,G=new WeakMap,pe=new WeakMap,F=new WeakSet,rg=function(){let Q=new c(ye(this,v)),oe=new c(ye(this,v));Ze(this,N,Q),Ze(this,re,oe),Ze(this,K,(S,m,h=e.now())=>{if(oe[S]=m!==0?h:0,Q[S]=m,m!==0&&this.ttlAutopurge){let E=setTimeout(()=>{ye(this,W).call(this,S)&&this.delete(ye(this,L)[S])},m+1);E.unref&&E.unref()}}),Ze(this,Se,S=>{oe[S]=Q[S]!==0?e.now():0}),Ze(this,ee,(S,m)=>{if(Q[m]){let h=Q[m],E=oe[m];S.ttl=h,S.start=E,S.now=me||Te();let O=S.now-E;S.remainingTTL=h-O}});let me=0,Te=()=>{let S=e.now();if(this.ttlResolution>0){me=S;let m=setTimeout(()=>me=0,this.ttlResolution);m.unref&&m.unref()}return S};this.getRemainingTTL=S=>{let m=ye(this,C).get(S);if(m===void 0)return 0;let h=Q[m],E=oe[m];if(h===0||E===0)return 1/0;let O=(me||Te())-E;return h-O},Ze(this,W,S=>Q[S]!==0&&oe[S]!==0&&(me||Te())-oe[S]>Q[S])},Se=new WeakMap,ee=new WeakMap,K=new WeakMap,W=new WeakMap,pE=function(){let Q=new c(ye(this,v));Ze(this,A,0),Ze(this,ne,Q),Ze(this,X,oe=>{Ze(this,A,ye(this,A)-Q[oe]),Q[oe]=0}),Ze(this,le,(oe,me,Te,S)=>{if(Xe(this,F,Rt).call(this,me))return 0;if(!l(Te))if(S){if(typeof S!="function")throw new TypeError("sizeCalculation must be a function");if(Te=S(me,oe),!l(Te))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return Te}),Ze(this,ce,(oe,me,Te)=>{if(Q[oe]=me,ye(this,w)){let S=ye(this,w)-Q[oe];for(;ye(this,A)>S;)Xe(this,F,Du).call(this,!0)}Ze(this,A,ye(this,A)+Q[oe]),Te&&(Te.entrySize=me,Te.totalCalculatedSize=ye(this,A))})},X=new WeakMap,ce=new WeakMap,le=new WeakMap,Ui=function*({allowStale:Q=this.allowStale}={}){if(ye(this,T))for(let oe=ye(this,M);!(!Xe(this,F,ng).call(this,oe)||((Q||!ye(this,W).call(this,oe))&&(yield oe),oe===ye(this,I)));)oe=ye(this,U)[oe]},Fi=function*({allowStale:Q=this.allowStale}={}){if(ye(this,T))for(let oe=ye(this,I);!(!Xe(this,F,ng).call(this,oe)||((Q||!ye(this,W).call(this,oe))&&(yield oe),oe===ye(this,M)));)oe=ye(this,R)[oe]},ng=function(Q){return Q!==void 0&&ye(this,C).get(ye(this,L)[Q])===Q},Du=function(Q){var S,m;let oe=ye(this,I),me=ye(this,L)[oe],Te=ye(this,j)[oe];return ye(this,G)&&Xe(this,F,Rt).call(this,Te)?Te.__abortController.abort(new Error("evicted")):(ye(this,fe)||ye(this,pe))&&(ye(this,fe)&&((S=ye(this,_))==null||S.call(this,Te,me,"evict")),ye(this,pe)&&((m=ye(this,Z))==null||m.push([Te,me,"evict"]))),ye(this,X).call(this,oe),Q&&(ye(this,L)[oe]=void 0,ye(this,j)[oe]=void 0,ye(this,$).push(oe)),ye(this,T)===1?(Ze(this,I,Ze(this,M,0)),ye(this,$).length=0):Ze(this,I,ye(this,R)[oe]),ye(this,C).delete(me),Vl(this,T)._--,oe},Uu=function(Q,oe,me,Te){let S=oe===void 0?void 0:ye(this,j)[oe];if(Xe(this,F,Rt).call(this,S))return S;let m=new i,{signal:h}=me;h==null||h.addEventListener("abort",()=>m.abort(h.reason),{signal:m.signal});let E={signal:m.signal,options:me,context:Te},O=(De,He=!1)=>{let{aborted:ze}=m.signal,_t=me.ignoreFetchAbort&&De!==void 0;if(me.status&&(ze&&!He?(me.status.fetchAborted=!0,me.status.fetchError=m.signal.reason,_t&&(me.status.fetchAbortIgnored=!0)):me.status.fetchResolved=!0),ze&&!_t&&!He)return he(m.signal.reason);let Xt=Ue;return ye(this,j)[oe]===Ue&&(De===void 0?Xt.__staleWhileFetching?ye(this,j)[oe]=Xt.__staleWhileFetching:this.delete(Q):(me.status&&(me.status.fetchUpdated=!0),this.set(Q,De,E.options))),De},te=De=>(me.status&&(me.status.fetchRejected=!0,me.status.fetchError=De),he(De)),he=De=>{let{aborted:He}=m.signal,ze=He&&me.allowStaleOnFetchAbort,_t=ze||me.allowStaleOnFetchRejection,Xt=_t||me.noDeleteOnFetchRejection,Lt=Ue;if(ye(this,j)[oe]===Ue&&(!Xt||Lt.__staleWhileFetching===void 0?this.delete(Q):ze||(ye(this,j)[oe]=Lt.__staleWhileFetching)),_t)return me.status&&Lt.__staleWhileFetching!==void 0&&(me.status.returnedStale=!0),Lt.__staleWhileFetching;if(Lt.__returned===Lt)throw De},Ce=(De,He)=>{var _t;let ze=(_t=ye(this,x))==null?void 0:_t.call(this,Q,S,E);ze&&ze instanceof Promise&&ze.then(Xt=>De(Xt===void 0?void 0:Xt),He),m.signal.addEventListener("abort",()=>{(!me.ignoreFetchAbort||me.allowStaleOnFetchAbort)&&(De(void 0),me.allowStaleOnFetchAbort&&(De=Xt=>O(Xt,!0)))})};me.status&&(me.status.fetchDispatched=!0);let Ue=new Promise(Ce).then(O,te),We=Object.assign(Ue,{__abortController:m,__staleWhileFetching:S,__returned:void 0});return oe===void 0?(this.set(Q,We,{...E.options,status:void 0}),oe=ye(this,C).get(Q)):ye(this,j)[oe]=We,We},Rt=function(Q){if(!ye(this,G))return!1;let oe=Q;return!!oe&&oe instanceof Promise&&oe.hasOwnProperty("__staleWhileFetching")&&oe.__abortController instanceof i},ig=function(Q,oe){ye(this,U)[oe]=Q,ye(this,R)[Q]=oe},za=function(Q){Q!==ye(this,M)&&(Q===ye(this,I)?Ze(this,I,ye(this,R)[Q]):Xe(this,F,ig).call(this,ye(this,U)[Q],ye(this,R)[Q]),Xe(this,F,ig).call(this,ye(this,M),Q),Ze(this,M,Q))},Y);t.LRUCache=d}),Li=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.ContainerIterator=t.Container=t.Base=void 0;var e=class{constructor(s=0){this.iteratorType=s}equals(s){return this.o===s.o}};t.ContainerIterator=e;var r=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};t.Base=r;var n=class extends r{};t.Container=n}),kL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Li(),r=class extends e.Base{constructor(s=[]){super(),this.S=[];let i=this;s.forEach(function(a){i.push(a)})}clear(){this.i=0,this.S=[]}push(s){return this.S.push(s),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},n=r;t.default=n}),PL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Li(),r=class extends e.Base{constructor(s=[]){super(),this.j=0,this.q=[];let i=this;s.forEach(function(a){i.push(a)})}clear(){this.q=[],this.i=this.j=0}push(s){let i=this.q.length;if(this.j/i>.5&&this.j+this.i>=i&&i>4096){let a=this.i;for(let o=0;o{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Li(),r=class extends e.Base{constructor(s=[],i=function(o,l){return o>l?-1:o>1;for(let l=this.i-1>>1;l>=0;--l)this.k(l,o)}m(s){let i=this.C[s];for(;s>0;){let a=s-1>>1,o=this.C[a];if(this.v(o,i)<=0)break;this.C[s]=o,s=a}this.C[s]=i}k(s,i){let a=this.C[s];for(;s0&&(o=l,u=this.C[l]),this.v(u,a)>=0)break;this.C[s]=u,s=o}this.C[s]=a}clear(){this.i=0,this.C.length=0}push(s){this.C.push(s),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let s=this.C[0],i=this.C.pop();return this.i-=1,this.i&&(this.C[0]=i,this.k(0,this.i>>1)),s}top(){return this.C[0]}find(s){return this.C.indexOf(s)>=0}remove(s){let i=this.C.indexOf(s);return i<0?!1:(i===0?this.pop():i===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(i,1,this.C.pop()),this.i-=1,this.m(i),this.k(i,this.i>>1)),!0)}updateItem(s){let i=this.C.indexOf(s);return i<0?!1:(this.m(i),this.k(i,this.i>>1),!0)}toArray(){return[...this.C]}},n=r;t.default=n}),Am=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Li(),r=class extends e.Container{},n=r;t.default=n}),Ri=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.throwIteratorAccessError=e;function e(){throw new RangeError("Iterator access denied!")}}),gE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.RandomIterator=void 0;var e=Li(),r=Ri(),n=class extends e.ContainerIterator{constructor(s,i){super(i),this.o=s,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,r.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,r.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,r.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,r.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(s){this.container.setElementByPos(this.o,s)}};t.RandomIterator=n}),LL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=n(Am()),r=gE();function n(o){return o&&o.t?o:{default:o}}var s=class mE extends r.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new mE(this.o,this.container,this.iteratorType)}},i=class extends e.default{constructor(o=[],l=!0){if(super(),Array.isArray(o))this.J=l?[...o]:o,this.i=o.length;else{this.J=[];let u=this;o.forEach(function(c){u.pushBack(c)})}}clear(){this.i=0,this.J.length=0}begin(){return new s(0,this)}end(){return new s(this.i,this)}rBegin(){return new s(this.i-1,this,1)}rEnd(){return new s(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;return this.J[o]}eraseElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;return this.J.splice(o,1),this.i-=1,this.i}eraseElementByValue(o){let l=0;for(let u=0;uthis.i-1)throw new RangeError;this.J[o]=l}insert(o,l,u=1){if(o<0||o>this.i)throw new RangeError;return this.J.splice(o,0,...new Array(u).fill(l)),this.i+=u,this.i}find(o){for(let l=0;l{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(Am()),r=Li(),n=Ri();function s(l){return l&&l.t?l:{default:l}}var i=class bE extends r.ContainerIterator{constructor(u,c,f,d){super(d),this.o=u,this.h=c,this.container=f,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.l}set pointer(u){this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.l=u}copy(){return new bE(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let u=this;l.forEach(function(c){u.pushBack(c)})}V(l){let{L:u,B:c}=l;u.B=c,c.L=u,l===this.p&&(this.p=c),l===this._&&(this._=u),this.i-=1}G(l,u){let c=u.B,f={l,L:u,B:c};u.B=f,c.L=f,u===this.h&&(this.p=f),c===this.h&&(this._=f),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new i(this.p,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this._,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return u.l}eraseElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return this.V(u),this.i}eraseElementByValue(l){let u=this.p;for(;u!==this.h;)u.l===l&&this.V(u),u=u.B;return this.i}eraseElementByIterator(l){let u=l.o;return u===this.h&&(0,n.throwIteratorAccessError)(),l=l.next(),this.V(u),l}pushBack(l){return this.G(l,this._),this.i}popBack(){if(this.i===0)return;let l=this._.l;return this.V(this._),l}pushFront(l){return this.G(l,this.h),this.i}popFront(){if(this.i===0)return;let l=this.p.l;return this.V(this.p),l}setElementByPos(l,u){if(l<0||l>this.i-1)throw new RangeError;let c=this.p;for(;l--;)c=c.B;c.l=u}insert(l,u,c=1){if(l<0||l>this.i)throw new RangeError;if(c<=0)return this.i;if(l===0)for(;c--;)this.pushFront(u);else if(l===this.i)for(;c--;)this.pushBack(u);else{let f=this.p;for(let p=1;p{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=n(Am()),r=gE();function n(o){return o&&o.t?o:{default:o}}var s=class yE extends r.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new yE(this.o,this.container,this.iteratorType)}},i=class extends e.default{constructor(o=[],l=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let u=(()=>{if(typeof o.length=="number")return o.length;if(typeof o.size=="number")return o.size;if(typeof o.size=="function")return o.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=l,this.P=Math.max(Math.ceil(u/this.F),1);for(let d=0;d>1)-(c>>1),this.D=this.N=this.F-u%this.F>>1;let f=this;o.forEach(function(d){f.pushBack(d)})}T(){let o=[],l=Math.max(this.P>>1,1);for(let u=0;u>1}begin(){return new s(0,this)}end(){return new s(this.i,this)}rBegin(){return new s(this.i-1,this,1)}rEnd(){return new s(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(o){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,o}pushFront(o){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=o,this.i}popFront(){if(this.i===0)return;let o=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:l,curNodePointerIndex:u}=this.O(o);return this.A[l][u]}setElementByPos(o,l){if(o<0||o>this.i-1)throw new RangeError;let{curNodeBucketIndex:u,curNodePointerIndex:c}=this.O(o);this.A[u][c]=l}insert(o,l,u=1){if(o<0||o>this.i)throw new RangeError;if(o===0)for(;u--;)this.pushFront(l);else if(o===this.i)for(;u--;)this.pushBack(l);else{let c=[];for(let f=o;fthis.i-1)throw new RangeError;if(o===0)this.popFront();else if(o===this.i-1)this.popBack();else{let l=[];for(let c=o+1;co;)this.popBack();return this.i}sort(o){let l=[];for(let u=0;u{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.TreeNodeEnableIndex=t.TreeNode=void 0;var e=class{constructor(n,s){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=n,this.l=s}L(){let n=this;if(n.ee===1&&n.tt.tt===n)n=n.W;else if(n.U)for(n=n.U;n.W;)n=n.W;else{let s=n.tt;for(;s.U===n;)n=s,s=n.tt;n=s}return n}B(){let n=this;if(n.W){for(n=n.W;n.U;)n=n.U;return n}else{let s=n.tt;for(;s.W===n;)n=s,s=n.tt;return n.W!==s?s:n}}te(){let n=this.tt,s=this.W,i=s.U;return n.tt===this?n.tt=s:n.U===this?n.U=s:n.W=s,s.tt=n,s.U=this,this.tt=s,this.W=i,i&&(i.tt=this),s}se(){let n=this.tt,s=this.U,i=s.W;return n.tt===this?n.tt=s:n.U===this?n.U=s:n.W=s,s.tt=n,s.W=this,this.tt=s,this.U=i,i&&(i.tt=this),s}};t.TreeNode=e;var r=class extends e{constructor(){super(...arguments),this.rt=1}te(){let n=super.te();return this.ie(),n.ie(),n}se(){let n=super.se();return this.ie(),n.ie(),n}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};t.TreeNodeEnableIndex=r}),wE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=$L(),r=Li(),n=Ri(),s=class extends r.Container{constructor(a=function(l,u){return lu?1:0},o=!1){super(),this.Y=void 0,this.v=a,o?(this.re=e.TreeNodeEnableIndex,this.M=function(l,u,c){let f=this.ne(l,u,c);if(f){let d=f.tt;for(;d!==this.h;)d.rt+=1,d=d.tt;let p=this.he(f);if(p){let{parentNode:g,grandParent:b,curNode:v}=p;g.ie(),b.ie(),v.ie()}}return this.i},this.V=function(l){let u=this.fe(l);for(;u!==this.h;)u.rt-=1,u=u.tt}):(this.re=e.TreeNode,this.M=function(l,u,c){let f=this.ne(l,u,c);return f&&this.he(f),this.i},this.V=this.fe),this.h=new this.re}X(a,o){let l=this.h;for(;a;){let u=this.v(a.u,o);if(u<0)a=a.W;else if(u>0)l=a,a=a.U;else return a}return l}Z(a,o){let l=this.h;for(;a;)this.v(a.u,o)<=0?a=a.W:(l=a,a=a.U);return l}$(a,o){let l=this.h;for(;a;){let u=this.v(a.u,o);if(u<0)l=a,a=a.W;else if(u>0)a=a.U;else return a}return l}rr(a,o){let l=this.h;for(;a;)this.v(a.u,o)<0?(l=a,a=a.W):a=a.U;return l}ue(a){for(;;){let o=a.tt;if(o===this.h)return;if(a.ee===1){a.ee=0;return}if(a===o.U){let l=o.W;if(l.ee===1)l.ee=0,o.ee=1,o===this.Y?this.Y=o.te():o.te();else if(l.W&&l.W.ee===1){l.ee=o.ee,o.ee=0,l.W.ee=0,o===this.Y?this.Y=o.te():o.te();return}else l.U&&l.U.ee===1?(l.ee=1,l.U.ee=0,l.se()):(l.ee=1,a=o)}else{let l=o.U;if(l.ee===1)l.ee=0,o.ee=1,o===this.Y?this.Y=o.se():o.se();else if(l.U&&l.U.ee===1){l.ee=o.ee,o.ee=0,l.U.ee=0,o===this.Y?this.Y=o.se():o.se();return}else l.W&&l.W.ee===1?(l.ee=1,l.W.ee=0,l.te()):(l.ee=1,a=o)}}}fe(a){if(this.i===1)return this.clear(),this.h;let o=a;for(;o.U||o.W;){if(o.W)for(o=o.W;o.U;)o=o.U;else o=o.U;[a.u,o.u]=[o.u,a.u],[a.l,o.l]=[o.l,a.l],a=o}this.h.U===o?this.h.U=o.tt:this.h.W===o&&(this.h.W=o.tt),this.ue(o);let l=o.tt;return o===l.U?l.U=void 0:l.W=void 0,this.i-=1,this.Y.ee=0,l}oe(a,o){return a===void 0?!1:this.oe(a.U,o)||o(a)?!0:this.oe(a.W,o)}he(a){for(;;){let o=a.tt;if(o.ee===0)return;let l=o.tt;if(o===l.U){let u=l.W;if(u&&u.ee===1){if(u.ee=o.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===o.W){if(a.ee=0,a.U&&(a.U.tt=o),a.W&&(a.W.tt=l),o.W=a.U,l.U=a.W,a.U=o,a.W=l,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,o.tt=a,l.tt=a,l.ee=1,{parentNode:o,grandParent:l,curNode:a}}else o.ee=0,l===this.Y?this.Y=l.se():l.se(),l.ee=1}else{let u=l.U;if(u&&u.ee===1){if(u.ee=o.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===o.U){if(a.ee=0,a.U&&(a.U.tt=l),a.W&&(a.W.tt=o),l.W=a.U,o.U=a.W,a.U=l,a.W=o,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,o.tt=a,l.tt=a,l.ee=1,{parentNode:o,grandParent:l,curNode:a}}else o.ee=0,l===this.Y?this.Y=l.te():l.te(),l.ee=1}return}}ne(a,o,l){if(this.Y===void 0){this.i+=1,this.Y=new this.re(a,o),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let u,c=this.h.U,f=this.v(c.u,a);if(f===0){c.l=o;return}else if(f>0)c.U=new this.re(a,o),c.U.tt=c,u=c.U,this.h.U=u;else{let d=this.h.W,p=this.v(d.u,a);if(p===0){d.l=o;return}else if(p<0)d.W=new this.re(a,o),d.W.tt=d,u=d.W,this.h.W=u;else{if(l!==void 0){let g=l.o;if(g!==this.h){let b=this.v(g.u,a);if(b===0){g.l=o;return}else if(b>0){let v=g.L(),w=this.v(v.u,a);if(w===0){v.l=o;return}else w<0&&(u=new this.re(a,o),v.W===void 0?(v.W=u,u.tt=v):(g.U=u,u.tt=g))}}}if(u===void 0)for(u=this.Y;;){let g=this.v(u.u,a);if(g>0){if(u.U===void 0){u.U=new this.re(a,o),u.U.tt=u,u=u.U;break}u=u.U}else if(g<0){if(u.W===void 0){u.W=new this.re(a,o),u.W.tt=u,u=u.W;break}u=u.W}else{u.l=o;return}}}}return this.i+=1,u}I(a,o){for(;a;){let l=this.v(a.u,o);if(l<0)a=a.W;else if(l>0)a=a.U;else return a}return a||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(a,o){let l=a.o;if(l===this.h&&(0,n.throwIteratorAccessError)(),this.i===1)return l.u=o,!0;if(l===this.h.U)return this.v(l.B().u,o)>0?(l.u=o,!0):!1;if(l===this.h.W)return this.v(l.L().u,o)<0?(l.u=o,!0):!1;let u=l.L().u;if(this.v(u,o)>=0)return!1;let c=l.B().u;return this.v(c,o)<=0?!1:(l.u=o,!0)}eraseElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o=0,l=this;return this.oe(this.Y,function(u){return a===o?(l.V(u),!0):(o+=1,!1)}),this.i}eraseElementByKey(a){if(this.i===0)return!1;let o=this.I(this.Y,a);return o===this.h?!1:(this.V(o),!0)}eraseElementByIterator(a){let o=a.o;o===this.h&&(0,n.throwIteratorAccessError)();let l=o.W===void 0;return a.iteratorType===0?l&&a.next():(!l||o.U===void 0)&&a.next(),this.V(o),a}forEach(a){let o=0;for(let l of this)a(l,o++,this)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o,l=0;for(let u of this){if(l===a){o=u;break}l+=1}return o}getHeight(){if(this.i===0)return 0;let a=function(o){return o?Math.max(a(o.U),a(o.W))+1:0};return a(this.Y)}},i=s;t.default=i}),vE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Li(),r=Ri(),n=class extends e.ContainerIterator{constructor(i,a,o){super(o),this.o=i,this.h=a,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let i=this.o,a=this.h.tt;if(i===this.h)return a?a.rt-1:0;let o=0;for(i.U&&(o+=i.U.rt);i!==a;){let l=i.tt;i===l.W&&(o+=1,l.U&&(o+=l.U.rt)),i=l}return o}},s=n;t.default=s}),NL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(wE()),r=s(vE()),n=Ri();function s(l){return l&&l.t?l:{default:l}}var i=class _E extends r.default{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.u}copy(){return new _E(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[],u,c){super(u,c);let f=this;l.forEach(function(d){f.insert(d)})}*K(l){l!==void 0&&(yield*this.K(l.U),yield l.u,yield*this.K(l.W))}begin(){return new i(this.h.U||this.h,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this.h.W||this.h,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(l,u){return this.M(l,void 0,u)}find(l){let u=this.I(this.Y,l);return new i(u,this.h,this)}lowerBound(l){let u=this.X(this.Y,l);return new i(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new i(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new i(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new i(u,this.h,this)}union(l){let u=this;return l.forEach(function(c){u.insert(c)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},o=a;t.default=o}),DL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(wE()),r=s(vE()),n=Ri();function s(l){return l&&l.t?l:{default:l}}var i=class EE extends r.default{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,f){if(f==="0")return u.o.u;if(f==="1")return u.o.l},set(c,f,d){if(f!=="1")throw new TypeError("props must be 1");return u.o.l=d,!0}})}copy(){return new EE(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[],u,c){super(u,c);let f=this;l.forEach(function(d){f.setElement(d[0],d[1])})}*K(l){l!==void 0&&(yield*this.K(l.U),yield[l.u,l.l],yield*this.K(l.W))}begin(){return new i(this.h.U||this.h,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this.h.W||this.h,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){if(this.i===0)return;let l=this.h.U;return[l.u,l.l]}back(){if(this.i===0)return;let l=this.h.W;return[l.u,l.l]}lowerBound(l){let u=this.X(this.Y,l);return new i(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new i(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new i(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new i(u,this.h,this)}setElement(l,u,c){return this.M(l,u,c)}find(l){let u=this.I(this.Y,l);return new i(u,this.h,this)}getElementByKey(l){return this.I(this.Y,l).l}union(l){let u=this;return l.forEach(function(c){u.setElement(c[0],c[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},o=a;t.default=o}),SE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=e;function e(r){let n=typeof r;return n==="object"&&r!==null||n==="function"}}),xE=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.HashContainerIterator=t.HashContainer=void 0;var e=Li(),r=s(SE()),n=Ri();function s(o){return o&&o.t?o:{default:o}}var i=class extends e.ContainerIterator{constructor(o,l,u){super(u),this.o=o,this.h=l,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this})}};t.HashContainerIterator=i;var a=class extends e.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(o){let{L:l,B:u}=o;l.B=u,u.L=l,o===this.p&&(this.p=u),o===this._&&(this._=l),this.i-=1}M(o,l,u){u===void 0&&(u=(0,r.default)(o));let c;if(u){let f=o[this.HASH_TAG];if(f!==void 0)return this.H[f].l=l,this.i;Object.defineProperty(o,this.HASH_TAG,{value:this.H.length,configurable:!0}),c={u:o,l,L:this._,B:this.h},this.H.push(c)}else{let f=this.g[o];if(f)return f.l=l,this.i;c={u:o,l,L:this._,B:this.h},this.g[o]=c}return this.i===0?(this.p=c,this.h.B=c):this._.B=c,this._=c,this.h.L=c,++this.i}I(o,l){if(l===void 0&&(l=(0,r.default)(o)),l){let u=o[this.HASH_TAG];return u===void 0?this.h:this.H[u]}else return this.g[o]||this.h}clear(){let o=this.HASH_TAG;this.H.forEach(function(l){delete l.u[o]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(o,l){let u;if(l===void 0&&(l=(0,r.default)(o)),l){let c=o[this.HASH_TAG];if(c===void 0)return!1;delete o[this.HASH_TAG],u=this.H[c],delete this.H[c]}else{if(u=this.g[o],u===void 0)return!1;delete this.g[o]}return this.V(u),!0}eraseElementByIterator(o){let l=o.o;return l===this.h&&(0,n.throwIteratorAccessError)(),this.V(l),o.next()}eraseElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;let l=this.p;for(;o--;)l=l.B;return this.V(l),this.i}};t.HashContainer=a}),UL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=xE(),r=Ri(),n=class TE extends e.HashContainerIterator{constructor(o,l,u,c){super(o,l,c),this.container=u}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.u}copy(){return new TE(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.HashContainer{constructor(a=[]){super();let o=this;a.forEach(function(l){o.insert(l)})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(a,o){return this.M(a,void 0,o)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o=this.p;for(;a--;)o=o.B;return o.u}find(a,o){let l=this.I(a,o);return new n(l,this.h,this)}forEach(a){let o=0,l=this.p;for(;l!==this.h;)a(l.u,o++,this),l=l.B}[Symbol.iterator](){return(function*(){let a=this.p;for(;a!==this.h;)yield a.u,a=a.B}).bind(this)()}},i=s;t.default=i}),FL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=xE(),r=s(SE()),n=Ri();function s(l){return l&&l.t?l:{default:l}}var i=class AE extends e.HashContainerIterator{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,f){if(f==="0")return u.o.u;if(f==="1")return u.o.l},set(c,f,d){if(f!=="1")throw new TypeError("props must be 1");return u.o.l=d,!0}})}copy(){return new AE(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.HashContainer{constructor(l=[]){super();let u=this;l.forEach(function(c){u.setElement(c[0],c[1])})}begin(){return new i(this.p,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this._,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(l,u,c){return this.M(l,u,c)}getElementByKey(l,u){if(u===void 0&&(u=(0,r.default)(l)),u){let f=l[this.HASH_TAG];return f!==void 0?this.H[f].l:void 0}let c=this.g[l];return c?c.l:void 0}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return[u.u,u.l]}find(l,u){let c=this.I(l,u);return new i(c,this.h,this)}forEach(l){let u=0,c=this.p;for(;c!==this.h;)l([c.u,c.l],u++,this),c=c.B}[Symbol.iterator](){return(function*(){let l=this.p;for(;l!==this.h;)yield[l.u,l.l],l=l.B}).bind(this)()}},o=a;t.default=o}),VL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"t",{value:!0}),Object.defineProperty(t,"Deque",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"HashMap",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"HashSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"LinkList",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"OrderedMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"OrderedSet",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"PriorityQueue",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"Queue",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(t,"Vector",{enumerable:!0,get:function(){return s.default}});var e=f(kL()),r=f(PL()),n=f(OL()),s=f(LL()),i=f(RL()),a=f(BL()),o=f(NL()),l=f(DL()),u=f(UL()),c=f(FL());function f(d){return d&&d.t?d:{default:d}}}),jL=Ne((t,e)=>{Pe(),Le(),Oe();var r=VL().OrderedSet,n=Ci()("number-allocator:trace"),s=Ci()("number-allocator:error");function i(o,l){this.low=o,this.high=l}i.prototype.equals=function(o){return this.low===o.low&&this.high===o.high},i.prototype.compare=function(o){return this.lowu.compare(c)),n("Create"),this.clear()}a.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},a.prototype.alloc=function(){if(this.ss.size()===0)return n("alloc():empty"),null;let o=this.ss.begin(),l=o.pointer.low,u=o.pointer.high,c=l;return c+1<=u?this.ss.updateKeyByIterator(o,new i(l+1,u)):this.ss.eraseElementByPos(0),n("alloc():"+c),c},a.prototype.use=function(o){let l=new i(o,o),u=this.ss.lowerBound(l);if(!u.equals(this.ss.end())){let c=u.pointer.low,f=u.pointer.high;return u.pointer.equals(l)?(this.ss.eraseElementByIterator(u),n("use():"+o),!0):c>o?!1:c===o?(this.ss.updateKeyByIterator(u,new i(c+1,f)),n("use():"+o),!0):f===o?(this.ss.updateKeyByIterator(u,new i(c,f-1)),n("use():"+o),!0):(this.ss.updateKeyByIterator(u,new i(o+1,f)),this.ss.insert(new i(c,o-1)),n("use():"+o),!0)}return n("use():failed"),!1},a.prototype.free=function(o){if(othis.max){s("free():"+o+" is out of range");return}let l=new i(o,o),u=this.ss.upperBound(l);if(u.equals(this.ss.end())){if(u.equals(this.ss.begin())){this.ss.insert(l);return}u.pre();let c=u.pointer.high;u.pointer.high+1===o?this.ss.updateKeyByIterator(u,new i(c,o)):this.ss.insert(l)}else if(u.equals(this.ss.begin()))if(o+1===u.pointer.low){let c=u.pointer.high;this.ss.updateKeyByIterator(u,new i(o,c))}else this.ss.insert(l);else{let c=u.pointer.low,f=u.pointer.high;u.pre();let d=u.pointer.low;u.pointer.high+1===o?o+1===c?(this.ss.eraseElementByIterator(u),this.ss.updateKeyByIterator(u,new i(d,f))):this.ss.updateKeyByIterator(u,new i(d,o)):o+1===c?(this.ss.eraseElementByIterator(u.next()),this.ss.insert(new i(o,f))):this.ss.insert(l)}n("free():"+o)},a.prototype.clear=function(){n("clear()"),this.ss.clear(),this.ss.insert(new i(this.min,this.max))},a.prototype.intervalCount=function(){return this.ss.size()},a.prototype.dump=function(){console.log("length:"+this.ss.size());for(let o of this.ss)console.log(o)},e.exports=a}),CE=Ne((t,e)=>{Pe(),Le(),Oe();var r=jL();e.exports.NumberAllocator=r}),WL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=ML(),r=CE(),n=class{constructor(s){s>0&&(this.aliasToTopic=new e.LRUCache({max:s}),this.topicToAlias={},this.numberAllocator=new r.NumberAllocator(1,s),this.max=s,this.length=0)}put(s,i){if(i===0||i>this.max)return!1;let a=this.aliasToTopic.get(i);return a&&delete this.topicToAlias[a],this.aliasToTopic.set(i,s),this.topicToAlias[s]=i,this.numberAllocator.use(i),this.length=this.aliasToTopic.size,!0}getTopicByAlias(s){return this.aliasToTopic.get(s)}getAliasByTopic(s){let i=this.topicToAlias[s];return typeof i<"u"&&this.aliasToTopic.get(i),i}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};t.default=n}),zL=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0});var r=tf(),n=e(WL()),s=ua(),i=(a,o)=>{a.log("_handleConnack");let{options:l}=a,u=l.protocolVersion===5?o.reasonCode:o.returnCode;if(clearTimeout(a.connackTimer),delete a.topicAliasSend,o.properties){if(o.properties.topicAliasMaximum){if(o.properties.topicAliasMaximum>65535){a.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}o.properties.topicAliasMaximum>0&&(a.topicAliasSend=new n.default(o.properties.topicAliasMaximum))}o.properties.serverKeepAlive&&l.keepalive&&(l.keepalive=o.properties.serverKeepAlive),o.properties.maximumPacketSize&&(l.properties||(l.properties={}),l.properties.maximumPacketSize=o.properties.maximumPacketSize)}if(u===0)a.reconnecting=!1,a._onConnect(o);else if(u>0){let c=new s.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[u]}`,u);a.emit("error",c),a.options.reconnectOnConnackError&&a._cleanUp(!0)}};t.default=i}),HL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=(r,n,s)=>{r.log("handling pubrel packet");let i=typeof s<"u"?s:r.noop,{messageId:a}=n,o={cmd:"pubcomp",messageId:a};r.incomingStore.get(n,(l,u)=>{l?r._sendPacket(o,i):(r.emit("message",u.topic,u.payload,u),r.handleMessage(u,c=>{if(c)return i(c);r.incomingStore.del(u,r.noop),r._sendPacket(o,i)}))})};t.default=e}),qL=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(AL()),n=e(IL()),s=e(zL()),i=e(tf()),a=e(HL()),o=(l,u,c)=>{let{options:f}=l;if(f.protocolVersion===5&&f.properties&&f.properties.maximumPacketSize&&f.properties.maximumPacketSize{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypedEventEmitter=void 0;var r=e((la(),It(so))),n=ua(),s=class{};t.TypedEventEmitter=s,(0,n.applyMixin)(s,r.default)}),rf=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.isReactNativeBrowser=t.isWebWorker=void 0;var e=()=>{var i;return typeof window<"u"?typeof navigator<"u"&&((i=navigator.userAgent)===null||i===void 0?void 0:i.toLowerCase().indexOf(" electron/"))>-1&&vt!=null&&vt.versions?!Object.prototype.hasOwnProperty.call(vt.versions,"electron"):typeof window.document<"u":!1},r=()=>{var i,a;return!!(typeof self=="object"&&!((a=(i=self==null?void 0:self.constructor)===null||i===void 0?void 0:i.name)===null||a===void 0)&&a.includes("WorkerGlobalScope"))},n=()=>typeof navigator<"u"&&navigator.product==="ReactNative",s=e()||r()||n();t.isWebWorker=r(),t.isReactNativeBrowser=n(),t.default=s}),YL=Ne((t,e)=>{Pe(),Le(),Oe(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t):typeof define=="function"&&define.amd?define(["exports"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.fastUniqueNumbers={}))}(t,function(r){var n=function(p){return function(g){var b=p(g);return g.add(b),b}},s=function(p){return function(g,b){return p.set(g,b),b}},i=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,a=536870912,o=a*2,l=function(p,g){return function(b){var v=g.get(b),w=v===void 0?b.size:vi)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;b.has(w);)w=Math.floor(Math.random()*i);return p(b,w)}},u=new WeakMap,c=s(u),f=l(c,u),d=n(f);r.addUniqueNumber=d,r.generateUniqueNumber=f})}),KL=Ne((t,e)=>{Pe(),Le(),Oe(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t,YL()):typeof define=="function"&&define.amd?define(["exports","fast-unique-numbers"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.workerTimersBroker={},r.fastUniqueNumbers))}(t,function(r,n){var s=function(o){return o.method!==void 0&&o.method==="call"},i=function(o){return o.error===null&&typeof o.id=="number"},a=function(o){var l=new Map([[0,function(){}]]),u=new Map([[0,function(){}]]),c=new Map,f=new Worker(o);f.addEventListener("message",function(v){var w=v.data;if(s(w)){var _=w.params,y=_.timerId,x=_.timerType;if(x==="interval"){var T=l.get(y);if(typeof T=="number"){var A=c.get(T);if(A===void 0||A.timerId!==y||A.timerType!==x)throw new Error("The timer is in an undefined state.")}else if(typeof T<"u")T();else throw new Error("The timer is in an undefined state.")}else if(x==="timeout"){var C=u.get(y);if(typeof C=="number"){var L=c.get(C);if(L===void 0||L.timerId!==y||L.timerType!==x)throw new Error("The timer is in an undefined state.")}else if(typeof C<"u")C(),u.delete(y);else throw new Error("The timer is in an undefined state.")}}else if(i(w)){var j=w.id,R=c.get(j);if(R===void 0)throw new Error("The timer is in an undefined state.");var U=R.timerId,I=R.timerType;c.delete(j),I==="interval"?l.delete(U):u.delete(U)}else{var M=w.error.message;throw new Error(M)}});var d=function(v){var w=n.generateUniqueNumber(c);c.set(w,{timerId:v,timerType:"interval"}),l.set(v,w),f.postMessage({id:w,method:"clear",params:{timerId:v,timerType:"interval"}})},p=function(v){var w=n.generateUniqueNumber(c);c.set(w,{timerId:v,timerType:"timeout"}),u.set(v,w),f.postMessage({id:w,method:"clear",params:{timerId:v,timerType:"timeout"}})},g=function(v){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,_=n.generateUniqueNumber(l);return l.set(_,function(){v(),typeof l.get(_)=="function"&&f.postMessage({id:null,method:"set",params:{delay:w,now:performance.now(),timerId:_,timerType:"interval"}})}),f.postMessage({id:null,method:"set",params:{delay:w,now:performance.now(),timerId:_,timerType:"interval"}}),_},b=function(v){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,_=n.generateUniqueNumber(u);return u.set(_,v),f.postMessage({id:null,method:"set",params:{delay:w,now:performance.now(),timerId:_,timerType:"timeout"}}),_};return{clearInterval:d,clearTimeout:p,setInterval:g,setTimeout:b}};r.load=a})}),XL=Ne((t,e)=>{Pe(),Le(),Oe(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t,KL()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.workerTimers={},r.workerTimersBroker))}(t,function(r,n){var s=function(f,d){var p=null;return function(){if(p!==null)return p;var g=new Blob([d],{type:"application/javascript; charset=utf-8"}),b=URL.createObjectURL(g);return p=f(b),setTimeout(function(){return URL.revokeObjectURL(b)}),p}},i=`(()=>{var e={472:(e,t,r)=>{var o,i;void 0===(i="function"==typeof(o=function(){"use strict";var e=new Map,t=new Map,r=function(t){var r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)},o=function(e){var r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)},i=function(e,t){var r,o=performance.now();return{expected:o+(r=e-Math.max(0,o-t)),remainingDelay:r}},n=function e(t,r,o,i){var n=performance.now();n>o?postMessage({id:null,method:"call",params:{timerId:r,timerType:i}}):t.set(r,setTimeout(e,o-n,t,r,o,i))},a=function(t,r,o){var a=i(t,o),s=a.expected,d=a.remainingDelay;e.set(r,setTimeout(n,d,e,r,s,"interval"))},s=function(e,r,o){var a=i(e,o),s=a.expected,d=a.remainingDelay;t.set(r,setTimeout(n,d,t,r,s,"timeout"))};addEventListener("message",(function(e){var t=e.data;try{if("clear"===t.method){var i=t.id,n=t.params,d=n.timerId,c=n.timerType;if("interval"===c)r(d),postMessage({error:null,id:i});else{if("timeout"!==c)throw new Error('The given type "'.concat(c,'" is not supported'));o(d),postMessage({error:null,id:i})}}else{if("set"!==t.method)throw new Error('The given method "'.concat(t.method,'" is not supported'));var u=t.params,l=u.delay,p=u.now,m=u.timerId,v=u.timerType;if("interval"===v)a(l,m,p);else{if("timeout"!==v)throw new Error('The given type "'.concat(v,'" is not supported'));s(l,m,p)}}}catch(e){postMessage({error:{message:e.message},id:t.id,result:null})}}))})?o.call(t,r,t,e):o)||(e.exports=i)}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,a=s(n.load,i),o=function(f){return a().clearInterval(f)},l=function(f){return a().clearTimeout(f)},u=function(){var f;return(f=a()).setInterval.apply(f,arguments)},c=function(){var f;return(f=a()).setTimeout.apply(f,arguments)};r.clearInterval=o,r.clearTimeout=l,r.setInterval=u,r.setTimeout=c})}),QL=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__createBinding||(Object.create?function(u,c,f,d){d===void 0&&(d=f);var p=Object.getOwnPropertyDescriptor(c,f);(!p||("get"in p?!c.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return c[f]}}),Object.defineProperty(u,d,p)}:function(u,c,f,d){d===void 0&&(d=f),u[d]=c[f]}),r=t&&t.__setModuleDefault||(Object.create?function(u,c){Object.defineProperty(u,"default",{enumerable:!0,value:c})}:function(u,c){u.default=c}),n=t&&t.__importStar||function(u){if(u&&u.__esModule)return u;var c={};if(u!=null)for(var f in u)f!=="default"&&Object.prototype.hasOwnProperty.call(u,f)&&e(c,u,f);return r(c,u),c};Object.defineProperty(t,"__esModule",{value:!0});var s=n(rf()),i=XL(),a={set:i.setInterval,clear:i.clearInterval},o={set:(u,c)=>setInterval(u,c),clear:u=>clearInterval(u)},l=u=>{switch(u){case"native":return o;case"worker":return a;case"auto":default:return s.default&&!s.isWebWorker&&!s.isReactNativeBrowser?a:o}};t.default=l}),IE=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(QL()),n=class{get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(s,i){this.destroyed=!1,this.client=s,this.timer=typeof i=="object"&&"set"in i&&"clear"in i?i:(0,r.default)(i),this.setKeepalive(s.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(s){if(s*=1e3,isNaN(s)||s<=0||s>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${s}`);this._keepalive=s,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${s}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let s=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+s,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};t.default=n}),sg=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__createBinding||(Object.create?function(T,A,C,L){L===void 0&&(L=C);var j=Object.getOwnPropertyDescriptor(A,C);(!j||("get"in j?!A.__esModule:j.writable||j.configurable))&&(j={enumerable:!0,get:function(){return A[C]}}),Object.defineProperty(T,L,j)}:function(T,A,C,L){L===void 0&&(L=C),T[L]=A[C]}),r=t&&t.__setModuleDefault||(Object.create?function(T,A){Object.defineProperty(T,"default",{enumerable:!0,value:A})}:function(T,A){T.default=A}),n=t&&t.__importStar||function(T){if(T&&T.__esModule)return T;var A={};if(T!=null)for(var C in T)C!=="default"&&Object.prototype.hasOwnProperty.call(T,C)&&e(A,T,C);return r(A,T),A},s=t&&t.__importDefault||function(T){return T&&T.__esModule?T:{default:T}};Object.defineProperty(t,"__esModule",{value:!0});var i=s(F2()),a=s(EL()),o=s(fE()),l=oo(),u=s(xL()),c=n(TL()),f=s(Ci()),d=s(dE()),p=s(qL()),g=ua(),b=GL(),v=s(IE()),w=n(rf()),_=globalThis.setImmediate||((...T)=>{let A=T.shift();(0,g.nextTick)(()=>{A(...T)})}),y={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,writeCache:!0,timerVariant:"auto"},x=class og extends b.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(A,C){super(),this.options=C||{};for(let L in y)typeof this.options[L]>"u"?this.options[L]=y[L]:this.options[L]=C[L];this.log=this.options.log||(0,f.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",og.VERSION),w.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",w.default?"browser":"node"),this.log("MqttClient :: options.protocol",C.protocol),this.log("MqttClient :: options.protocolVersion",C.protocolVersion),this.log("MqttClient :: options.username",C.username),this.log("MqttClient :: options.keepalive",C.keepalive),this.log("MqttClient :: options.reconnectPeriod",C.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",C.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",C.properties?C.properties.topicAliasMaximum:void 0),this.options.clientId=typeof C.clientId=="string"?C.clientId:og.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=C.protocolVersion===5&&C.customHandleAcks?C.customHandleAcks:(...L)=>{L[3](null,0)},this.options.writeCache||(a.default.writeToStream.cacheNumbers=!1),this.streamBuilder=A,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new o.default:this.options.messageIdProvider,this.outgoingStore=C.outgoingStore||new d.default,this.incomingStore=C.incomingStore||new d.default,this.queueQoSZero=C.queueQoSZero===void 0?!0:C.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,C.properties&&C.properties.topicAliasMaximum>0&&(C.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new i.default(C.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:L}=this,j=()=>{let R=L.shift();this.log("deliver :: entry %o",R);let U=null;if(!R){this._resubscribe();return}U=R.packet,this.log("deliver :: call _sendPacket for %o",U);let I=!0;U.messageId&&U.messageId!==0&&(this.messageIdProvider.register(U.messageId)||(I=!1)),I?this._sendPacket(U,M=>{R.cb&&R.cb(M),j()}):(this.log("messageId: %d has already used. The message is skipped and removed.",U.messageId),j())};this.log("connect :: sending queued packets"),j()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(A,C){C()}handleMessage(A,C){C()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var A;let C=new l.Writable,L=a.default.parser(this.options),j=null,R=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new d.default,this.outgoingStore=this.options.outgoingStore||new d.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),L.on("packet",Z=>{this.log("parser :: on packet push to packets array."),R.push(Z)});let U=()=>{this.log("work :: getting next packet in queue");let Z=R.shift();if(Z)this.log("work :: packet pulled from queue"),(0,p.default)(this,Z,I);else{this.log("work :: no packets in queue");let ne=j;j=null,this.log("work :: done flag is %s",!!ne),ne&&ne()}},I=()=>{if(R.length)(0,g.nextTick)(U);else{let Z=j;j=null,Z()}};C._write=(Z,ne,re)=>{j=re,this.log("writable stream :: parsing buffer"),L.parse(Z),U()};let M=Z=>{this.log("streamErrorHandler :: error",Z.message),Z.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",Z)):this.noop(Z)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(C),this.stream.on("error",M),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let $={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&($.will=Object.assign(Object.assign({},this.options.will),{payload:(A=this.options.will)===null||A===void 0?void 0:A.payload})),this.topicAliasRecv&&($.properties||($.properties={}),this.topicAliasRecv&&($.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket($),L.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let Z=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(Z)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(A,C,L,j){this.log("publish :: message `%s` to topic `%s`",C,A);let{options:R}=this;typeof L=="function"&&(j=L,L=null),L=L||{},L=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),L);let{qos:U,retain:I,dup:M,properties:$,cbStorePut:Z}=L;if(this._checkDisconnecting(j))return this;let ne=()=>{let re=0;if((U===1||U===2)&&(re=this._nextId(),re===null))return this.log("No messageId left"),!1;let N={cmd:"publish",topic:A,payload:C,qos:U,retain:I,messageId:re,dup:M};switch(R.protocolVersion===5&&(N.properties=$),this.log("publish :: qos",U),U){case 1:case 2:this.outgoing[N.messageId]={volatile:!1,cb:j||this.noop},this.log("MqttClient:publish: packet cmd: %s",N.cmd),this._sendPacket(N,void 0,Z);break;default:this.log("MqttClient:publish: packet cmd: %s",N.cmd),this._sendPacket(N,j,Z);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:L.cbStorePut,callback:j}),this}publishAsync(A,C,L){return new Promise((j,R)=>{this.publish(A,C,L,(U,I)=>{U?R(U):j(I)})})}subscribe(A,C,L){let j=this.options.protocolVersion;typeof C=="function"&&(L=C),L=L||this.noop;let R=!1,U=[];typeof A=="string"?(A=[A],U=A):Array.isArray(A)?U=A:typeof A=="object"&&(R=A.resubscribe,delete A.resubscribe,U=Object.keys(A));let I=c.validateTopics(U);if(I!==null)return _(L,new Error(`Invalid topic ${I}`)),this;if(this._checkDisconnecting(L))return this.log("subscribe: discconecting true"),this;let M={qos:0};j===5&&(M.nl=!1,M.rap=!1,M.rh=0),C=Object.assign(Object.assign({},M),C);let $=C.properties,Z=[],ne=(N,fe)=>{if(fe=fe||C,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,N)||this._resubscribeTopics[N].qos{this.log("subscribe: array topic %s",N),ne(N)}):Object.keys(A).forEach(N=>{this.log("subscribe: object topic %s, %o",N,A[N]),ne(N,A[N])}),!Z.length)return L(null,[]),this;let re=()=>{let N=this._nextId();if(N===null)return this.log("No messageId left"),!1;let fe={cmd:"subscribe",subscriptions:Z,messageId:N};if($&&(fe.properties=$),this.options.resubscribe){this.log("subscribe :: resubscribe true");let G=[];Z.forEach(pe=>{if(this.options.reconnectPeriod>0){let F={qos:pe.qos};j===5&&(F.nl=pe.nl||!1,F.rap=pe.rap||!1,F.rh=pe.rh||0,F.properties=pe.properties),this._resubscribeTopics[pe.topic]=F,G.push(pe.topic)}}),this.messageIdToTopic[fe.messageId]=G}return this.outgoing[fe.messageId]={volatile:!0,cb(G,pe){if(!G){let{granted:F}=pe;for(let de=0;de0||!re())&&this._storeProcessingQueue.push({invoke:re,callback:L}),this}subscribeAsync(A,C){return new Promise((L,j)=>{this.subscribe(A,C,(R,U)=>{R?j(R):L(U)})})}unsubscribe(A,C,L){typeof A=="string"&&(A=[A]),typeof C=="function"&&(L=C),L=L||this.noop;let j=c.validateTopics(A);if(j!==null)return _(L,new Error(`Invalid topic ${j}`)),this;if(this._checkDisconnecting(L))return this;let R=()=>{let U=this._nextId();if(U===null)return this.log("No messageId left"),!1;let I={cmd:"unsubscribe",messageId:U,unsubscriptions:[]};return typeof A=="string"?I.unsubscriptions=[A]:Array.isArray(A)&&(I.unsubscriptions=A),this.options.resubscribe&&I.unsubscriptions.forEach(M=>{delete this._resubscribeTopics[M]}),typeof C=="object"&&C.properties&&(I.properties=C.properties),this.outgoing[I.messageId]={volatile:!0,cb:L},this.log("unsubscribe: call _sendPacket"),this._sendPacket(I),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!R())&&this._storeProcessingQueue.push({invoke:R,callback:L}),this}unsubscribeAsync(A,C){return new Promise((L,j)=>{this.unsubscribe(A,C,(R,U)=>{R?j(R):L(U)})})}end(A,C,L){this.log("end :: (%s)",this.options.clientId),(A==null||typeof A!="boolean")&&(L=L||C,C=A,A=!1),typeof C!="object"&&(L=L||C,C=null),this.log("end :: cb? %s",!!L),(!L||typeof L!="function")&&(L=this.noop);let j=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(U=>{this.outgoingStore.close(I=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),L){let M=U||I;this.log("end :: closeStores: invoking callback with args"),L(M)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},R=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,A),this._cleanUp(A,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,g.nextTick)(j)},C)};return this.disconnecting?(L(),this):(this._clearReconnect(),this.disconnecting=!0,!A&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,R,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),R()),this)}endAsync(A,C){return new Promise((L,j)=>{this.end(A,C,R=>{R?j(R):L()})})}removeOutgoingMessage(A){if(this.outgoing[A]){let{cb:C}=this.outgoing[A];this._removeOutgoingAndStoreMessage(A,()=>{C(new Error("Message removed"))})}return this}reconnect(A){this.log("client reconnect");let C=()=>{A?(this.options.incomingStore=A.incomingStore,this.options.outgoingStore=A.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new d.default,this.outgoingStore=this.options.outgoingStore||new d.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=C:C(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(A=>{this.outgoing[A].volatile&&typeof this.outgoing[A].cb=="function"&&(this.outgoing[A].cb(new Error("Connection closed")),delete this.outgoing[A])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(A=>{typeof this.outgoing[A].cb=="function"&&(this.outgoing[A].cb(new Error("Connection closed")),delete this.outgoing[A])}))}_removeTopicAliasAndRecoverTopicName(A){let C;A.properties&&(C=A.properties.topicAlias);let L=A.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",C,L),L.length===0){if(typeof C>"u")return new Error("Unregistered Topic Alias");if(L=this.topicAliasSend.getTopicByAlias(C),typeof L>"u")return new Error("Unregistered Topic Alias");A.topic=L}C&&delete A.properties.topicAlias}_checkDisconnecting(A){return this.disconnecting&&(A&&A!==this.noop?A(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(A,C,L={}){if(C&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",C)),this.log("_cleanUp :: forced? %s",A),A)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let j=Object.assign({cmd:"disconnect"},L);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(j,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),_(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),C&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",C),C())}_storeAndSend(A,C,L){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",A.cmd);let j=A,R;if(j.cmd==="publish"&&(j=(0,u.default)(A),R=this._removeTopicAliasAndRecoverTopicName(j),R))return C&&C(R);this.outgoingStore.put(j,U=>{if(U)return C&&C(U);L(),this._writePacket(A,C)})}_applyTopicAlias(A){if(this.options.protocolVersion===5&&A.cmd==="publish"){let C;A.properties&&(C=A.properties.topicAlias);let L=A.topic.toString();if(this.topicAliasSend)if(C){if(L.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",L,C),!this.topicAliasSend.put(L,C)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",L,C),new Error("Sending Topic Alias out of range")}else L.length!==0&&(this.options.autoAssignTopicAlias?(C=this.topicAliasSend.getAliasByTopic(L),C?(A.topic="",A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:C}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",L,C)):(C=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(L,C),A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:C}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",L,C))):this.options.autoUseTopicAlias&&(C=this.topicAliasSend.getAliasByTopic(L),C&&(A.topic="",A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:C}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",L,C))));else if(C)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",L,C),new Error("Sending Topic Alias out of range")}}_noop(A){this.log("noop ::",A)}_writePacket(A,C){this.log("_writePacket :: packet: %O",A),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",A),this.log("_writePacket :: writing to stream");let L=a.default.writeToStream(A,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",L),!L&&C&&C!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",C)):C&&(this.log("_writePacket :: invoking cb"),C())}_sendPacket(A,C,L,j){this.log("_sendPacket :: (%s) :: start",this.options.clientId),L=L||this.noop,C=C||this.noop;let R=this._applyTopicAlias(A);if(R){C(R);return}if(!this.connected){if(A.cmd==="auth"){this._writePacket(A,C);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(A,C,L);return}if(j){this._writePacket(A,C);return}switch(A.cmd){case"publish":break;case"pubrel":this._storeAndSend(A,C,L);return;default:this._writePacket(A,C);return}switch(A.qos){case 2:case 1:this._storeAndSend(A,C,L);break;case 0:default:this._writePacket(A,C);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(A,C,L){this.log("_storePacket :: packet: %o",A),this.log("_storePacket :: cb? %s",!!C),L=L||this.noop;let j=A;if(j.cmd==="publish"){j=(0,u.default)(A);let U=this._removeTopicAliasAndRecoverTopicName(j);if(U)return C&&C(U)}let R=j.qos||0;R===0&&this.queueQoSZero||j.cmd!=="publish"?this.queue.push({packet:j,cb:C}):R>0?(C=this.outgoing[j.messageId]?this.outgoing[j.messageId].cb:null,this.outgoingStore.put(j,U=>{if(U)return C&&C(U);L()})):C&&C(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new v.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(A=!1){this.keepaliveManager&&this.options.keepalive&&(A||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let A=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&A.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let C=0;C{let L=this.outgoingStore.createStream(),j=()=>{L.destroy(),L=null,this._flushStoreProcessingQueue(),R()},R=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",j),L.on("error",I=>{R(),this._flushStoreProcessingQueue(),this.removeListener("close",j),this.emit("error",I)});let U=()=>{if(!L)return;let I=L.read(1),M;if(!I){L.once("readable",U);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[I.messageId]){U();return}!this.disconnecting&&!this.reconnectTimer?(M=this.outgoing[I.messageId]?this.outgoing[I.messageId].cb:null,this.outgoing[I.messageId]={volatile:!1,cb($,Z){M&&M($,Z),U()}},this._packetIdsDuringStoreProcessing[I.messageId]=!0,this.messageIdProvider.register(I.messageId)?this._sendPacket(I,void 0,void 0,!0):this.log("messageId: %d has already used.",I.messageId)):L.destroy&&L.destroy()};L.on("end",()=>{let I=!0;for(let M in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[M]){I=!1;break}this.removeListener("close",j),I?(R(),this._invokeAllStoreProcessingQueue(),this.emit("connect",A)):C()}),U()};C()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let A=this._storeProcessingQueue[0];if(A&&A.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let A of this._storeProcessingQueue)A.cbStorePut&&A.cbStorePut(new Error("Connection closed")),A.callback&&A.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(A,C){delete this.outgoing[A],this.outgoingStore.del({messageId:A},(L,j)=>{C(L,j),this.messageIdProvider.deallocate(A),this._invokeStoreProcessingQueue()})}};x.VERSION=g.MQTTJS_VERSION,t.default=x}),JL=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=CE(),r=class{constructor(){this.numberAllocator=new e.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(n){return this.numberAllocator.use(n)}deallocate(n){this.numberAllocator.free(n)}clear(){this.numberAllocator.clear()}};t.default=r});function Ss(t){throw new RangeError(kE[t])}function rw(t,e){let r=t.split("@"),n="";r.length>1&&(n=r[0]+"@",t=r[1]);let s=function(i,a){let o=[],l=i.length;for(;l--;)o[l]=a(i[l]);return o}((t=t.replace(ME,".")).split("."),e).join(".");return n+s}function nw(t){let e=[],r=0,n=t.length;for(;r=55296&&s<=56319&&r{Pe(),Le(),Oe(),iw=/^xn--/,sw=/[^\0-\x7E]/,ME=/[\x2E\u3002\uFF0E\uFF61]/g,kE={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},pn=Math.floor,Zl=String.fromCharCode,Kf=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},Xf=function(t,e,r){let n=0;for(t=r?pn(t/700):t>>1,t+=pn(t/e);t>455;n+=36)t=pn(t/35);return pn(n+36*t/(t+38))},Qf=function(t){let e=[],r=t.length,n=0,s=128,i=72,a=t.lastIndexOf("-");a<0&&(a=0);for(let l=0;l=128&&Ss("not-basic"),e.push(t.charCodeAt(l));for(let l=a>0?a+1:0;l=r&&Ss("invalid-input");let p=(o=t.charCodeAt(l++))-48<10?o-22:o-65<26?o-65:o-97<26?o-97:36;(p>=36||p>pn((2147483647-n)/f))&&Ss("overflow"),n+=p*f;let g=d<=i?1:d>=i+26?26:d-i;if(ppn(2147483647/b)&&Ss("overflow"),f*=b}let c=e.length+1;i=Xf(n-u,c,u==0),pn(n/c)>2147483647-s&&Ss("overflow"),s+=pn(n/c),n%=c,e.splice(n++,0,s)}var o;return String.fromCodePoint(...e)},Jf=function(t){let e=[],r=(t=nw(t)).length,n=128,s=0,i=72;for(let l of t)l<128&&e.push(Zl(l));let a=e.length,o=a;for(a&&e.push("-");o=n&&cpn((2147483647-s)/u)&&Ss("overflow"),s+=(l-n)*u,n=l;for(let c of t)if(c2147483647&&Ss("overflow"),c==n){let f=s;for(let d=36;;d+=36){let p=d<=i?1:d>=i+26?26:d-i;if(fString.fromCodePoint(...t)},decode:Qf,encode:Jf,toASCII:function(t){return rw(t,function(e){return sw.test(e)?"xn--"+Jf(e):e})},toUnicode:function(t){return rw(t,function(e){return iw.test(e)?Qf(e.slice(4).toLowerCase()):e})}},Vi.decode,Vi.encode,Vi.toASCII,Vi.toUnicode,Vi.ucs2,Vi.version});function eR(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var ow,bo,aw,On,tR=cr(()=>{Pe(),Le(),Oe(),ow=function(t,e,r,n){e=e||"&",r=r||"=";var s={};if(typeof t!="string"||t.length===0)return s;var i=/\+/g;t=t.split(e);var a=1e3;n&&typeof n.maxKeys=="number"&&(a=n.maxKeys);var o=t.length;a>0&&o>a&&(o=a);for(var l=0;l=0?(u=p.substr(0,g),c=p.substr(g+1)):(u=p,c=""),f=decodeURIComponent(u),d=decodeURIComponent(c),eR(s,f)?Array.isArray(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s},bo=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},aw=function(t,e,r,n){return e=e||"&",r=r||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map(function(s){var i=encodeURIComponent(bo(s))+r;return Array.isArray(t[s])?t[s].map(function(a){return i+encodeURIComponent(bo(a))}).join(e):i+encodeURIComponent(bo(t[s]))}).join(e):n?encodeURIComponent(bo(n))+r+encodeURIComponent(bo(t)):""},On={},On.decode=On.parse=ow,On.encode=On.stringify=aw,On.decode,On.encode,On.parse,On.stringify});function ag(){throw new Error("setTimeout has not been defined")}function lg(){throw new Error("clearTimeout has not been defined")}function PE(t){if(si===setTimeout)return setTimeout(t,0);if((si===ag||!si)&&setTimeout)return si=setTimeout,setTimeout(t,0);try{return si(t,0)}catch{try{return si.call(null,t,0)}catch{return si.call(this||Fs,t,0)}}}function rR(){Vs&&Ls&&(Vs=!1,Ls.length?Un=Ls.concat(Un):rl=-1,Un.length&&OE())}function OE(){if(!Vs){var t=PE(rR);Vs=!0;for(var e=Un.length;e;){for(Ls=Un,Un=[];++rl{Pe(),Le(),Oe(),Fs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:qs,Wt=uw={},function(){try{si=typeof setTimeout=="function"?setTimeout:ag}catch{si=ag}try{oi=typeof clearTimeout=="function"?clearTimeout:lg}catch{oi=lg}}(),Un=[],Vs=!1,rl=-1,Wt.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r1)for(var w=1;w{Pe(),Le(),Oe(),Fu={},ug=!1,Is=typeof globalThis<"u"?globalThis:typeof self<"u"?self:qs,Bt=iR(),Bt.platform="browser",Bt.addListener,Bt.argv,Bt.binding,Bt.browser,Bt.chdir,Bt.cwd,Bt.emit,Bt.env,Bt.listeners,Bt.nextTick,Bt.off,Bt.on,Bt.once,Bt.prependListener,Bt.prependOnceListener,Bt.removeAllListeners,Bt.removeListener,Bt.title,Bt.umask,Bt.version,Bt.versions});function sR(){if(cg)return Vu;cg=!0;var t=Bt;function e(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function r(i,a){for(var o="",l=0,u=-1,c=0,f,d=0;d<=i.length;++d){if(d2){var p=o.lastIndexOf("/");if(p!==o.length-1){p===-1?(o="",l=0):(o=o.slice(0,p),l=o.length-1-o.lastIndexOf("/")),u=d,c=0;continue}}else if(o.length===2||o.length===1){o="",l=0,u=d,c=0;continue}}a&&(o.length>0?o+="/..":o="..",l=2)}else o.length>0?o+="/"+i.slice(u+1,d):o=i.slice(u+1,d),l=d-u-1;u=d,c=0}else f===46&&c!==-1?++c:c=-1}return o}function n(i,a){var o=a.dir||a.root,l=a.base||(a.name||"")+(a.ext||"");return o?o===a.root?o+l:o+i+l:l}var s={resolve:function(){for(var i="",a=!1,o,l=arguments.length-1;l>=-1&&!a;l--){var u;l>=0?u=arguments[l]:(o===void 0&&(o=t.cwd()),u=o),e(u),u.length!==0&&(i=u+"/"+i,a=u.charCodeAt(0)===47)}return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(i){if(e(i),i.length===0)return".";var a=i.charCodeAt(0)===47,o=i.charCodeAt(i.length-1)===47;return i=r(i,!a),i.length===0&&!a&&(i="."),i.length>0&&o&&(i+="/"),a?"/"+i:i},isAbsolute:function(i){return e(i),i.length>0&&i.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var i,a=0;a0&&(i===void 0?i=o:i+="/"+o)}return i===void 0?".":s.normalize(i)},relative:function(i,a){if(e(i),e(a),i===a||(i=s.resolve(i),a=s.resolve(a),i===a))return"";for(var o=1;op){if(a.charCodeAt(c+b)===47)return a.slice(c+b+1);if(b===0)return a.slice(c+b)}else u>p&&(i.charCodeAt(o+b)===47?g=b:b===0&&(g=0));break}var v=i.charCodeAt(o+b),w=a.charCodeAt(c+b);if(v!==w)break;v===47&&(g=b)}var _="";for(b=o+g+1;b<=l;++b)(b===l||i.charCodeAt(b)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+a.slice(c+g):(c+=g,a.charCodeAt(c)===47&&++c,a.slice(c))},_makeLong:function(i){return i},dirname:function(i){if(e(i),i.length===0)return".";for(var a=i.charCodeAt(0),o=a===47,l=-1,u=!0,c=i.length-1;c>=1;--c)if(a=i.charCodeAt(c),a===47){if(!u){l=c;break}}else u=!1;return l===-1?o?"/":".":o&&l===1?"//":i.slice(0,l)},basename:function(i,a){if(a!==void 0&&typeof a!="string")throw new TypeError('"ext" argument must be a string');e(i);var o=0,l=-1,u=!0,c;if(a!==void 0&&a.length>0&&a.length<=i.length){if(a.length===i.length&&a===i)return"";var f=a.length-1,d=-1;for(c=i.length-1;c>=0;--c){var p=i.charCodeAt(c);if(p===47){if(!u){o=c+1;break}}else d===-1&&(u=!1,d=c+1),f>=0&&(p===a.charCodeAt(f)?--f===-1&&(l=c):(f=-1,l=d))}return o===l?l=d:l===-1&&(l=i.length),i.slice(o,l)}else{for(c=i.length-1;c>=0;--c)if(i.charCodeAt(c)===47){if(!u){o=c+1;break}}else l===-1&&(u=!1,l=c+1);return l===-1?"":i.slice(o,l)}},extname:function(i){e(i);for(var a=-1,o=0,l=-1,u=!0,c=0,f=i.length-1;f>=0;--f){var d=i.charCodeAt(f);if(d===47){if(!u){o=f+1;break}continue}l===-1&&(u=!1,l=f+1),d===46?a===-1?a=f:c!==1&&(c=1):a!==-1&&(c=-1)}return a===-1||l===-1||c===0||c===1&&a===l-1&&a===o+1?"":i.slice(a,l)},format:function(i){if(i===null||typeof i!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return n("/",i)},parse:function(i){e(i);var a={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return a;var o=i.charCodeAt(0),l=o===47,u;l?(a.root="/",u=1):u=0;for(var c=-1,f=0,d=-1,p=!0,g=i.length-1,b=0;g>=u;--g){if(o=i.charCodeAt(g),o===47){if(!p){f=g+1;break}continue}d===-1&&(p=!1,d=g+1),o===46?c===-1?c=g:b!==1&&(b=1):c!==-1&&(b=-1)}return c===-1||d===-1||b===0||b===1&&c===d-1&&c===f+1?d!==-1&&(f===0&&l?a.base=a.name=i.slice(1,d):a.base=a.name=i.slice(f,d)):(f===0&&l?(a.name=i.slice(1,c),a.base=i.slice(1,d)):(a.name=i.slice(f,c),a.base=i.slice(f,d)),a.ext=i.slice(c,d)),f>0?a.dir=i.slice(0,f-1):l&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};return s.posix=s,Vu=s,Vu}var Vu,cg,fg,oR=cr(()=>{Pe(),Le(),Oe(),LE(),Vu={},cg=!1,fg=sR()}),RE={};no(RE,{URL:()=>JE,Url:()=>GE,default:()=>xt,fileURLToPath:()=>BE,format:()=>YE,parse:()=>QE,pathToFileURL:()=>$E,resolve:()=>KE,resolveObject:()=>XE});function rn(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function ka(t,e,r){if(t&&bn.isObject(t)&&t instanceof rn)return t;var n=new rn;return n.parse(t,e,r),n}function aR(){if(dg)return ju;dg=!0;var t=Ut;function e(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function r(i,a){for(var o="",l=0,u=-1,c=0,f,d=0;d<=i.length;++d){if(d2){var p=o.lastIndexOf("/");if(p!==o.length-1){p===-1?(o="",l=0):(o=o.slice(0,p),l=o.length-1-o.lastIndexOf("/")),u=d,c=0;continue}}else if(o.length===2||o.length===1){o="",l=0,u=d,c=0;continue}}a&&(o.length>0?o+="/..":o="..",l=2)}else o.length>0?o+="/"+i.slice(u+1,d):o=i.slice(u+1,d),l=d-u-1;u=d,c=0}else f===46&&c!==-1?++c:c=-1}return o}function n(i,a){var o=a.dir||a.root,l=a.base||(a.name||"")+(a.ext||"");return o?o===a.root?o+l:o+i+l:l}var s={resolve:function(){for(var i="",a=!1,o,l=arguments.length-1;l>=-1&&!a;l--){var u;l>=0?u=arguments[l]:(o===void 0&&(o=t.cwd()),u=o),e(u),u.length!==0&&(i=u+"/"+i,a=u.charCodeAt(0)===47)}return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(i){if(e(i),i.length===0)return".";var a=i.charCodeAt(0)===47,o=i.charCodeAt(i.length-1)===47;return i=r(i,!a),i.length===0&&!a&&(i="."),i.length>0&&o&&(i+="/"),a?"/"+i:i},isAbsolute:function(i){return e(i),i.length>0&&i.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var i,a=0;a0&&(i===void 0?i=o:i+="/"+o)}return i===void 0?".":s.normalize(i)},relative:function(i,a){if(e(i),e(a),i===a||(i=s.resolve(i),a=s.resolve(a),i===a))return"";for(var o=1;op){if(a.charCodeAt(c+b)===47)return a.slice(c+b+1);if(b===0)return a.slice(c+b)}else u>p&&(i.charCodeAt(o+b)===47?g=b:b===0&&(g=0));break}var v=i.charCodeAt(o+b),w=a.charCodeAt(c+b);if(v!==w)break;v===47&&(g=b)}var _="";for(b=o+g+1;b<=l;++b)(b===l||i.charCodeAt(b)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+a.slice(c+g):(c+=g,a.charCodeAt(c)===47&&++c,a.slice(c))},_makeLong:function(i){return i},dirname:function(i){if(e(i),i.length===0)return".";for(var a=i.charCodeAt(0),o=a===47,l=-1,u=!0,c=i.length-1;c>=1;--c)if(a=i.charCodeAt(c),a===47){if(!u){l=c;break}}else u=!1;return l===-1?o?"/":".":o&&l===1?"//":i.slice(0,l)},basename:function(i,a){if(a!==void 0&&typeof a!="string")throw new TypeError('"ext" argument must be a string');e(i);var o=0,l=-1,u=!0,c;if(a!==void 0&&a.length>0&&a.length<=i.length){if(a.length===i.length&&a===i)return"";var f=a.length-1,d=-1;for(c=i.length-1;c>=0;--c){var p=i.charCodeAt(c);if(p===47){if(!u){o=c+1;break}}else d===-1&&(u=!1,d=c+1),f>=0&&(p===a.charCodeAt(f)?--f===-1&&(l=c):(f=-1,l=d))}return o===l?l=d:l===-1&&(l=i.length),i.slice(o,l)}else{for(c=i.length-1;c>=0;--c)if(i.charCodeAt(c)===47){if(!u){o=c+1;break}}else l===-1&&(u=!1,l=c+1);return l===-1?"":i.slice(o,l)}},extname:function(i){e(i);for(var a=-1,o=0,l=-1,u=!0,c=0,f=i.length-1;f>=0;--f){var d=i.charCodeAt(f);if(d===47){if(!u){o=f+1;break}continue}l===-1&&(u=!1,l=f+1),d===46?a===-1?a=f:c!==1&&(c=1):a!==-1&&(c=-1)}return a===-1||l===-1||c===0||c===1&&a===l-1&&a===o+1?"":i.slice(a,l)},format:function(i){if(i===null||typeof i!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return n("/",i)},parse:function(i){e(i);var a={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return a;var o=i.charCodeAt(0),l=o===47,u;l?(a.root="/",u=1):u=0;for(var c=-1,f=0,d=-1,p=!0,g=i.length-1,b=0;g>=u;--g){if(o=i.charCodeAt(g),o===47){if(!p){f=g+1;break}continue}d===-1&&(p=!1,d=g+1),o===46?c===-1?c=g:b!==1&&(b=1):c!==-1&&(b=-1)}return c===-1||d===-1||b===0||b===1&&c===d-1&&c===f+1?d!==-1&&(f===0&&l?a.base=a.name=i.slice(1,d):a.base=a.name=i.slice(f,d)):(f===0&&l?(a.name=i.slice(1,c),a.base=i.slice(1,d)):(a.name=i.slice(f,c),a.base=i.slice(f,d)),a.ext=i.slice(c,d)),f>0?a.dir=i.slice(0,f-1):l&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};return s.posix=s,ju=s,ju}function lR(t){if(typeof t=="string")t=new URL(t);else if(!(t instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(t.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return vc?uR(t):cR(t)}function uR(t){let e=t.hostname,r=t.pathname;for(let n=0;nFE||s!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return r.slice(1)}}function cR(t){if(t.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let e=t.pathname;for(let r=0;rrS||s!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return r.slice(1)}}function hR(t){if(t.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let e=t.pathname;for(let r=0;r{Pe(),Le(),Oe(),ZL(),tR(),nR(),oR(),LE(),xt={},cw=Vi,bn={isString:function(t){return typeof t=="string"},isObject:function(t){return typeof t=="object"&&t!==null},isNull:function(t){return t===null},isNullOrUndefined:function(t){return t==null}},xt.parse=ka,xt.resolve=function(t,e){return ka(t,!1,!0).resolve(e)},xt.resolveObject=function(t,e){return t?ka(t,!1,!0).resolveObject(e):e},xt.format=function(t){return bn.isString(t)&&(t=ka(t)),t instanceof rn?t.format():rn.prototype.format.call(t)},xt.Url=rn,fw=/^([a-z0-9.+-]+:)/i,dw=/:[0-9]*$/,hw=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,pw=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),eu=["'"].concat(pw),Zf=["%","/","?",";","#"].concat(eu),ed=["/","?","#"],td=/^[+a-z0-9A-Z_-]{0,63}$/,gw=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,mw={javascript:!0,"javascript:":!0},tu={javascript:!0,"javascript:":!0},xs={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},ru=On,rn.prototype.parse=function(t,e,r){if(!bn.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),s=n!==-1&&n127?x+="x":x+=y[T];if(!x.match(td)){var C=w.slice(0,g),L=w.slice(g+1),j=y.match(gw);j&&(C.push(j[1]),L.unshift(j[2])),L.length&&(a="/"+L.join(".")+a),this.hostname=C.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),v||(this.hostname=cw.toASCII(this.hostname));var R=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+R,this.href+=this.host,v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),a[0]!=="/"&&(a="/"+a))}if(!mw[u])for(g=0,_=eu.length;g<_;g++){var I=eu[g];if(a.indexOf(I)!==-1){var M=encodeURIComponent(I);M===I&&(M=escape(I)),a=a.split(I).join(M)}}var $=a.indexOf("#");$!==-1&&(this.hash=a.substr($),a=a.slice(0,$));var Z=a.indexOf("?");if(Z!==-1?(this.search=a.substr(Z),this.query=a.substr(Z+1),e&&(this.query=ru.parse(this.query)),a=a.slice(0,Z)):e&&(this.search="",this.query={}),a&&(this.pathname=a),xs[u]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){R=this.pathname||"";var ne=this.search||"";this.path=R+ne}return this.href=this.format(),this},rn.prototype.format=function(){var t=this.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var e=this.protocol||"",r=this.pathname||"",n=this.hash||"",s=!1,i="";this.host?s=t+this.host:this.hostname&&(s=t+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&bn.isObject(this.query)&&Object.keys(this.query).length&&(i=ru.stringify(this.query));var a=this.search||i&&"?"+i||"";return e&&e.substr(-1)!==":"&&(e+=":"),this.slashes||(!e||xs[e])&&s!==!1?(s="//"+(s||""),r&&r.charAt(0)!=="/"&&(r="/"+r)):s||(s=""),n&&n.charAt(0)!=="#"&&(n="#"+n),a&&a.charAt(0)!=="?"&&(a="?"+a),e+s+(r=r.replace(/[?#]/g,function(o){return encodeURIComponent(o)}))+(a=a.replace("#","%23"))+n},rn.prototype.resolve=function(t){return this.resolveObject(ka(t,!1,!0)).format()},rn.prototype.resolveObject=function(t){if(bn.isString(t)){var e=new rn;e.parse(t,!1,!0),t=e}for(var r=new rn,n=Object.keys(this),s=0;s0)&&r.host.split("@"))&&(r.auth=j.shift(),r.host=r.hostname=j.shift())),r.search=t.search,r.query=t.query,bn.isNull(r.pathname)&&bn.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var T=y.slice(-1)[0],A=(r.host||t.host||y.length>1)&&(T==="."||T==="..")||T==="",C=0,L=y.length;L>=0;L--)(T=y[L])==="."?y.splice(L,1):T===".."?(y.splice(L,1),C++):C&&(y.splice(L,1),C--);if(!w&&!_)for(;C--;C)y.unshift("..");!w||y[0]===""||y[0]&&y[0].charAt(0)==="/"||y.unshift(""),A&&y.join("/").substr(-1)!=="/"&&y.push("");var j,R=y[0]===""||y[0]&&y[0].charAt(0)==="/";return x&&(r.hostname=r.host=R?"":y.length?y.shift():"",(j=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=j.shift(),r.host=r.hostname=j.shift())),(w=w||r.host&&y.length)&&!R&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),bn.isNull(r.pathname)&&bn.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},rn.prototype.parseHost=function(){var t=this.host,e=dw.exec(t);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},xt.Url,xt.format,xt.resolve,xt.resolveObject,ju={},dg=!1,hg=aR(),bw=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,xt.URL=typeof URL<"u"?URL:null,xt.pathToFileURL=fR,xt.fileURLToPath=lR,xt.Url,xt.format,xt.resolve,xt.resolveObject,xt.URL,NE=92,DE=47,UE=97,FE=122,vc=bw==="win32",VE=/\//g,jE=/%/g,WE=/\\/g,zE=/\n/g,HE=/\r/g,qE=/\t/g,yw=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,xt.URL=typeof URL<"u"?URL:null,xt.pathToFileURL=$E,xt.fileURLToPath=BE,GE=xt.Url,YE=xt.format,KE=xt.resolve,XE=xt.resolveObject,QE=xt.parse,JE=xt.URL,ZE=92,eS=47,tS=97,rS=122,_c=yw==="win32",nS=/\//g,iS=/%/g,sS=/\\/g,oS=/\n/g,aS=/\r/g,lS=/\t/g}),gR=Ne((t,e)=>{Pe(),Le(),Oe(),e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),Cm=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0}),t.BufferedDuplex=t.writev=void 0;var e=oo(),r=(dr(),It(fr));function n(i,a){let o=new Array(i.length);for(let l=0;l{this.destroyed||this.push(l)})}_read(i){this.proxy.read(i)}_write(i,a,o){this.isSocketOpen?this.writeToProxy(i,a,o):this.writeQueue.push({chunk:i,encoding:a,cb:o})}_final(i){this.writeQueue=[],this.proxy.end(i)}_destroy(i,a){this.writeQueue=[],this.proxy.destroy(),a(i)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(i,a,o){this.proxy.write(i,a)===!1?this.proxy.once("drain",o):o()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:i,encoding:a,cb:o}=this.writeQueue.shift();this.writeToProxy(i,a,o)}}};t.BufferedDuplex=s}),nu=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(w){return w&&w.__esModule?w:{default:w}};Object.defineProperty(t,"__esModule",{value:!0}),t.streamBuilder=t.browserStreamBuilder=void 0;var r=(dr(),It(fr)),n=e(gR()),s=e(Ci()),i=oo(),a=e(rf()),o=Cm(),l=(0,s.default)("mqttjs:ws"),u=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function c(w,_){let y=`${w.protocol}://${w.hostname}:${w.port}${w.path}`;return typeof w.transformWsUrl=="function"&&(y=w.transformWsUrl(y,w,_)),y}function f(w){let _=w;return w.port||(w.protocol==="wss"?_.port=443:_.port=80),w.path||(_.path="/"),w.wsOptions||(_.wsOptions={}),!a.default&&!w.forceNativeWebSocket&&w.protocol==="wss"&&u.forEach(y=>{Object.prototype.hasOwnProperty.call(w,y)&&!Object.prototype.hasOwnProperty.call(w.wsOptions,y)&&(_.wsOptions[y]=w[y])}),_}function d(w){let _=f(w);if(_.hostname||(_.hostname=_.host),!_.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let y=new URL(document.URL);_.hostname=y.hostname,_.port||(_.port=Number(y.port))}return _.objectMode===void 0&&(_.objectMode=!(_.binary===!0||_.binary===void 0)),_}function p(w,_,y){l("createWebSocket"),l(`protocol: ${y.protocolId} ${y.protocolVersion}`);let x=y.protocolId==="MQIsdp"&&y.protocolVersion===3?"mqttv3.1":"mqtt";l(`creating new Websocket for url: ${_} and protocol: ${x}`);let T;return y.createWebsocket?T=y.createWebsocket(_,[x],y):T=new n.default(_,[x],y.wsOptions),T}function g(w,_){let y=_.protocolId==="MQIsdp"&&_.protocolVersion===3?"mqttv3.1":"mqtt",x=c(_,w),T;return _.createWebsocket?T=_.createWebsocket(x,[y],_):T=new WebSocket(x,[y]),T.binaryType="arraybuffer",T}var b=(w,_)=>{l("streamBuilder");let y=f(_);y.hostname=y.hostname||y.host||"localhost";let x=c(y,w),T=p(w,x,y),A=n.default.createWebSocketStream(T,y.wsOptions);return A.url=x,T.on("close",()=>{A.destroy()}),A};t.streamBuilder=b;var v=(w,_)=>{l("browserStreamBuilder");let y,x=d(_).browserBufferSize||1024*512,T=_.browserBufferTimeout||1e3,A=!_.objectMode,C=g(w,_),L=R(_,Z,ne);_.objectMode||(L._writev=o.writev.bind(L)),L.on("close",()=>{C.close()});let j=typeof C.addEventListener<"u";C.readyState===C.OPEN?(y=L,y.socket=C):(y=new o.BufferedDuplex(_,L,C),j?C.addEventListener("open",U):C.onopen=U),j?(C.addEventListener("close",I),C.addEventListener("error",M),C.addEventListener("message",$)):(C.onclose=I,C.onerror=M,C.onmessage=$);function R(re,N,fe){let G=new i.Transform({objectMode:re.objectMode});return G._write=N,G._flush=fe,G}function U(){l("WebSocket onOpen"),y instanceof o.BufferedDuplex&&y.socketReady()}function I(re){l("WebSocket onClose",re),y.end(),y.destroy()}function M(re){l("WebSocket onError",re);let N=new Error("WebSocket error");N.event=re,y.destroy(N)}async function $(re){let{data:N}=re;N instanceof ArrayBuffer?N=r.Buffer.from(N):N instanceof Blob?N=r.Buffer.from(await new Response(N).arrayBuffer()):N=r.Buffer.from(N,"utf8"),L&&!L.destroyed&&L.push(N)}function Z(re,N,fe){if(C.bufferedAmount>x){setTimeout(Z,T,re,N,fe);return}A&&typeof re=="string"&&(re=r.Buffer.from(re,"utf8"));try{C.send(re)}catch(G){return fe(G)}fe()}function ne(re){C.close(),re()}return y};t.browserStreamBuilder=v}),Im={};no(Im,{Server:()=>$t,Socket:()=>$t,Stream:()=>$t,_createServerHandle:()=>$t,_normalizeArgs:()=>$t,_setSimultaneousAccepts:()=>$t,connect:()=>$t,createConnection:()=>$t,createServer:()=>$t,default:()=>uS,isIP:()=>$t,isIPv4:()=>$t,isIPv6:()=>$t});function $t(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}var uS,cS=cr(()=>{Pe(),Le(),Oe(),uS={_createServerHandle:$t,_normalizeArgs:$t,_setSimultaneousAccepts:$t,connect:$t,createConnection:$t,createServer:$t,isIP:$t,isIPv4:$t,isIPv6:$t,Server:$t,Socket:$t,Stream:$t}}),ww=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((cS(),It(Im))),n=e(Ci()),s=(0,n.default)("mqttjs:tcp"),i=(a,o)=>{o.port=o.port||1883,o.hostname=o.hostname||o.host||"localhost";let{port:l,path:u}=o,c=o.hostname;return s("port %d and host %s",l,c),r.default.createConnection({port:l,host:c,path:u})};t.default=i}),fS={};no(fS,{default:()=>dS});var dS,mR=cr(()=>{Pe(),Le(),Oe(),dS={}}),vw=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((mR(),It(fS))),n=e((cS(),It(Im))),s=e(Ci()),i=(0,s.default)("mqttjs:tls"),a=(o,l)=>{l.port=l.port||8883,l.host=l.hostname||l.host||"localhost",n.default.isIP(l.host)===0&&(l.servername=l.host),l.rejectUnauthorized=l.rejectUnauthorized!==!1,delete l.path,i("port %d host %s rejectUnauthorized %b",l.port,l.host,l.rejectUnauthorized);let u=r.default.connect(l);u.on("secureConnect",()=>{l.rejectUnauthorized&&!u.authorized?u.emit("error",new Error("TLS not authorized")):u.removeListener("error",c)});function c(f){l.rejectUnauthorized&&o.emit("error",f),u.end()}return u.on("error",c),u};t.default=a}),_w=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=(dr(),It(fr)),r=oo(),n=Cm(),s,i,a;function o(){let d=new r.Transform;return d._write=(p,g,b)=>{s.send({data:p.buffer,success(){b()},fail(v){b(new Error(v))}})},d._flush=p=>{s.close({success(){p()}})},d}function l(d){d.hostname||(d.hostname="localhost"),d.path||(d.path="/"),d.wsOptions||(d.wsOptions={})}function u(d,p){let g=d.protocol==="wxs"?"wss":"ws",b=`${g}://${d.hostname}${d.path}`;return d.port&&d.port!==80&&d.port!==443&&(b=`${g}://${d.hostname}:${d.port}${d.path}`),typeof d.transformWsUrl=="function"&&(b=d.transformWsUrl(b,d,p)),b}function c(){s.onOpen(()=>{a.socketReady()}),s.onMessage(d=>{let{data:p}=d;p instanceof ArrayBuffer?p=e.Buffer.from(p):p=e.Buffer.from(p,"utf8"),i.push(p)}),s.onClose(()=>{a.emit("close"),a.end(),a.destroy()}),s.onError(d=>{let p=new Error(d.errMsg);a.destroy(p)})}var f=(d,p)=>{if(p.hostname=p.hostname||p.host,!p.hostname)throw new Error("Could not determine host. Specify host manually.");let g=p.protocolId==="MQIsdp"&&p.protocolVersion===3?"mqttv3.1":"mqtt";l(p);let b=u(p,d);s=wx.connectSocket({url:b,protocols:[g]}),i=o(),a=new n.BufferedDuplex(p,i,s),a._destroy=(w,_)=>{s.close({success(){_&&_(w)}})};let v=a.destroy;return a.destroy=(w,_)=>(a.destroy=v,setTimeout(()=>{s.close({fail(){a._destroy(w,_)}})},0),a),c(),a};t.default=f}),Ew=Ne(t=>{Pe(),Le(),Oe(),Object.defineProperty(t,"__esModule",{value:!0});var e=(dr(),It(fr)),r=oo(),n=Cm(),s,i,a,o=!1;function l(){let p=new r.Transform;return p._write=(g,b,v)=>{s.sendSocketMessage({data:g.buffer,success(){v()},fail(){v(new Error)}})},p._flush=g=>{s.closeSocket({success(){g()}})},p}function u(p){p.hostname||(p.hostname="localhost"),p.path||(p.path="/"),p.wsOptions||(p.wsOptions={})}function c(p,g){let b=p.protocol==="alis"?"wss":"ws",v=`${b}://${p.hostname}${p.path}`;return p.port&&p.port!==80&&p.port!==443&&(v=`${b}://${p.hostname}:${p.port}${p.path}`),typeof p.transformWsUrl=="function"&&(v=p.transformWsUrl(v,p,g)),v}function f(){o||(o=!0,s.onSocketOpen(()=>{a.socketReady()}),s.onSocketMessage(p=>{if(typeof p.data=="string"){let g=e.Buffer.from(p.data,"base64");i.push(g)}else{let g=new FileReader;g.addEventListener("load",()=>{let b=g.result;b instanceof ArrayBuffer?b=e.Buffer.from(b):b=e.Buffer.from(b,"utf8"),i.push(b)}),g.readAsArrayBuffer(p.data)}}),s.onSocketClose(()=>{a.end(),a.destroy()}),s.onSocketError(p=>{a.destroy(p)}))}var d=(p,g)=>{if(g.hostname=g.hostname||g.host,!g.hostname)throw new Error("Could not determine host. Specify host manually.");let b=g.protocolId==="MQIsdp"&&g.protocolVersion===3?"mqttv3.1":"mqtt";u(g);let v=c(g,p);return s=g.my,s.connectSocket({url:v,protocols:b}),i=l(),a=new n.BufferedDuplex(g,i,s),f(),a};t.default=d}),bR=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.connectAsync=void 0;var r=e(Ci()),n=e((pR(),It(RE))),s=e(sg()),i=e(rf());typeof(vt==null?void 0:vt.nextTick)!="function"&&(vt.nextTick=setImmediate);var a=(0,r.default)("mqttjs"),o=null;function l(f){let d;f.auth&&(d=f.auth.match(/^(.+):(.+)$/),d?(f.username=d[1],f.password=d[2]):f.username=f.auth)}function u(f,d){var p,g,b,v;if(a("connecting to an MQTT broker..."),typeof f=="object"&&!d&&(d=f,f=""),d=d||{},f&&typeof f=="string"){let y=n.default.parse(f,!0),x={};if(y.port!=null&&(x.port=Number(y.port)),x.host=y.hostname,x.query=y.query,x.auth=y.auth,x.protocol=y.protocol,x.path=y.path,x.protocol=(p=x.protocol)===null||p===void 0?void 0:p.replace(/:$/,""),d=Object.assign(Object.assign({},x),d),!d.protocol)throw new Error("Missing protocol")}if(d.unixSocket=d.unixSocket||((g=d.protocol)===null||g===void 0?void 0:g.includes("+unix")),d.unixSocket?d.protocol=d.protocol.replace("+unix",""):!(!((b=d.protocol)===null||b===void 0)&&b.startsWith("ws"))&&!(!((v=d.protocol)===null||v===void 0)&&v.startsWith("wx"))&&delete d.path,l(d),d.query&&typeof d.query.clientId=="string"&&(d.clientId=d.query.clientId),d.cert&&d.key)if(d.protocol){if(["mqtts","wss","wxs","alis"].indexOf(d.protocol)===-1)switch(d.protocol){case"mqtt":d.protocol="mqtts";break;case"ws":d.protocol="wss";break;case"wx":d.protocol="wxs";break;case"ali":d.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${d.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(o||(o={},!i.default&&!d.forceNativeWebSocket?(o.ws=nu().streamBuilder,o.wss=nu().streamBuilder,o.mqtt=ww().default,o.tcp=ww().default,o.ssl=vw().default,o.tls=o.ssl,o.mqtts=vw().default):(o.ws=nu().browserStreamBuilder,o.wss=nu().browserStreamBuilder,o.wx=_w().default,o.wxs=_w().default,o.ali=Ew().default,o.alis=Ew().default)),!o[d.protocol]){let y=["mqtts","wss"].indexOf(d.protocol)!==-1;d.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((x,T)=>y&&T%2===0?!1:typeof o[x]=="function")[0]}if(d.clean===!1&&!d.clientId)throw new Error("Missing clientId for unclean clients");d.protocol&&(d.defaultProtocol=d.protocol);function w(y){return d.servers&&((!y._reconnectCount||y._reconnectCount===d.servers.length)&&(y._reconnectCount=0),d.host=d.servers[y._reconnectCount].host,d.port=d.servers[y._reconnectCount].port,d.protocol=d.servers[y._reconnectCount].protocol?d.servers[y._reconnectCount].protocol:d.defaultProtocol,d.hostname=d.host,y._reconnectCount++),a("calling streambuilder for",d.protocol),o[d.protocol](y,d)}let _=new s.default(w,d);return _.on("error",()=>{}),_}function c(f,d,p=!0){return new Promise((g,b)=>{let v=u(f,d),w={connect:y=>{_(),g(v)},end:()=>{_(),g(v)},error:y=>{_(),v.end(),b(y)}};p===!1&&(w.close=()=>{w.error(new Error("Couldn't connect to server"))});function _(){Object.keys(w).forEach(y=>{v.off(y,w[y])})}Object.keys(w).forEach(y=>{v.on(y,w[y])})})}t.connectAsync=c,t.default=u}),Sw=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__createBinding||(Object.create?function(p,g,b,v){v===void 0&&(v=b);var w=Object.getOwnPropertyDescriptor(g,b);(!w||("get"in w?!g.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return g[b]}}),Object.defineProperty(p,v,w)}:function(p,g,b,v){v===void 0&&(v=b),p[v]=g[b]}),r=t&&t.__setModuleDefault||(Object.create?function(p,g){Object.defineProperty(p,"default",{enumerable:!0,value:g})}:function(p,g){p.default=g}),n=t&&t.__importStar||function(p){if(p&&p.__esModule)return p;var g={};if(p!=null)for(var b in p)b!=="default"&&Object.prototype.hasOwnProperty.call(p,b)&&e(g,p,b);return r(g,p),g},s=t&&t.__exportStar||function(p,g){for(var b in p)b!=="default"&&!Object.prototype.hasOwnProperty.call(g,b)&&e(g,p,b)},i=t&&t.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=t.KeepaliveManager=t.UniqueMessageIdProvider=t.DefaultMessageIdProvider=t.Store=t.MqttClient=t.connectAsync=t.connect=t.Client=void 0;var a=i(sg());t.MqttClient=a.default;var o=i(fE());t.DefaultMessageIdProvider=o.default;var l=i(JL());t.UniqueMessageIdProvider=l.default;var u=i(dE());t.Store=u.default;var c=n(bR());t.connect=c.default,Object.defineProperty(t,"connectAsync",{enumerable:!0,get:function(){return c.connectAsync}});var f=i(IE());t.KeepaliveManager=f.default,t.Client=a.default,s(sg(),t),s(ua(),t);var d=tf();Object.defineProperty(t,"ReasonCodes",{enumerable:!0,get:function(){return d.ReasonCodes}})}),yR=Ne(t=>{Pe(),Le(),Oe();var e=t&&t.__createBinding||(Object.create?function(a,o,l,u){u===void 0&&(u=l);var c=Object.getOwnPropertyDescriptor(o,l);(!c||("get"in c?!o.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(a,u,c)}:function(a,o,l,u){u===void 0&&(u=l),a[u]=o[l]}),r=t&&t.__setModuleDefault||(Object.create?function(a,o){Object.defineProperty(a,"default",{enumerable:!0,value:o})}:function(a,o){a.default=o}),n=t&&t.__importStar||function(a){if(a&&a.__esModule)return a;var o={};if(a!=null)for(var l in a)l!=="default"&&Object.prototype.hasOwnProperty.call(a,l)&&e(o,a,l);return r(o,a),o},s=t&&t.__exportStar||function(a,o){for(var l in a)l!=="default"&&!Object.prototype.hasOwnProperty.call(o,l)&&e(o,a,l)};Object.defineProperty(t,"__esModule",{value:!0});var i=n(Sw());t.default=i,s(Sw(),t)});const wR=yR();/*! Bundled license information: + +@jspm/core/nodelibs/browser/buffer.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) +*/var Pa={},Oa={exports:{}},rd={exports:{}},nd={exports:{}},id={},La={},xw;function vR(){if(xw)return La;xw=1,La.byteLength=o,La.toByteArray=u,La.fromByteArray=d;for(var t=[],e=[],r=typeof Uint8Array<"u"?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,i=n.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var b=p.indexOf("=");b===-1&&(b=g);var v=b===g?0:4-b%4;return[b,v]}function o(p){var g=a(p),b=g[0],v=g[1];return(b+v)*3/4-v}function l(p,g,b){return(g+b)*3/4-b}function u(p){var g,b=a(p),v=b[0],w=b[1],_=new r(l(p,v,w)),y=0,x=w>0?v-4:v,T;for(T=0;T>16&255,_[y++]=g>>8&255,_[y++]=g&255;return w===2&&(g=e[p.charCodeAt(T)]<<2|e[p.charCodeAt(T+1)]>>4,_[y++]=g&255),w===1&&(g=e[p.charCodeAt(T)]<<10|e[p.charCodeAt(T+1)]<<4|e[p.charCodeAt(T+2)]>>2,_[y++]=g>>8&255,_[y++]=g&255),_}function c(p){return t[p>>18&63]+t[p>>12&63]+t[p>>6&63]+t[p&63]}function f(p,g,b){for(var v,w=[],_=g;_x?x:y+_));return v===1?(g=p[b-1],w.push(t[g>>2]+t[g<<4&63]+"==")):v===2&&(g=(p[b-2]<<8)+p[b-1],w.push(t[g>>10]+t[g>>4&63]+t[g<<2&63]+"=")),w.join("")}return La}var iu={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var Tw;function _R(){return Tw||(Tw=1,iu.read=function(t,e,r,n,s){var i,a,o=s*8-n-1,l=(1<>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=i*256+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:(p?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-u}return(p?-1:1)*a*Math.pow(2,i-n)},iu.write=function(t,e,r,n,s,i){var a,o,l,u=i*8-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,g=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=o&255,p+=g,o/=256,s-=8);for(a=a<0;t[r+p]=a&255,p+=g,a/=256,u-=8);t[r+p-g]|=b*128}),iu}/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */var Aw;function Zr(){return Aw||(Aw=1,function(t){const e=vR(),r=_R(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=o,t.SlowBuffer=_,t.INSPECT_MAX_BYTES=50;const s=2147483647;t.kMaxLength=s,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const m=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(m,h),m.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(m){if(m>s)throw new RangeError('The value "'+m+'" is invalid for option "size"');const h=new Uint8Array(m);return Object.setPrototypeOf(h,o.prototype),h}function o(m,h,E){if(typeof m=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(m)}return l(m,h,E)}o.poolSize=8192;function l(m,h,E){if(typeof m=="string")return d(m,h);if(ArrayBuffer.isView(m))return g(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(Q(m,ArrayBuffer)||m&&Q(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Q(m,SharedArrayBuffer)||m&&Q(m.buffer,SharedArrayBuffer)))return b(m,h,E);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=m.valueOf&&m.valueOf();if(O!=null&&O!==m)return o.from(O,h,E);const te=v(m);if(te)return te;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return o.from(m[Symbol.toPrimitive]("string"),h,E);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}o.from=function(m,h,E){return l(m,h,E)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function u(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function c(m,h,E){return u(m),m<=0?a(m):h!==void 0?typeof E=="string"?a(m).fill(h,E):a(m).fill(h):a(m)}o.alloc=function(m,h,E){return c(m,h,E)};function f(m){return u(m),a(m<0?0:w(m)|0)}o.allocUnsafe=function(m){return f(m)},o.allocUnsafeSlow=function(m){return f(m)};function d(m,h){if((typeof h!="string"||h==="")&&(h="utf8"),!o.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const E=y(m,h)|0;let O=a(E);const te=O.write(m,h);return te!==E&&(O=O.slice(0,te)),O}function p(m){const h=m.length<0?0:w(m.length)|0,E=a(h);for(let O=0;O=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return m|0}function _(m){return+m!=m&&(m=0),o.alloc(+m)}o.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==o.prototype},o.compare=function(h,E){if(Q(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),Q(E,Uint8Array)&&(E=o.from(E,E.offset,E.byteLength)),!o.isBuffer(h)||!o.isBuffer(E))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===E)return 0;let O=h.length,te=E.length;for(let he=0,Ce=Math.min(O,te);hete.length?(o.isBuffer(Ce)||(Ce=o.from(Ce)),Ce.copy(te,he)):Uint8Array.prototype.set.call(te,Ce,he);else if(o.isBuffer(Ce))Ce.copy(te,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=Ce.length}return te};function y(m,h){if(o.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||Q(m,ArrayBuffer))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);const E=m.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&E===0)return 0;let te=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return E;case"utf8":case"utf-8":return q(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E*2;case"hex":return E>>>1;case"base64":return Y(m).length;default:if(te)return O?-1:q(m).length;h=(""+h).toLowerCase(),te=!0}}o.byteLength=y;function x(m,h,E){let O=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((E===void 0||E>this.length)&&(E=this.length),E<=0)||(E>>>=0,h>>>=0,E<=h))return"";for(m||(m="utf8");;)switch(m){case"hex":return fe(this,h,E);case"utf8":case"utf-8":return $(this,h,E);case"ascii":return re(this,h,E);case"latin1":case"binary":return N(this,h,E);case"base64":return M(this,h,E);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,h,E);default:if(O)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),O=!0}}o.prototype._isBuffer=!0;function T(m,h,E){const O=m[h];m[h]=m[E],m[E]=O}o.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let E=0;EE&&(h+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(h,E,O,te,he){if(Q(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(E===void 0&&(E=0),O===void 0&&(O=h?h.length:0),te===void 0&&(te=0),he===void 0&&(he=this.length),E<0||O>h.length||te<0||he>this.length)throw new RangeError("out of range index");if(te>=he&&E>=O)return 0;if(te>=he)return-1;if(E>=O)return 1;if(E>>>=0,O>>>=0,te>>>=0,he>>>=0,this===h)return 0;let Ce=he-te,Ue=O-E;const We=Math.min(Ce,Ue),De=this.slice(te,he),He=h.slice(E,O);for(let ze=0;ze2147483647?E=2147483647:E<-2147483648&&(E=-2147483648),E=+E,oe(E)&&(E=te?0:m.length-1),E<0&&(E=m.length+E),E>=m.length){if(te)return-1;E=m.length-1}else if(E<0)if(te)E=0;else return-1;if(typeof h=="string"&&(h=o.from(h,O)),o.isBuffer(h))return h.length===0?-1:C(m,h,E,O,te);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?te?Uint8Array.prototype.indexOf.call(m,h,E):Uint8Array.prototype.lastIndexOf.call(m,h,E):C(m,[h],E,O,te);throw new TypeError("val must be string, number or Buffer")}function C(m,h,E,O,te){let he=1,Ce=m.length,Ue=h.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(m.length<2||h.length<2)return-1;he=2,Ce/=2,Ue/=2,E/=2}function We(He,ze){return he===1?He[ze]:He.readUInt16BE(ze*he)}let De;if(te){let He=-1;for(De=E;DeCe&&(E=Ce-Ue),De=E;De>=0;De--){let He=!0;for(let ze=0;zete&&(O=te)):O=te;const he=h.length;O>he/2&&(O=he/2);let Ce;for(Ce=0;Ce>>0,isFinite(O)?(O=O>>>0,te===void 0&&(te="utf8")):(te=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const he=this.length-E;if((O===void 0||O>he)&&(O=he),h.length>0&&(O<0||E<0)||E>this.length)throw new RangeError("Attempt to write outside buffer bounds");te||(te="utf8");let Ce=!1;for(;;)switch(te){case"hex":return L(this,h,E,O);case"utf8":case"utf-8":return j(this,h,E,O);case"ascii":case"latin1":case"binary":return R(this,h,E,O);case"base64":return U(this,h,E,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,h,E,O);default:if(Ce)throw new TypeError("Unknown encoding: "+te);te=(""+te).toLowerCase(),Ce=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function M(m,h,E){return h===0&&E===m.length?e.fromByteArray(m):e.fromByteArray(m.slice(h,E))}function $(m,h,E){E=Math.min(m.length,E);const O=[];let te=h;for(;te239?4:he>223?3:he>191?2:1;if(te+Ue<=E){let We,De,He,ze;switch(Ue){case 1:he<128&&(Ce=he);break;case 2:We=m[te+1],(We&192)===128&&(ze=(he&31)<<6|We&63,ze>127&&(Ce=ze));break;case 3:We=m[te+1],De=m[te+2],(We&192)===128&&(De&192)===128&&(ze=(he&15)<<12|(We&63)<<6|De&63,ze>2047&&(ze<55296||ze>57343)&&(Ce=ze));break;case 4:We=m[te+1],De=m[te+2],He=m[te+3],(We&192)===128&&(De&192)===128&&(He&192)===128&&(ze=(he&15)<<18|(We&63)<<12|(De&63)<<6|He&63,ze>65535&&ze<1114112&&(Ce=ze))}}Ce===null?(Ce=65533,Ue=1):Ce>65535&&(Ce-=65536,O.push(Ce>>>10&1023|55296),Ce=56320|Ce&1023),O.push(Ce),te+=Ue}return ne(O)}const Z=4096;function ne(m){const h=m.length;if(h<=Z)return String.fromCharCode.apply(String,m);let E="",O=0;for(;OO)&&(E=O);let te="";for(let he=h;heO&&(h=O),E<0?(E+=O,E<0&&(E=0)):E>O&&(E=O),EE)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(h,E,O){h=h>>>0,E=E>>>0,O||pe(h,E,this.length);let te=this[h],he=1,Ce=0;for(;++Ce>>0,E=E>>>0,O||pe(h,E,this.length);let te=this[h+--E],he=1;for(;E>0&&(he*=256);)te+=this[h+--E]*he;return te},o.prototype.readUint8=o.prototype.readUInt8=function(h,E){return h=h>>>0,E||pe(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,E){return h=h>>>0,E||pe(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,E){return h=h>>>0,E||pe(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,E){return h=h>>>0,E||pe(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,E){return h=h>>>0,E||pe(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=Te(function(h){h=h>>>0,P(h,"offset");const E=this[h],O=this[h+7];(E===void 0||O===void 0)&&V(h,this.length-8);const te=E+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,he=this[++h]+this[++h]*2**8+this[++h]*2**16+O*2**24;return BigInt(te)+(BigInt(he)<>>0,P(h,"offset");const E=this[h],O=this[h+7];(E===void 0||O===void 0)&&V(h,this.length-8);const te=E*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],he=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+O;return(BigInt(te)<>>0,E=E>>>0,O||pe(h,E,this.length);let te=this[h],he=1,Ce=0;for(;++Ce=he&&(te-=Math.pow(2,8*E)),te},o.prototype.readIntBE=function(h,E,O){h=h>>>0,E=E>>>0,O||pe(h,E,this.length);let te=E,he=1,Ce=this[h+--te];for(;te>0&&(he*=256);)Ce+=this[h+--te]*he;return he*=128,Ce>=he&&(Ce-=Math.pow(2,8*E)),Ce},o.prototype.readInt8=function(h,E){return h=h>>>0,E||pe(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},o.prototype.readInt16LE=function(h,E){h=h>>>0,E||pe(h,2,this.length);const O=this[h]|this[h+1]<<8;return O&32768?O|4294901760:O},o.prototype.readInt16BE=function(h,E){h=h>>>0,E||pe(h,2,this.length);const O=this[h+1]|this[h]<<8;return O&32768?O|4294901760:O},o.prototype.readInt32LE=function(h,E){return h=h>>>0,E||pe(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,E){return h=h>>>0,E||pe(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=Te(function(h){h=h>>>0,P(h,"offset");const E=this[h],O=this[h+7];(E===void 0||O===void 0)&&V(h,this.length-8);const te=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(O<<24);return(BigInt(te)<>>0,P(h,"offset");const E=this[h],O=this[h+7];(E===void 0||O===void 0)&&V(h,this.length-8);const te=(E<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(te)<>>0,E||pe(h,4,this.length),r.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,E){return h=h>>>0,E||pe(h,4,this.length),r.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,E){return h=h>>>0,E||pe(h,8,this.length),r.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,E){return h=h>>>0,E||pe(h,8,this.length),r.read(this,h,!1,52,8)};function F(m,h,E,O,te,he){if(!o.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>te||hm.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,E,O,te){if(h=+h,E=E>>>0,O=O>>>0,!te){const Ue=Math.pow(2,8*O)-1;F(this,h,E,O,Ue,0)}let he=1,Ce=0;for(this[E]=h&255;++Ce>>0,O=O>>>0,!te){const Ue=Math.pow(2,8*O)-1;F(this,h,E,O,Ue,0)}let he=O-1,Ce=1;for(this[E+he]=h&255;--he>=0&&(Ce*=256);)this[E+he]=h/Ce&255;return E+O},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,1,255,0),this[E]=h&255,E+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,2,65535,0),this[E]=h&255,this[E+1]=h>>>8,E+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,2,65535,0),this[E]=h>>>8,this[E+1]=h&255,E+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,4,4294967295,0),this[E+3]=h>>>24,this[E+2]=h>>>16,this[E+1]=h>>>8,this[E]=h&255,E+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,4,4294967295,0),this[E]=h>>>24,this[E+1]=h>>>16,this[E+2]=h>>>8,this[E+3]=h&255,E+4};function de(m,h,E,O,te){k(h,O,te,m,E,7);let he=Number(h&BigInt(4294967295));m[E++]=he,he=he>>8,m[E++]=he,he=he>>8,m[E++]=he,he=he>>8,m[E++]=he;let Ce=Number(h>>BigInt(32)&BigInt(4294967295));return m[E++]=Ce,Ce=Ce>>8,m[E++]=Ce,Ce=Ce>>8,m[E++]=Ce,Ce=Ce>>8,m[E++]=Ce,E}function Se(m,h,E,O,te){k(h,O,te,m,E,7);let he=Number(h&BigInt(4294967295));m[E+7]=he,he=he>>8,m[E+6]=he,he=he>>8,m[E+5]=he,he=he>>8,m[E+4]=he;let Ce=Number(h>>BigInt(32)&BigInt(4294967295));return m[E+3]=Ce,Ce=Ce>>8,m[E+2]=Ce,Ce=Ce>>8,m[E+1]=Ce,Ce=Ce>>8,m[E]=Ce,E+8}o.prototype.writeBigUInt64LE=Te(function(h,E=0){return de(this,h,E,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Te(function(h,E=0){return Se(this,h,E,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,E,O,te){if(h=+h,E=E>>>0,!te){const We=Math.pow(2,8*O-1);F(this,h,E,O,We-1,-We)}let he=0,Ce=1,Ue=0;for(this[E]=h&255;++he>0)-Ue&255;return E+O},o.prototype.writeIntBE=function(h,E,O,te){if(h=+h,E=E>>>0,!te){const We=Math.pow(2,8*O-1);F(this,h,E,O,We-1,-We)}let he=O-1,Ce=1,Ue=0;for(this[E+he]=h&255;--he>=0&&(Ce*=256);)h<0&&Ue===0&&this[E+he+1]!==0&&(Ue=1),this[E+he]=(h/Ce>>0)-Ue&255;return E+O},o.prototype.writeInt8=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,1,127,-128),h<0&&(h=255+h+1),this[E]=h&255,E+1},o.prototype.writeInt16LE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,2,32767,-32768),this[E]=h&255,this[E+1]=h>>>8,E+2},o.prototype.writeInt16BE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,2,32767,-32768),this[E]=h>>>8,this[E+1]=h&255,E+2},o.prototype.writeInt32LE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,4,2147483647,-2147483648),this[E]=h&255,this[E+1]=h>>>8,this[E+2]=h>>>16,this[E+3]=h>>>24,E+4},o.prototype.writeInt32BE=function(h,E,O){return h=+h,E=E>>>0,O||F(this,h,E,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[E]=h>>>24,this[E+1]=h>>>16,this[E+2]=h>>>8,this[E+3]=h&255,E+4},o.prototype.writeBigInt64LE=Te(function(h,E=0){return de(this,h,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Te(function(h,E=0){return Se(this,h,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ee(m,h,E,O,te,he){if(E+O>m.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("Index out of range")}function K(m,h,E,O,te){return h=+h,E=E>>>0,te||ee(m,h,E,4),r.write(m,h,E,O,23,4),E+4}o.prototype.writeFloatLE=function(h,E,O){return K(this,h,E,!0,O)},o.prototype.writeFloatBE=function(h,E,O){return K(this,h,E,!1,O)};function W(m,h,E,O,te){return h=+h,E=E>>>0,te||ee(m,h,E,8),r.write(m,h,E,O,52,8),E+8}o.prototype.writeDoubleLE=function(h,E,O){return W(this,h,E,!0,O)},o.prototype.writeDoubleBE=function(h,E,O){return W(this,h,E,!1,O)},o.prototype.copy=function(h,E,O,te){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(O||(O=0),!te&&te!==0&&(te=this.length),E>=h.length&&(E=h.length),E||(E=0),te>0&&te=this.length)throw new RangeError("Index out of range");if(te<0)throw new RangeError("sourceEnd out of bounds");te>this.length&&(te=this.length),h.length-E>>0,O=O===void 0?this.length:O>>>0,h||(h=0);let he;if(typeof h=="number")for(he=E;he2**32?te=ce(String(E)):typeof E=="bigint"&&(te=String(E),(E>BigInt(2)**BigInt(32)||E<-(BigInt(2)**BigInt(32)))&&(te=ce(te)),te+="n"),O+=` It must be ${h}. Received ${te}`,O},RangeError);function ce(m){let h="",E=m.length;const O=m[0]==="-"?1:0;for(;E>=O+4;E-=3)h=`_${m.slice(E-3,E)}${h}`;return`${m.slice(0,E)}${h}`}function le(m,h,E){P(h,"offset"),(m[h]===void 0||m[h+E]===void 0)&&V(h,m.length-(E+1))}function k(m,h,E,O,te,he){if(m>E||m= 0${Ce} and < 2${Ce} ** ${(he+1)*8}${Ce}`:Ue=`>= -(2${Ce} ** ${(he+1)*8-1}${Ce}) and < 2 ** ${(he+1)*8-1}${Ce}`,new D.ERR_OUT_OF_RANGE("value",Ue,m)}le(O,te,he)}function P(m,h){if(typeof m!="number")throw new D.ERR_INVALID_ARG_TYPE(h,"number",m)}function V(m,h,E){throw Math.floor(m)!==m?(P(m,E),new D.ERR_OUT_OF_RANGE("offset","an integer",m)):h<0?new D.ERR_BUFFER_OUT_OF_BOUNDS:new D.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${h}`,m)}const B=/[^+/0-9A-Za-z-_]/g;function H(m){if(m=m.split("=")[0],m=m.trim().replace(B,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function q(m,h){h=h||1/0;let E;const O=m.length;let te=null;const he=[];for(let Ce=0;Ce55295&&E<57344){if(!te){if(E>56319){(h-=3)>-1&&he.push(239,191,189);continue}else if(Ce+1===O){(h-=3)>-1&&he.push(239,191,189);continue}te=E;continue}if(E<56320){(h-=3)>-1&&he.push(239,191,189),te=E;continue}E=(te-55296<<10|E-56320)+65536}else te&&(h-=3)>-1&&he.push(239,191,189);if(te=null,E<128){if((h-=1)<0)break;he.push(E)}else if(E<2048){if((h-=2)<0)break;he.push(E>>6|192,E&63|128)}else if(E<65536){if((h-=3)<0)break;he.push(E>>12|224,E>>6&63|128,E&63|128)}else if(E<1114112){if((h-=4)<0)break;he.push(E>>18|240,E>>12&63|128,E>>6&63|128,E&63|128)}else throw new Error("Invalid code point")}return he}function ue(m){const h=[];for(let E=0;E>8,te=E%256,he.push(te),he.push(O);return he}function Y(m){return e.toByteArray(H(m))}function ie(m,h,E,O){let te;for(te=0;te=h.length||te>=m.length);++te)h[te+E]=m[te];return te}function Q(m,h){return m instanceof h||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===h.name}function oe(m){return m!==m}const me=function(){const m="0123456789abcdef",h=new Array(256);for(let E=0;E<16;++E){const O=E*16;for(let te=0;te<16;++te)h[O+te]=m[E]+m[te]}return h}();function Te(m){return typeof BigInt>"u"?S:m}function S(){throw new Error("BigInt not supported")}}(id)),id}var sd,Cw;function jt(){if(Cw)return sd;Cw=1;class t extends Error{constructor(r){if(!Array.isArray(r))throw new TypeError(`Expected input to be an Array, got ${typeof r}`);let n="";for(let s=0;s=y+4;_-=3)w=`_${v.slice(_-3,_)}${w}`;return`${v.slice(0,_)}${w}`}function f(v,w,_){if(typeof w=="function")return u(w.length<=_.length,`Code: ${v}; The provided arguments length (${_.length}) does not match the required ones (${w.length}).`),w(..._);const y=(w.match(/%[dfijoOs]/g)||[]).length;return u(y===_.length,`Code: ${v}; The provided arguments length (${_.length}) does not match the required ones (${y}).`),_.length===0?w:t(w,..._)}function d(v,w,_){_||(_=Error);class y extends _{constructor(...T){super(f(v,w,T))}toString(){return`${this.name} [${v}]: ${this.message}`}}Object.defineProperties(y.prototype,{name:{value:_.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${v}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),y.prototype.code=v,y.prototype[s]=!0,l[v]=y}function p(v){const w=o+v.name;return Object.defineProperty(v,"name",{value:w}),v}function g(v,w){if(v&&w&&v!==w){if(Array.isArray(w.errors))return w.errors.push(v),w;const _=new n([w,v],w.message);return _.code=w.code,_}return v||w}class b extends Error{constructor(w="The operation was aborted",_=void 0){if(_!==void 0&&typeof _!="object")throw new l.ERR_INVALID_ARG_TYPE("options","Object",_);super(w,_),this.code="ABORT_ERR",this.name="AbortError"}}return d("ERR_ASSERTION","%s",Error),d("ERR_INVALID_ARG_TYPE",(v,w,_)=>{u(typeof v=="string","'name' must be a string"),Array.isArray(w)||(w=[w]);let y="The ";v.endsWith(" argument")?y+=`${v} `:y+=`"${v}" ${v.includes(".")?"property":"argument"} `,y+="must be ";const x=[],T=[],A=[];for(const L of w)u(typeof L=="string","All expected entries have to be of type string"),i.includes(L)?x.push(L.toLowerCase()):a.test(L)?T.push(L):(u(L!=="object",'The value "object" should be written as "Object"'),A.push(L));if(T.length>0){const L=x.indexOf("object");L!==-1&&(x.splice(x,L,1),T.push("Object"))}if(x.length>0){switch(x.length){case 1:y+=`of type ${x[0]}`;break;case 2:y+=`one of type ${x[0]} or ${x[1]}`;break;default:{const L=x.pop();y+=`one of type ${x.join(", ")}, or ${L}`}}(T.length>0||A.length>0)&&(y+=" or ")}if(T.length>0){switch(T.length){case 1:y+=`an instance of ${T[0]}`;break;case 2:y+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const L=T.pop();y+=`an instance of ${T.join(", ")}, or ${L}`}}A.length>0&&(y+=" or ")}switch(A.length){case 0:break;case 1:A[0].toLowerCase()!==A[0]&&(y+="an "),y+=`${A[0]}`;break;case 2:y+=`one of ${A[0]} or ${A[1]}`;break;default:{const L=A.pop();y+=`one of ${A.join(", ")}, or ${L}`}}if(_==null)y+=`. Received ${_}`;else if(typeof _=="function"&&_.name)y+=`. Received function ${_.name}`;else if(typeof _=="object"){var C;if((C=_.constructor)!==null&&C!==void 0&&C.name)y+=`. Received an instance of ${_.constructor.name}`;else{const L=e(_,{depth:-1});y+=`. Received ${L}`}}else{let L=e(_,{colors:!1});L.length>25&&(L=`${L.slice(0,25)}...`),y+=`. Received type ${typeof _} (${L})`}return y},TypeError),d("ERR_INVALID_ARG_VALUE",(v,w,_="is invalid")=>{let y=e(w);return y.length>128&&(y=y.slice(0,128)+"..."),`The ${v.includes(".")?"property":"argument"} '${v}' ${_}. Received ${y}`},TypeError),d("ERR_INVALID_RETURN_VALUE",(v,w,_)=>{var y;const x=_!=null&&(y=_.constructor)!==null&&y!==void 0&&y.name?`instance of ${_.constructor.name}`:`type ${typeof _}`;return`Expected ${v} to be returned from the "${w}" function but got ${x}.`},TypeError),d("ERR_MISSING_ARGS",(...v)=>{u(v.length>0,"At least one arg needs to be specified");let w;const _=v.length;switch(v=(Array.isArray(v)?v:[v]).map(y=>`"${y}"`).join(" or "),_){case 1:w+=`The ${v[0]} argument`;break;case 2:w+=`The ${v[0]} and ${v[1]} arguments`;break;default:{const y=v.pop();w+=`The ${v.join(", ")}, and ${y} arguments`}break}return`${w} must be specified`},TypeError),d("ERR_OUT_OF_RANGE",(v,w,_)=>{u(w,'Missing "range" argument');let y;if(Number.isInteger(_)&&Math.abs(_)>2**32)y=c(String(_));else if(typeof _=="bigint"){y=String(_);const x=BigInt(2)**BigInt(32);(_>x||_<-x)&&(y=c(y)),y+="n"}else y=e(_);return`The value of "${v}" is out of range. It must be ${w}. Received ${y}`},RangeError),d("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),d("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),d("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),d("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),d("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),d("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),d("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),d("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),d("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),d("ERR_STREAM_WRITE_AFTER_END","write after end",Error),d("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),ld={AbortError:b,aggregateTwoErrors:p(g),hideStackFrames:p,codes:l},ld}var Ra={exports:{}},kw;function bl(){if(kw)return Ra.exports;kw=1;const{AbortController:t,AbortSignal:e}=typeof self<"u"?self:typeof window<"u"?window:void 0;return Ra.exports=t,Ra.exports.AbortSignal=e,Ra.exports.default=t,Ra.exports}var su={exports:{}},Pw;function ca(){if(Pw)return su.exports;Pw=1;var t=typeof Reflect=="object"?Reflect:null,e=t&&typeof t.apply=="function"?t.apply:function(T,A,C){return Function.prototype.apply.call(T,A,C)},r;t&&typeof t.ownKeys=="function"?r=t.ownKeys:Object.getOwnPropertySymbols?r=function(T){return Object.getOwnPropertyNames(T).concat(Object.getOwnPropertySymbols(T))}:r=function(T){return Object.getOwnPropertyNames(T)};function n(x){console&&console.warn&&console.warn(x)}var s=Number.isNaN||function(T){return T!==T};function i(){i.init.call(this)}su.exports=i,su.exports.once=w,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var a=10;function o(x){if(typeof x!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof x)}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(x){if(typeof x!="number"||x<0||s(x))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+x+".");a=x}}),i.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(T){if(typeof T!="number"||T<0||s(T))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+T+".");return this._maxListeners=T,this};function l(x){return x._maxListeners===void 0?i.defaultMaxListeners:x._maxListeners}i.prototype.getMaxListeners=function(){return l(this)},i.prototype.emit=function(T){for(var A=[],C=1;C0&&(R=A[0]),R instanceof Error)throw R;var U=new Error("Unhandled error."+(R?" ("+R.message+")":""));throw U.context=R,U}var I=j[T];if(I===void 0)return!1;if(typeof I=="function")e(I,this,A);else for(var M=I.length,$=g(I,M),C=0;C0&&R.length>L&&!R.warned){R.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+R.length+" "+String(T)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=x,U.type=T,U.count=R.length,n(U)}return x}i.prototype.addListener=function(T,A){return u(this,T,A,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(T,A){return u(this,T,A,!0)};function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(x,T,A){var C={fired:!1,wrapFn:void 0,target:x,type:T,listener:A},L=c.bind(C);return L.listener=A,C.wrapFn=L,L}i.prototype.once=function(T,A){return o(A),this.on(T,f(this,T,A)),this},i.prototype.prependOnceListener=function(T,A){return o(A),this.prependListener(T,f(this,T,A)),this},i.prototype.removeListener=function(T,A){var C,L,j,R,U;if(o(A),L=this._events,L===void 0)return this;if(C=L[T],C===void 0)return this;if(C===A||C.listener===A)--this._eventsCount===0?this._events=Object.create(null):(delete L[T],L.removeListener&&this.emit("removeListener",T,C.listener||A));else if(typeof C!="function"){for(j=-1,R=C.length-1;R>=0;R--)if(C[R]===A||C[R].listener===A){U=C[R].listener,j=R;break}if(j<0)return this;j===0?C.shift():b(C,j),C.length===1&&(L[T]=C[0]),L.removeListener!==void 0&&this.emit("removeListener",T,U||A)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(T){var A,C,L;if(C=this._events,C===void 0)return this;if(C.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):C[T]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete C[T]),this;if(arguments.length===0){var j=Object.keys(C),R;for(L=0;L=0;L--)this.removeListener(T,A[L]);return this};function d(x,T,A){var C=x._events;if(C===void 0)return[];var L=C[T];return L===void 0?[]:typeof L=="function"?A?[L.listener||L]:[L]:A?v(L):g(L,L.length)}i.prototype.listeners=function(T){return d(this,T,!0)},i.prototype.rawListeners=function(T){return d(this,T,!1)},i.listenerCount=function(x,T){return typeof x.listenerCount=="function"?x.listenerCount(T):p.call(x,T)},i.prototype.listenerCount=p;function p(x){var T=this._events;if(T!==void 0){var A=T[x];if(typeof A=="function")return 1;if(A!==void 0)return A.length}return 0}i.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]};function g(x,T){for(var A=new Array(T),C=0;C{if(b!==void 0&&(b===null||typeof b!="object"||!("aborted"in b)))throw new s(v,"AbortSignal",b)},g=(b,v)=>{if(typeof b!="function")throw new s(v,"Function",b)};t.exports={AggregateError:a,kEmptyObject:Object.freeze({}),once(b){let v=!1;return function(...w){v||(v=!0,b.apply(this,w))}},createDeferredPromise:function(){let b,v;return{promise:new Promise((_,y)=>{b=_,v=y}),resolve:b,reject:v}},promisify(b){return new Promise((v,w)=>{b((_,...y)=>_?w(_):v(...y))})},debuglog(){return function(){}},format:r,inspect:n,types:{isAsyncFunction(b){return b instanceof c},isArrayBufferView(b){return ArrayBuffer.isView(b)}},isBlob:d,deprecate(b,v){return b},addAbortListener:ca().addAbortListener||function(v,w){if(v===void 0)throw new s("signal","AbortSignal",v);p(v,"signal"),g(w,"listener");let _;return v.aborted?queueMicrotask(()=>w()):(v.addEventListener("abort",w,{__proto__:null,once:!0,[i]:!0}),_=()=>{v.removeEventListener("abort",w)}),{__proto__:null,[o](){var y;(y=_)===null||y===void 0||y()}}},AbortSignalAny:l.any||function(v){if(v.length===1)return v[0];const w=new u,_=()=>w.abort();return v.forEach(y=>{p(y,"signals"),y.addEventListener("abort",_,{once:!0})}),w.signal.addEventListener("abort",()=>{v.forEach(y=>y.removeEventListener("abort",_))},{once:!0}),w.signal}},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}(od)),od.exports}var ou={},ud,Lw;function Pl(){if(Lw)return ud;Lw=1;const{ArrayIsArray:t,ArrayPrototypeIncludes:e,ArrayPrototypeJoin:r,ArrayPrototypeMap:n,NumberIsInteger:s,NumberIsNaN:i,NumberMAX_SAFE_INTEGER:a,NumberMIN_SAFE_INTEGER:o,NumberParseInt:l,ObjectPrototypeHasOwnProperty:u,RegExpPrototypeExec:c,String:f,StringPrototypeToUpperCase:d,StringPrototypeTrim:p}=jt(),{hideStackFrames:g,codes:{ERR_SOCKET_BAD_PORT:b,ERR_INVALID_ARG_TYPE:v,ERR_INVALID_ARG_VALUE:w,ERR_OUT_OF_RANGE:_,ERR_UNKNOWN_SIGNAL:y}}=Pr(),{normalizeEncoding:x}=Nr(),{isAsyncFunction:T,isArrayBufferView:A}=Nr().types,C={};function L(J){return J===(J|0)}function j(J){return J===J>>>0}const R=/^[0-7]+$/,U="must be a 32-bit unsigned integer or an octal string";function I(J,Y,ie){if(typeof J>"u"&&(J=ie),typeof J=="string"){if(c(R,J)===null)throw new w(Y,J,U);J=l(J,8)}return Z(J,Y),J}const M=g((J,Y,ie=o,Q=a)=>{if(typeof J!="number")throw new v(Y,"number",J);if(!s(J))throw new _(Y,"an integer",J);if(JQ)throw new _(Y,`>= ${ie} && <= ${Q}`,J)}),$=g((J,Y,ie=-2147483648,Q=2147483647)=>{if(typeof J!="number")throw new v(Y,"number",J);if(!s(J))throw new _(Y,"an integer",J);if(JQ)throw new _(Y,`>= ${ie} && <= ${Q}`,J)}),Z=g((J,Y,ie=!1)=>{if(typeof J!="number")throw new v(Y,"number",J);if(!s(J))throw new _(Y,"an integer",J);const Q=ie?1:0,oe=4294967295;if(Joe)throw new _(Y,`>= ${Q} && <= ${oe}`,J)});function ne(J,Y){if(typeof J!="string")throw new v(Y,"string",J)}function re(J,Y,ie=void 0,Q){if(typeof J!="number")throw new v(Y,"number",J);if(ie!=null&&JQ||(ie!=null||Q!=null)&&i(J))throw new _(Y,`${ie!=null?`>= ${ie}`:""}${ie!=null&&Q!=null?" && ":""}${Q!=null?`<= ${Q}`:""}`,J)}const N=g((J,Y,ie)=>{if(!e(ie,J)){const oe="must be one of: "+r(n(ie,me=>typeof me=="string"?`'${me}'`:f(me)),", ");throw new w(Y,J,oe)}});function fe(J,Y){if(typeof J!="boolean")throw new v(Y,"boolean",J)}function G(J,Y,ie){return J==null||!u(J,Y)?ie:J[Y]}const pe=g((J,Y,ie=null)=>{const Q=G(ie,"allowArray",!1),oe=G(ie,"allowFunction",!1);if(!G(ie,"nullable",!1)&&J===null||!Q&&t(J)||typeof J!="object"&&(!oe||typeof J!="function"))throw new v(Y,"Object",J)}),F=g((J,Y)=>{if(J!=null&&typeof J!="object"&&typeof J!="function")throw new v(Y,"a dictionary",J)}),de=g((J,Y,ie=0)=>{if(!t(J))throw new v(Y,"Array",J);if(J.length{if(!A(J))throw new v(Y,["Buffer","TypedArray","DataView"],J)});function X(J,Y){const ie=x(Y),Q=J.length;if(ie==="hex"&&Q%2!==0)throw new w("encoding",Y,`is invalid for data of length ${Q}`)}function ce(J,Y="Port",ie=!0){if(typeof J!="number"&&typeof J!="string"||typeof J=="string"&&p(J).length===0||+J!==+J>>>0||J>65535||J===0&&!ie)throw new b(Y,J,ie);return J|0}const le=g((J,Y)=>{if(J!==void 0&&(J===null||typeof J!="object"||!("aborted"in J)))throw new v(Y,"AbortSignal",J)}),k=g((J,Y)=>{if(typeof J!="function")throw new v(Y,"Function",J)}),P=g((J,Y)=>{if(typeof J!="function"||T(J))throw new v(Y,"Function",J)}),V=g((J,Y)=>{if(J!==void 0)throw new v(Y,"undefined",J)});function B(J,Y,ie){if(!e(ie,J))throw new v(Y,`('${r(ie,"|")}')`,J)}const H=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function q(J,Y){if(typeof J>"u"||!c(H,J))throw new w(Y,J,'must be an array or string of format "; rel=preload; as=style"')}function ue(J){if(typeof J=="string")return q(J,"hints"),J;if(t(J)){const Y=J.length;let ie="";if(Y===0)return ie;for(let Q=0;Q; rel=preload; as=style"')}return ud={isInt32:L,isUint32:j,parseFileMode:I,validateArray:de,validateStringArray:Se,validateBooleanArray:ee,validateAbortSignalArray:K,validateBoolean:fe,validateBuffer:D,validateDictionary:F,validateEncoding:X,validateFunction:k,validateInt32:$,validateInteger:M,validateNumber:re,validateObject:pe,validateOneOf:N,validatePlainFunction:P,validatePort:ce,validateSignalName:W,validateString:ne,validateUint32:Z,validateUndefined:V,validateUnion:B,validateAbortSignal:le,validateLinkHeaderValue:ue},ud}var au={exports:{}},cd={exports:{}},Rw;function ao(){if(Rw)return cd.exports;Rw=1;var t=cd.exports={},e,r;function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?e=setTimeout:e=n}catch{e=n}try{typeof clearTimeout=="function"?r=clearTimeout:r=s}catch{r=s}})();function i(b){if(e===setTimeout)return setTimeout(b,0);if((e===n||!e)&&setTimeout)return e=setTimeout,setTimeout(b,0);try{return e(b,0)}catch{try{return e.call(null,b,0)}catch{return e.call(this,b,0)}}}function a(b){if(r===clearTimeout)return clearTimeout(b);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(b);try{return r(b)}catch{try{return r.call(null,b)}catch{return r.call(this,b)}}}var o=[],l=!1,u,c=-1;function f(){!l||!u||(l=!1,u.length?o=u.concat(o):c=-1,o.length&&d())}function d(){if(!l){var b=i(f);l=!0;for(var v=o.length;v;){for(u=o,o=[];++c1)for(var w=1;w{};function Z(N,fe,G){var pe,F;if(arguments.length===2?(G=fe,fe=i):fe==null?fe=i:u(fe,"options"),l(G,"callback"),o(fe.signal,"options.signal"),G=a(G),w(N)||A(N))return ne(N,fe,G);if(!j(N))throw new n("stream",["ReadableStream","WritableStream","Stream"],N);const de=(pe=fe.readable)!==null&&pe!==void 0?pe:v(N),Se=(F=fe.writable)!==null&&F!==void 0?F:T(N),ee=N._writableState,K=N._readableState,W=()=>{N.writable||ce()};let D=R(N)&&v(N)===de&&T(N)===Se,X=C(N,!1);const ce=()=>{X=!0,N.destroyed&&(D=!1),!(D&&(!N.readable||de))&&(!de||le)&&G.call(N)};let le=_(N,!1);const k=()=>{le=!0,N.destroyed&&(D=!1),!(D&&(!N.writable||Se))&&(!Se||X)&&G.call(N)},P=J=>{G.call(N,J)};let V=g(N);const B=()=>{V=!0;const J=L(N)||y(N);if(J&&typeof J!="boolean")return G.call(N,J);if(de&&!le&&v(N,!0)&&!_(N,!1))return G.call(N,new s);if(Se&&!X&&!C(N,!1))return G.call(N,new s);G.call(N)},H=()=>{V=!0;const J=L(N)||y(N);if(J&&typeof J!="boolean")return G.call(N,J);G.call(N)},q=()=>{N.req.on("finish",ce)};M(N)?(N.on("complete",ce),D||N.on("abort",B),N.req?q():N.on("request",q)):Se&&!ee&&(N.on("end",W),N.on("close",W)),!D&&typeof N.aborted=="boolean"&&N.on("aborted",B),N.on("end",k),N.on("finish",ce),fe.error!==!1&&N.on("error",P),N.on("close",B),V?t.nextTick(B):ee!=null&&ee.errorEmitted||K!=null&&K.errorEmitted?D||t.nextTick(H):(!de&&(!D||b(N))&&(X||x(N)===!1)||!Se&&(!D||x(N))&&(le||b(N)===!1)||K&&N.req&&N.aborted)&&t.nextTick(H);const ue=()=>{G=$,N.removeListener("aborted",B),N.removeListener("complete",ce),N.removeListener("abort",B),N.removeListener("request",q),N.req&&N.req.removeListener("finish",ce),N.removeListener("end",W),N.removeListener("close",W),N.removeListener("finish",ce),N.removeListener("end",k),N.removeListener("error",P),N.removeListener("close",B)};if(fe.signal&&!V){const J=()=>{const Y=G;ue(),Y.call(N,new e(void 0,{cause:fe.signal.reason}))};if(fe.signal.aborted)t.nextTick(J);else{I=I||Nr().addAbortListener;const Y=I(fe.signal,J),ie=G;G=a((...Q)=>{Y[p](),ie.apply(N,Q)})}}return ue}function ne(N,fe,G){let pe=!1,F=$;if(fe.signal)if(F=()=>{pe=!0,G.call(N,new e(void 0,{cause:fe.signal.reason}))},fe.signal.aborted)t.nextTick(F);else{I=I||Nr().addAbortListener;const Se=I(fe.signal,F),ee=G;G=a((...K)=>{Se[p](),ee.apply(N,K)})}const de=(...Se)=>{pe||t.nextTick(()=>G.apply(N,Se))};return d(N[U].promise,de,de),$}function re(N,fe){var G;let pe=!1;return fe===null&&(fe=i),(G=fe)!==null&&G!==void 0&&G.cleanup&&(c(fe.cleanup,"cleanup"),pe=fe.cleanup),new f((F,de)=>{const Se=Z(N,fe,ee=>{pe&&Se(),ee?de(ee):F()})})}return au.exports=Z,au.exports.finished=re,au.exports}var dd,Nw;function fa(){if(Nw)return dd;Nw=1;const t=ao(),{aggregateTwoErrors:e,codes:{ERR_MULTIPLE_CALLBACK:r},AbortError:n}=Pr(),{Symbol:s}=jt(),{kIsDestroyed:i,isDestroyed:a,isFinished:o,isServerRequest:l}=Bi(),u=s("kDestroy"),c=s("kConstruct");function f(R,U,I){R&&(R.stack,U&&!U.errored&&(U.errored=R),I&&!I.errored&&(I.errored=R))}function d(R,U){const I=this._readableState,M=this._writableState,$=M||I;return M!=null&&M.destroyed||I!=null&&I.destroyed?(typeof U=="function"&&U(),this):(f(R,M,I),M&&(M.destroyed=!0),I&&(I.destroyed=!0),$.constructed?p(this,R,U):this.once(u,function(Z){p(this,e(Z,R),U)}),this)}function p(R,U,I){let M=!1;function $(Z){if(M)return;M=!0;const ne=R._readableState,re=R._writableState;f(Z,re,ne),re&&(re.closed=!0),ne&&(ne.closed=!0),typeof I=="function"&&I(Z),Z?t.nextTick(g,R,Z):t.nextTick(b,R)}try{R._destroy(U||null,$)}catch(Z){$(Z)}}function g(R,U){v(R,U),b(R)}function b(R){const U=R._readableState,I=R._writableState;I&&(I.closeEmitted=!0),U&&(U.closeEmitted=!0),(I!=null&&I.emitClose||U!=null&&U.emitClose)&&R.emit("close")}function v(R,U){const I=R._readableState,M=R._writableState;M!=null&&M.errorEmitted||I!=null&&I.errorEmitted||(M&&(M.errorEmitted=!0),I&&(I.errorEmitted=!0),R.emit("error",U))}function w(){const R=this._readableState,U=this._writableState;R&&(R.constructed=!0,R.closed=!1,R.closeEmitted=!1,R.destroyed=!1,R.errored=null,R.errorEmitted=!1,R.reading=!1,R.ended=R.readable===!1,R.endEmitted=R.readable===!1),U&&(U.constructed=!0,U.destroyed=!1,U.closed=!1,U.closeEmitted=!1,U.errored=null,U.errorEmitted=!1,U.finalCalled=!1,U.prefinished=!1,U.ended=U.writable===!1,U.ending=U.writable===!1,U.finished=U.writable===!1)}function _(R,U,I){const M=R._readableState,$=R._writableState;if($!=null&&$.destroyed||M!=null&&M.destroyed)return this;M!=null&&M.autoDestroy||$!=null&&$.autoDestroy?R.destroy(U):U&&(U.stack,$&&!$.errored&&($.errored=U),M&&!M.errored&&(M.errored=U),I?t.nextTick(v,R,U):v(R,U))}function y(R,U){if(typeof R._construct!="function")return;const I=R._readableState,M=R._writableState;I&&(I.constructed=!1),M&&(M.constructed=!1),R.once(c,U),!(R.listenerCount(c)>1)&&t.nextTick(x,R)}function x(R){let U=!1;function I(M){if(U){_(R,M??new r);return}U=!0;const $=R._readableState,Z=R._writableState,ne=Z||$;$&&($.constructed=!0),Z&&(Z.constructed=!0),ne.destroyed?R.emit(u,M):M?_(R,M,!0):t.nextTick(T,R)}try{R._construct(M=>{t.nextTick(I,M)})}catch(M){t.nextTick(I,M)}}function T(R){R.emit(c)}function A(R){return(R==null?void 0:R.setHeader)&&typeof R.abort=="function"}function C(R){R.emit("close")}function L(R,U){R.emit("error",U),t.nextTick(C,R)}function j(R,U){!R||a(R)||(!U&&!o(R)&&(U=new n),l(R)?(R.socket=null,R.destroy(U)):A(R)?R.abort():A(R.req)?R.req.abort():typeof R.destroy=="function"?R.destroy(U):typeof R.close=="function"?R.close():U?t.nextTick(L,R,U):t.nextTick(C,R),R.destroyed||(R[i]=!0))}return dd={construct:y,destroyer:j,destroy:d,undestroy:w,errorOrDestroy:_},dd}var hd,Dw;function Mm(){if(Dw)return hd;Dw=1;const{ArrayIsArray:t,ObjectSetPrototypeOf:e}=jt(),{EventEmitter:r}=ca();function n(i){r.call(this,i)}e(n.prototype,r.prototype),e(n,r),n.prototype.pipe=function(i,a){const o=this;function l(b){i.writable&&i.write(b)===!1&&o.pause&&o.pause()}o.on("data",l);function u(){o.readable&&o.resume&&o.resume()}i.on("drain",u),!i._isStdio&&(!a||a.end!==!1)&&(o.on("end",f),o.on("close",d));let c=!1;function f(){c||(c=!0,i.end())}function d(){c||(c=!0,typeof i.destroy=="function"&&i.destroy())}function p(b){g(),r.listenerCount(this,"error")===0&&this.emit("error",b)}s(o,"error",p),s(i,"error",p);function g(){o.removeListener("data",l),i.removeListener("drain",u),o.removeListener("end",f),o.removeListener("close",d),o.removeListener("error",p),i.removeListener("error",p),o.removeListener("end",g),o.removeListener("close",g),i.removeListener("close",g)}return o.on("end",g),o.on("close",g),i.on("close",g),i.emit("pipe",o),i};function s(i,a,o){if(typeof i.prependListener=="function")return i.prependListener(a,o);!i._events||!i._events[a]?i.on(a,o):t(i._events[a])?i._events[a].unshift(o):i._events[a]=[o,i._events[a]]}return hd={Stream:n,prependListener:s},hd}var pd={exports:{}},Uw;function nf(){return Uw||(Uw=1,function(t){const{SymbolDispose:e}=jt(),{AbortError:r,codes:n}=Pr(),{isNodeStream:s,isWebStream:i,kControllerErrorFunction:a}=Bi(),o=us(),{ERR_INVALID_ARG_TYPE:l}=n;let u;const c=(f,d)=>{if(typeof f!="object"||!("aborted"in f))throw new l(d,"AbortSignal",f)};t.exports.addAbortSignal=function(d,p){if(c(d,"signal"),!s(p)&&!i(p))throw new l("stream",["ReadableStream","WritableStream","Stream"],p);return t.exports.addAbortSignalNoValidate(d,p)},t.exports.addAbortSignalNoValidate=function(f,d){if(typeof f!="object"||!("aborted"in f))return d;const p=s(d)?()=>{d.destroy(new r(void 0,{cause:f.reason}))}:()=>{d[a](new r(void 0,{cause:f.reason}))};if(f.aborted)p();else{u=u||Nr().addAbortListener;const g=u(f,p);o(d,g[e])}return d}}(pd)),pd.exports}var gd,Fw;function ER(){if(Fw)return gd;Fw=1;const{StringPrototypeSlice:t,SymbolIterator:e,TypedArrayPrototypeSet:r,Uint8Array:n}=jt(),{Buffer:s}=Zr(),{inspect:i}=Nr();return gd=class{constructor(){this.head=null,this.tail=null,this.length=0}push(o){const l={data:o,next:null};this.length>0?this.tail.next=l:this.head=l,this.tail=l,++this.length}unshift(o){const l={data:o,next:this.head};this.length===0&&(this.tail=l),this.head=l,++this.length}shift(){if(this.length===0)return;const o=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,o}clear(){this.head=this.tail=null,this.length=0}join(o){if(this.length===0)return"";let l=this.head,u=""+l.data;for(;(l=l.next)!==null;)u+=o+l.data;return u}concat(o){if(this.length===0)return s.alloc(0);const l=s.allocUnsafe(o>>>0);let u=this.head,c=0;for(;u;)r(l,u.data,c),c+=u.data.length,u=u.next;return l}consume(o,l){const u=this.head.data;if(of.length)l+=f,o-=f.length;else{o===f.length?(l+=f,++c,u.next?this.head=u.next:this.head=this.tail=null):(l+=t(f,0,o),this.head=u,u.data=t(f,o));break}++c}while((u=u.next)!==null);return this.length-=c,l}_getBuffer(o){const l=s.allocUnsafe(o),u=o;let c=this.head,f=0;do{const d=c.data;if(o>d.length)r(l,d,u-o),o-=d.length;else{o===d.length?(r(l,d,u-o),++f,c.next?this.head=c.next:this.head=this.tail=null):(r(l,new n(d.buffer,d.byteOffset,o),u-o),this.head=c,c.data=d.slice(o));break}++f}while((c=c.next)!==null);return this.length-=f,l}[Symbol.for("nodejs.util.inspect.custom")](o,l){return i(this,{...l,depth:0,customInspect:!1})}},gd}var md,Vw;function sf(){if(Vw)return md;Vw=1;const{MathFloor:t,NumberIsInteger:e}=jt(),{validateInteger:r}=Pl(),{ERR_INVALID_ARG_VALUE:n}=Pr().codes;let s=16*1024,i=16;function a(c,f,d){return c.highWaterMark!=null?c.highWaterMark:f?c[d]:null}function o(c){return c?i:s}function l(c,f){r(f,"value",0),c?i=f:s=f}function u(c,f,d,p){const g=a(f,p,d);if(g!=null){if(!e(g)||g<0){const b=p?`options.${d}`:"options.highWaterMark";throw new n(b,g)}return t(g)}return o(c.objectMode)}return md={getHighWaterMark:u,getDefaultHighWaterMark:o,setDefaultHighWaterMark:l},md}var bd={},lu={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */var jw;function SR(){return jw||(jw=1,function(t,e){var r=Zr(),n=r.Buffer;function s(a,o){for(var l in a)o[l]=a[l]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(s(r,e),e.Buffer=i);function i(a,o,l){return n(a,o,l)}i.prototype=Object.create(n.prototype),s(n,i),i.from=function(a,o,l){if(typeof a=="number")throw new TypeError("Argument must not be a number");return n(a,o,l)},i.alloc=function(a,o,l){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=n(a);return o!==void 0?typeof l=="string"?u.fill(o,l):u.fill(o):u.fill(0),u},i.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n(a)},i.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(a)}}(lu,lu.exports)),lu.exports}var Ww;function xR(){if(Ww)return bd;Ww=1;var t=SR().Buffer,e=t.isEncoding||function(w){switch(w=""+w,w&&w.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(w){if(!w)return"utf8";for(var _;;)switch(w){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return w;default:if(_)return;w=(""+w).toLowerCase(),_=!0}}function n(w){var _=r(w);if(typeof _!="string"&&(t.isEncoding===e||!e(w)))throw new Error("Unknown encoding: "+w);return _||w}bd.StringDecoder=s;function s(w){this.encoding=n(w);var _;switch(this.encoding){case"utf16le":this.text=f,this.end=d,_=4;break;case"utf8":this.fillLast=l,_=4;break;case"base64":this.text=p,this.end=g,_=3;break;default:this.write=b,this.end=v;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=t.allocUnsafe(_)}s.prototype.write=function(w){if(w.length===0)return"";var _,y;if(this.lastNeed){if(_=this.fillLast(w),_===void 0)return"";y=this.lastNeed,this.lastNeed=0}else y=0;return y>5===6?2:w>>4===14?3:w>>3===30?4:w>>6===2?-1:-2}function a(w,_,y){var x=_.length-1;if(x=0?(T>0&&(w.lastNeed=T-1),T):--x=0?(T>0&&(w.lastNeed=T-2),T):--x=0?(T>0&&(T===2?T=0:w.lastNeed=T-3),T):0))}function o(w,_,y){if((_[0]&192)!==128)return w.lastNeed=0,"�";if(w.lastNeed>1&&_.length>1){if((_[1]&192)!==128)return w.lastNeed=1,"�";if(w.lastNeed>2&&_.length>2&&(_[2]&192)!==128)return w.lastNeed=2,"�"}}function l(w){var _=this.lastTotal-this.lastNeed,y=o(this,w);if(y!==void 0)return y;if(this.lastNeed<=w.length)return w.copy(this.lastChar,_,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);w.copy(this.lastChar,_,0,w.length),this.lastNeed-=w.length}function u(w,_){var y=a(this,w,_);if(!this.lastNeed)return w.toString("utf8",_);this.lastTotal=y;var x=w.length-(y-this.lastNeed);return w.copy(this.lastChar,0,x),w.toString("utf8",_,x)}function c(w){var _=w&&w.length?this.write(w):"";return this.lastNeed?_+"�":_}function f(w,_){if((w.length-_)%2===0){var y=w.toString("utf16le",_);if(y){var x=y.charCodeAt(y.length-1);if(x>=55296&&x<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=w[w.length-2],this.lastChar[1]=w[w.length-1],y.slice(0,-1)}return y}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=w[w.length-1],w.toString("utf16le",_,w.length-1)}function d(w){var _=w&&w.length?this.write(w):"";if(this.lastNeed){var y=this.lastTotal-this.lastNeed;return _+this.lastChar.toString("utf16le",0,y)}return _}function p(w,_){var y=(w.length-_)%3;return y===0?w.toString("base64",_):(this.lastNeed=3-y,this.lastTotal=3,y===1?this.lastChar[0]=w[w.length-1]:(this.lastChar[0]=w[w.length-2],this.lastChar[1]=w[w.length-1]),w.toString("base64",_,w.length-y))}function g(w){var _=w&&w.length?this.write(w):"";return this.lastNeed?_+this.lastChar.toString("base64",0,3-this.lastNeed):_}function b(w){return w.toString(this.encoding)}function v(w){return w&&w.length?this.write(w):""}return bd}var yd,zw;function pS(){if(zw)return yd;zw=1;const t=ao(),{PromisePrototypeThen:e,SymbolAsyncIterator:r,SymbolIterator:n}=jt(),{Buffer:s}=Zr(),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_NULL_VALUES:a}=Pr().codes;function o(l,u,c){let f;if(typeof u=="string"||u instanceof s)return new l({objectMode:!0,...c,read(){this.push(u),this.push(null)}});let d;if(u&&u[r])d=!0,f=u[r]();else if(u&&u[n])d=!1,f=u[n]();else throw new i("iterable",["Iterable"],u);const p=new l({objectMode:!0,highWaterMark:1,...c});let g=!1;p._read=function(){g||(g=!0,v())},p._destroy=function(w,_){e(b(w),()=>t.nextTick(_,w),y=>t.nextTick(_,y||w))};async function b(w){const _=w!=null,y=typeof f.throw=="function";if(_&&y){const{value:x,done:T}=await f.throw(w);if(await x,T)return}if(typeof f.return=="function"){const{value:x}=await f.return();await x}}async function v(){for(;;){try{const{value:w,done:_}=d?await f.next():f.next();if(_)p.push(null);else{const y=w&&typeof w.then=="function"?await w:w;if(y===null)throw g=!1,new a;if(p.push(y))continue;g=!1}}catch(w){p.destroy(w)}break}}return p}return yd=o,yd}var wd,Hw;function of(){if(Hw)return wd;Hw=1;const t=ao(),{ArrayPrototypeIndexOf:e,NumberIsInteger:r,NumberIsNaN:n,NumberParseInt:s,ObjectDefineProperties:i,ObjectKeys:a,ObjectSetPrototypeOf:o,Promise:l,SafeSet:u,SymbolAsyncDispose:c,SymbolAsyncIterator:f,Symbol:d}=jt();wd=Q,Q.ReadableState=ie;const{EventEmitter:p}=ca(),{Stream:g,prependListener:b}=Mm(),{Buffer:v}=Zr(),{addAbortSignal:w}=nf(),_=us();let y=Nr().debuglog("stream",ge=>{y=ge});const x=ER(),T=fa(),{getHighWaterMark:A,getDefaultHighWaterMark:C}=sf(),{aggregateTwoErrors:L,codes:{ERR_INVALID_ARG_TYPE:j,ERR_METHOD_NOT_IMPLEMENTED:R,ERR_OUT_OF_RANGE:U,ERR_STREAM_PUSH_AFTER_EOF:I,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:M},AbortError:$}=Pr(),{validateObject:Z}=Pl(),ne=d("kPaused"),{StringDecoder:re}=xR(),N=pS();o(Q.prototype,g.prototype),o(Q,g);const fe=()=>{},{errorOrDestroy:G}=T,pe=1,F=2,de=4,Se=8,ee=16,K=32,W=64,D=128,X=256,ce=512,le=1024,k=2048,P=4096,V=8192,B=16384,H=32768,q=65536,ue=1<<17,J=1<<18;function Y(ge){return{enumerable:!1,get(){return(this.state&ge)!==0},set(be){be?this.state|=ge:this.state&=~ge}}}i(ie.prototype,{objectMode:Y(pe),ended:Y(F),endEmitted:Y(de),reading:Y(Se),constructed:Y(ee),sync:Y(K),needReadable:Y(W),emittedReadable:Y(D),readableListening:Y(X),resumeScheduled:Y(ce),errorEmitted:Y(le),emitClose:Y(k),autoDestroy:Y(P),destroyed:Y(V),closed:Y(B),closeEmitted:Y(H),multiAwaitDrain:Y(q),readingMore:Y(ue),dataEmitted:Y(J)});function ie(ge,be,Fe){typeof Fe!="boolean"&&(Fe=be instanceof Ii()),this.state=k|P|ee|K,ge&&ge.objectMode&&(this.state|=pe),Fe&&ge&&ge.readableObjectMode&&(this.state|=pe),this.highWaterMark=ge?A(this,ge,"readableHighWaterMark",Fe):C(!1),this.buffer=new x,this.length=0,this.pipes=[],this.flowing=null,this[ne]=null,ge&&ge.emitClose===!1&&(this.state&=-2049),ge&&ge.autoDestroy===!1&&(this.state&=-4097),this.errored=null,this.defaultEncoding=ge&&ge.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,ge&&ge.encoding&&(this.decoder=new re(ge.encoding),this.encoding=ge.encoding)}function Q(ge){if(!(this instanceof Q))return new Q(ge);const be=this instanceof Ii();this._readableState=new ie(ge,this,be),ge&&(typeof ge.read=="function"&&(this._read=ge.read),typeof ge.destroy=="function"&&(this._destroy=ge.destroy),typeof ge.construct=="function"&&(this._construct=ge.construct),ge.signal&&!be&&w(ge.signal,this)),g.call(this,ge),T.construct(this,()=>{this._readableState.needReadable&&te(this,this._readableState)})}Q.prototype.destroy=T.destroy,Q.prototype._undestroy=T.undestroy,Q.prototype._destroy=function(ge,be){be(ge)},Q.prototype[p.captureRejectionSymbol]=function(ge){this.destroy(ge)},Q.prototype[c]=function(){let ge;return this.destroyed||(ge=this.readableEnded?null:new $,this.destroy(ge)),new l((be,Fe)=>_(this,Ve=>Ve&&Ve!==ge?Fe(Ve):be(null)))},Q.prototype.push=function(ge,be){return oe(this,ge,be,!1)},Q.prototype.unshift=function(ge,be){return oe(this,ge,be,!0)};function oe(ge,be,Fe,Ve){y("readableAddChunk",be);const Ke=ge._readableState;let hr;if(Ke.state&pe||(typeof be=="string"?(Fe=Fe||Ke.defaultEncoding,Ke.encoding!==Fe&&(Ve&&Ke.encoding?be=v.from(be,Fe).toString(Ke.encoding):(be=v.from(be,Fe),Fe=""))):be instanceof v?Fe="":g._isUint8Array(be)?(be=g._uint8ArrayToBuffer(be),Fe=""):be!=null&&(hr=new j("chunk",["string","Buffer","Uint8Array"],be))),hr)G(ge,hr);else if(be===null)Ke.state&=-9,h(ge,Ke);else if(Ke.state&pe||be&&be.length>0)if(Ve)if(Ke.state&de)G(ge,new M);else{if(Ke.destroyed||Ke.errored)return!1;me(ge,Ke,be,!0)}else if(Ke.ended)G(ge,new I);else{if(Ke.destroyed||Ke.errored)return!1;Ke.state&=-9,Ke.decoder&&!Fe?(be=Ke.decoder.write(be),Ke.objectMode||be.length!==0?me(ge,Ke,be,!1):te(ge,Ke)):me(ge,Ke,be,!1)}else Ve||(Ke.state&=-9,te(ge,Ke));return!Ke.ended&&(Ke.length0?(be.state&q?be.awaitDrainWriters.clear():be.awaitDrainWriters=null,be.dataEmitted=!0,ge.emit("data",Fe)):(be.length+=be.objectMode?1:Fe.length,Ve?be.buffer.unshift(Fe):be.buffer.push(Fe),be.state&W&&E(ge)),te(ge,be)}Q.prototype.isPaused=function(){const ge=this._readableState;return ge[ne]===!0||ge.flowing===!1},Q.prototype.setEncoding=function(ge){const be=new re(ge);this._readableState.decoder=be,this._readableState.encoding=this._readableState.decoder.encoding;const Fe=this._readableState.buffer;let Ve="";for(const Ke of Fe)Ve+=be.write(Ke);return Fe.clear(),Ve!==""&&Fe.push(Ve),this._readableState.length=Ve.length,this};const Te=1073741824;function S(ge){if(ge>Te)throw new U("size","<= 1GiB",ge);return ge--,ge|=ge>>>1,ge|=ge>>>2,ge|=ge>>>4,ge|=ge>>>8,ge|=ge>>>16,ge++,ge}function m(ge,be){return ge<=0||be.length===0&&be.ended?0:be.state&pe?1:n(ge)?be.flowing&&be.length?be.buffer.first().length:be.length:ge<=be.length?ge:be.ended?be.length:0}Q.prototype.read=function(ge){y("read",ge),ge===void 0?ge=NaN:r(ge)||(ge=s(ge,10));const be=this._readableState,Fe=ge;if(ge>be.highWaterMark&&(be.highWaterMark=S(ge)),ge!==0&&(be.state&=-129),ge===0&&be.needReadable&&((be.highWaterMark!==0?be.length>=be.highWaterMark:be.length>0)||be.ended))return y("read: emitReadable",be.length,be.ended),be.length===0&&be.ended?qt(this):E(this),null;if(ge=m(ge,be),ge===0&&be.ended)return be.length===0&&qt(this),null;let Ve=(be.state&W)!==0;if(y("need readable",Ve),(be.length===0||be.length-ge0?Ke=Lt(ge,be):Ke=null,Ke===null?(be.needReadable=be.length<=be.highWaterMark,ge=0):(be.length-=ge,be.multiAwaitDrain?be.awaitDrainWriters.clear():be.awaitDrainWriters=null),be.length===0&&(be.ended||(be.needReadable=!0),Fe!==ge&&be.ended&&qt(this)),Ke!==null&&!be.errorEmitted&&!be.closeEmitted&&(be.dataEmitted=!0,this.emit("data",Ke)),Ke};function h(ge,be){if(y("onEofChunk"),!be.ended){if(be.decoder){const Fe=be.decoder.end();Fe&&Fe.length&&(be.buffer.push(Fe),be.length+=be.objectMode?1:Fe.length)}be.ended=!0,be.sync?E(ge):(be.needReadable=!1,be.emittedReadable=!0,O(ge))}}function E(ge){const be=ge._readableState;y("emitReadable",be.needReadable,be.emittedReadable),be.needReadable=!1,be.emittedReadable||(y("emitReadable",be.flowing),be.emittedReadable=!0,t.nextTick(O,ge))}function O(ge){const be=ge._readableState;y("emitReadable_",be.destroyed,be.length,be.ended),!be.destroyed&&!be.errored&&(be.length||be.ended)&&(ge.emit("readable"),be.emittedReadable=!1),be.needReadable=!be.flowing&&!be.ended&&be.length<=be.highWaterMark,ze(ge)}function te(ge,be){!be.readingMore&&be.constructed&&(be.readingMore=!0,t.nextTick(he,ge,be))}function he(ge,be){for(;!be.reading&&!be.ended&&(be.length1&&Ve.pipes.includes(ge)&&(y("false write response, pause",Ve.awaitDrainWriters.size),Ve.awaitDrainWriters.add(ge)),Fe.pause()),hs||(hs=Ce(Fe,ge),ge.on("drain",hs))}Fe.on("data",db);function db(ps){y("ondata");const Qn=ge.write(ps);y("dest.write",Qn),Qn===!1&&fb()}function vf(ps){if(y("onerror",ps),ya(),ge.removeListener("error",vf),ge.listenerCount("error")===0){const Qn=ge._writableState||ge._readableState;Qn&&!Qn.errorEmitted?G(ge,ps):ge.emit("error",ps)}}b(ge,"error",vf);function _f(){ge.removeListener("finish",Ef),ya()}ge.once("close",_f);function Ef(){y("onfinish"),ge.removeListener("close",_f),ya()}ge.once("finish",Ef);function ya(){y("unpipe"),Fe.unpipe(ge)}return ge.emit("pipe",Fe),ge.writableNeedDrain===!0?fb():Ve.flowing||(y("pipe resume"),Fe.resume()),ge};function Ce(ge,be){return function(){const Ve=ge._readableState;Ve.awaitDrainWriters===be?(y("pipeOnDrain",1),Ve.awaitDrainWriters=null):Ve.multiAwaitDrain&&(y("pipeOnDrain",Ve.awaitDrainWriters.size),Ve.awaitDrainWriters.delete(be)),(!Ve.awaitDrainWriters||Ve.awaitDrainWriters.size===0)&&ge.listenerCount("data")&&ge.resume()}}Q.prototype.unpipe=function(ge){const be=this._readableState,Fe={hasUnpiped:!1};if(be.pipes.length===0)return this;if(!ge){const Ke=be.pipes;be.pipes=[],this.pause();for(let hr=0;hr0,Ve.flowing!==!1&&this.resume()):ge==="readable"&&!Ve.endEmitted&&!Ve.readableListening&&(Ve.readableListening=Ve.needReadable=!0,Ve.flowing=!1,Ve.emittedReadable=!1,y("on readable",Ve.length,Ve.reading),Ve.length?E(this):Ve.reading||t.nextTick(We,this)),Fe},Q.prototype.addListener=Q.prototype.on,Q.prototype.removeListener=function(ge,be){const Fe=g.prototype.removeListener.call(this,ge,be);return ge==="readable"&&t.nextTick(Ue,this),Fe},Q.prototype.off=Q.prototype.removeListener,Q.prototype.removeAllListeners=function(ge){const be=g.prototype.removeAllListeners.apply(this,arguments);return(ge==="readable"||ge===void 0)&&t.nextTick(Ue,this),be};function Ue(ge){const be=ge._readableState;be.readableListening=ge.listenerCount("readable")>0,be.resumeScheduled&&be[ne]===!1?be.flowing=!0:ge.listenerCount("data")>0?ge.resume():be.readableListening||(be.flowing=null)}function We(ge){y("readable nexttick read 0"),ge.read(0)}Q.prototype.resume=function(){const ge=this._readableState;return ge.flowing||(y("resume"),ge.flowing=!ge.readableListening,De(this,ge)),ge[ne]=!1,this};function De(ge,be){be.resumeScheduled||(be.resumeScheduled=!0,t.nextTick(He,ge,be))}function He(ge,be){y("resume",be.reading),be.reading||ge.read(0),be.resumeScheduled=!1,ge.emit("resume"),ze(ge),be.flowing&&!be.reading&&ge.read(0)}Q.prototype.pause=function(){return y("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(y("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[ne]=!0,this};function ze(ge){const be=ge._readableState;for(y("flow",be.flowing);be.flowing&&ge.read()!==null;);}Q.prototype.wrap=function(ge){let be=!1;ge.on("data",Ve=>{!this.push(Ve)&&ge.pause&&(be=!0,ge.pause())}),ge.on("end",()=>{this.push(null)}),ge.on("error",Ve=>{G(this,Ve)}),ge.on("close",()=>{this.destroy()}),ge.on("destroy",()=>{this.destroy()}),this._read=()=>{be&&ge.resume&&(be=!1,ge.resume())};const Fe=a(ge);for(let Ve=1;Ve{Ke=en?L(Ke,en):null,Fe(),Fe=fe});try{for(;;){const en=ge.destroyed?null:ge.read();if(en!==null)yield en;else{if(Ke)throw Ke;if(Ke===null)return;await new l(Ve)}}}catch(en){throw Ke=L(Ke,en),Ke}finally{(Ke||(be==null?void 0:be.destroyOnReturn)!==!1)&&(Ke===void 0||ge._readableState.autoDestroy)?T.destroyer(ge,null):(ge.off("readable",Ve),hr())}}i(Q.prototype,{readable:{__proto__:null,get(){const ge=this._readableState;return!!ge&&ge.readable!==!1&&!ge.destroyed&&!ge.errorEmitted&&!ge.endEmitted},set(ge){this._readableState&&(this._readableState.readable=!!ge)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(ge){this._readableState&&(this._readableState.flowing=ge)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(ge){this._readableState&&(this._readableState.destroyed=ge)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),i(ie.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(ge){this[ne]=!!ge}}}),Q._fromList=Lt;function Lt(ge,be){if(be.length===0)return null;let Fe;return be.objectMode?Fe=be.buffer.shift():!ge||ge>=be.length?(be.decoder?Fe=be.buffer.join(""):be.buffer.length===1?Fe=be.buffer.first():Fe=be.buffer.concat(be.length),be.buffer.clear()):Fe=be.buffer.consume(ge,be.decoder),Fe}function qt(ge){const be=ge._readableState;y("endReadable",be.endEmitted),be.endEmitted||(be.ended=!0,t.nextTick(or,be,ge))}function or(ge,be){if(y("endReadableNT",ge.endEmitted,ge.length),!ge.errored&&!ge.closeEmitted&&!ge.endEmitted&&ge.length===0){if(ge.endEmitted=!0,be.emit("end"),be.writable&&be.allowHalfOpen===!1)t.nextTick(Qt,be);else if(ge.autoDestroy){const Fe=be._writableState;(!Fe||Fe.autoDestroy&&(Fe.finished||Fe.writable===!1))&&be.destroy()}}}function Qt(ge){ge.writable&&!ge.writableEnded&&!ge.destroyed&&ge.end()}Q.from=function(ge,be){return N(Q,ge,be)};let po;function ba(){return po===void 0&&(po={}),po}return Q.fromWeb=function(ge,be){return ba().newStreamReadableFromReadableStream(ge,be)},Q.toWeb=function(ge,be){return ba().newReadableStreamFromStreamReadable(ge,be)},Q.wrap=function(ge,be){var Fe,Ve;return new Q({objectMode:(Fe=(Ve=ge.readableObjectMode)!==null&&Ve!==void 0?Ve:ge.objectMode)!==null&&Fe!==void 0?Fe:!0,...be,destroy(Ke,hr){T.destroyer(ge,Ke),hr(Ke)}}).wrap(ge)},wd}var vd,qw;function km(){if(qw)return vd;qw=1;const t=ao(),{ArrayPrototypeSlice:e,Error:r,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:s,ObjectDefineProperties:i,ObjectSetPrototypeOf:a,StringPrototypeToLowerCase:o,Symbol:l,SymbolHasInstance:u}=jt();vd=Z,Z.WritableState=M;const{EventEmitter:c}=ca(),f=Mm().Stream,{Buffer:d}=Zr(),p=fa(),{addAbortSignal:g}=nf(),{getHighWaterMark:b,getDefaultHighWaterMark:v}=sf(),{ERR_INVALID_ARG_TYPE:w,ERR_METHOD_NOT_IMPLEMENTED:_,ERR_MULTIPLE_CALLBACK:y,ERR_STREAM_CANNOT_PIPE:x,ERR_STREAM_DESTROYED:T,ERR_STREAM_ALREADY_FINISHED:A,ERR_STREAM_NULL_VALUES:C,ERR_STREAM_WRITE_AFTER_END:L,ERR_UNKNOWN_ENCODING:j}=Pr().codes,{errorOrDestroy:R}=p;a(Z.prototype,f.prototype),a(Z,f);function U(){}const I=l("kOnFinished");function M(P,V,B){typeof B!="boolean"&&(B=V instanceof Ii()),this.objectMode=!!(P&&P.objectMode),B&&(this.objectMode=this.objectMode||!!(P&&P.writableObjectMode)),this.highWaterMark=P?b(this,P,"writableHighWaterMark",B):v(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const H=!!(P&&P.decodeStrings===!1);this.decodeStrings=!H,this.defaultEncoding=P&&P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=G.bind(void 0,V),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,$(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!P||P.emitClose!==!1,this.autoDestroy=!P||P.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[I]=[]}function $(P){P.buffered=[],P.bufferedIndex=0,P.allBuffers=!0,P.allNoop=!0}M.prototype.getBuffer=function(){return e(this.buffered,this.bufferedIndex)},s(M.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function Z(P){const V=this instanceof Ii();if(!V&&!n(Z,this))return new Z(P);this._writableState=new M(P,this,V),P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final),typeof P.construct=="function"&&(this._construct=P.construct),P.signal&&g(P.signal,this)),f.call(this,P),p.construct(this,()=>{const B=this._writableState;B.writing||Se(this,B),D(this,B)})}s(Z,u,{__proto__:null,value:function(P){return n(this,P)?!0:this!==Z?!1:P&&P._writableState instanceof M}}),Z.prototype.pipe=function(){R(this,new x)};function ne(P,V,B,H){const q=P._writableState;if(typeof B=="function")H=B,B=q.defaultEncoding;else{if(!B)B=q.defaultEncoding;else if(B!=="buffer"&&!d.isEncoding(B))throw new j(B);typeof H!="function"&&(H=U)}if(V===null)throw new C;if(!q.objectMode)if(typeof V=="string")q.decodeStrings!==!1&&(V=d.from(V,B),B="buffer");else if(V instanceof d)B="buffer";else if(f._isUint8Array(V))V=f._uint8ArrayToBuffer(V),B="buffer";else throw new w("chunk",["string","Buffer","Uint8Array"],V);let ue;return q.ending?ue=new L:q.destroyed&&(ue=new T("write")),ue?(t.nextTick(H,ue),R(P,ue,!0),ue):(q.pendingcb++,re(P,q,V,B,H))}Z.prototype.write=function(P,V,B){return ne(this,P,V,B)===!0},Z.prototype.cork=function(){this._writableState.corked++},Z.prototype.uncork=function(){const P=this._writableState;P.corked&&(P.corked--,P.writing||Se(this,P))},Z.prototype.setDefaultEncoding=function(V){if(typeof V=="string"&&(V=o(V)),!d.isEncoding(V))throw new j(V);return this._writableState.defaultEncoding=V,this};function re(P,V,B,H,q){const ue=V.objectMode?1:B.length;V.length+=ue;const J=V.lengthB.bufferedIndex&&Se(P,B),H?B.afterWriteTickInfo!==null&&B.afterWriteTickInfo.cb===q?B.afterWriteTickInfo.count++:(B.afterWriteTickInfo={count:1,cb:q,stream:P,state:B},t.nextTick(pe,B.afterWriteTickInfo)):F(P,B,1,q))}function pe({stream:P,state:V,count:B,cb:H}){return V.afterWriteTickInfo=null,F(P,V,B,H)}function F(P,V,B,H){for(!V.ending&&!P.destroyed&&V.length===0&&V.needDrain&&(V.needDrain=!1,P.emit("drain"));B-- >0;)V.pendingcb--,H();V.destroyed&&de(V),D(P,V)}function de(P){if(P.writing)return;for(let q=P.bufferedIndex;q1&&P._writev){V.pendingcb-=ue-1;const Y=V.allNoop?U:Q=>{for(let oe=J;oe256?(B.splice(0,J),V.bufferedIndex=0):V.bufferedIndex=J}V.bufferProcessing=!1}Z.prototype._write=function(P,V,B){if(this._writev)this._writev([{chunk:P,encoding:V}],B);else throw new _("_write()")},Z.prototype._writev=null,Z.prototype.end=function(P,V,B){const H=this._writableState;typeof P=="function"?(B=P,P=null,V=null):typeof V=="function"&&(B=V,V=null);let q;if(P!=null){const ue=ne(this,P,V);ue instanceof r&&(q=ue)}return H.corked&&(H.corked=1,this.uncork()),q||(!H.errored&&!H.ending?(H.ending=!0,D(this,H,!0),H.ended=!0):H.finished?q=new A("end"):H.destroyed&&(q=new T("end"))),typeof B=="function"&&(q||H.finished?t.nextTick(B,q):H[I].push(B)),this};function ee(P){return P.ending&&!P.destroyed&&P.constructed&&P.length===0&&!P.errored&&P.buffered.length===0&&!P.finished&&!P.writing&&!P.errorEmitted&&!P.closeEmitted}function K(P,V){let B=!1;function H(q){if(B){R(P,q??y());return}if(B=!0,V.pendingcb--,q){const ue=V[I].splice(0);for(let J=0;J{ee(q)?X(H,q):q.pendingcb--},P,V)):ee(V)&&(V.pendingcb++,X(P,V))))}function X(P,V){V.pendingcb--,V.finished=!0;const B=V[I].splice(0);for(let H=0;H{if(de!=null)throw new g("nully","body",de)},de=>{b(pe,de)});return pe=new j({objectMode:!0,readable:!1,write:re,final(de){N(async()=>{try{await F,t.nextTick(de,null)}catch(Se){t.nextTick(de,Se)}})},destroy:fe})}throw new g("Iterable, AsyncIterable or AsyncFunction",$,ne)}if(A(M))return I(M.arrayBuffer());if(s(M))return x(j,M,{objectMode:!0,writable:!1});if(u(M==null?void 0:M.readable)&&c(M==null?void 0:M.writable))return j.fromWeb(M);if(typeof(M==null?void 0:M.writable)=="object"||typeof(M==null?void 0:M.readable)=="object"){const ne=M!=null&&M.readable?a(M==null?void 0:M.readable)?M==null?void 0:M.readable:I(M.readable):void 0,re=M!=null&&M.writable?o(M==null?void 0:M.writable)?M==null?void 0:M.writable:I(M.writable):void 0;return U({readable:ne,writable:re})}const Z=M==null?void 0:M.then;if(typeof Z=="function"){let ne;return L(Z,M,re=>{re!=null&&ne.push(re),ne.push(null)},re=>{b(ne,re)}),ne=new j({objectMode:!0,writable:!1,read(){}})}throw new p($,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],M)};function R(I){let{promise:M,resolve:$}=y();const Z=new C,ne=Z.signal;return{value:I(async function*(){for(;;){const N=M;M=null;const{chunk:fe,done:G,cb:pe}=await N;if(t.nextTick(pe),G)return;if(ne.aborted)throw new d(void 0,{cause:ne.reason});({promise:M,resolve:$}=y()),yield fe}}(),{signal:ne}),write(N,fe,G){const pe=$;$=null,pe({chunk:N,done:!1,cb:G})},final(N){const fe=$;$=null,fe({done:!0,cb:N})},destroy(N,fe){Z.abort(),fe(N)}}}function U(I){const M=I.readable&&typeof I.readable.read!="function"?w.wrap(I.readable):I.readable,$=I.writable;let Z=!!r(M),ne=!!n($),re,N,fe,G,pe;function F(de){const Se=G;G=null,Se?Se(de):de&&pe.destroy(de)}return pe=new j({readableObjectMode:!!(M!=null&&M.readableObjectMode),writableObjectMode:!!($!=null&&$.writableObjectMode),readable:Z,writable:ne}),ne&&(f($,de=>{ne=!1,de&&b(M,de),F(de)}),pe._write=function(de,Se,ee){$.write(de,Se)?ee():re=ee},pe._final=function(de){$.end(),N=de},$.on("drain",function(){if(re){const de=re;re=null,de()}}),$.on("finish",function(){if(N){const de=N;N=null,de()}})),Z&&(f(M,de=>{Z=!1,de&&b(M,de),F(de)}),M.on("readable",function(){if(fe){const de=fe;fe=null,de()}}),M.on("end",function(){pe.push(null)}),pe._read=function(){for(;;){const de=M.read();if(de===null){fe=pe._read;return}if(!pe.push(de))return}}),pe._destroy=function(de,Se){!de&&G!==null&&(de=new d),fe=null,re=null,N=null,G===null?Se(de):(G=Se,b($,de),b(M,de))},pe}return _d}var Ed,Yw;function Ii(){if(Yw)return Ed;Yw=1;const{ObjectDefineProperties:t,ObjectGetOwnPropertyDescriptor:e,ObjectKeys:r,ObjectSetPrototypeOf:n}=jt();Ed=a;const s=of(),i=km();n(a.prototype,s.prototype),n(a,s);{const c=r(i.prototype);for(let f=0;f{if(c){u?u(c):this.destroy(c);return}f!=null&&this.push(f),this.push(null),u&&u()}):(this.push(null),u&&u())}function l(){this._final!==o&&o.call(this)}return a.prototype._final=o,a.prototype._transform=function(u,c,f){throw new r("_transform()")},a.prototype._write=function(u,c,f){const d=this._readableState,p=this._writableState,g=d.length;this._transform(u,c,(b,v)=>{if(b){f(b);return}v!=null&&this.push(v),p.ended||g===d.length||d.length{K=!0});const W=i(de,{readable:Se,writable:ee},D=>{K=!D});return{destroy:D=>{K||(K=!0,o.destroyer(de,D||new p("pipe")))},cleanup:W}}function Z(de){return v(de[de.length-1],"streams[stream.length - 1]"),de.pop()}function ne(de){if(_(de))return de;if(x(de))return re(de);throw new c("val",["Readable","Iterable","AsyncIterable"],de)}async function*re(de){I||(I=of()),yield*I.prototype[n].call(de)}async function N(de,Se,ee,{end:K}){let W,D=null;const X=k=>{if(k&&(W=k),D){const P=D;D=null,P()}},ce=()=>new r((k,P)=>{W?P(W):D=()=>{W?P(W):k()}});Se.on("drain",X);const le=i(Se,{readable:!1},X);try{Se.writableNeedDrain&&await ce();for await(const k of de)Se.write(k)||await ce();K&&(Se.end(),await ce()),ee()}catch(k){ee(W!==k?u(W,k):k)}finally{le(),Se.off("drain",X)}}async function fe(de,Se,ee,{end:K}){A(Se)&&(Se=Se.writable);const W=Se.getWriter();try{for await(const D of de)await W.ready,W.write(D).catch(()=>{});await W.ready,K&&await W.close(),ee()}catch(D){try{await W.abort(D),ee(D)}catch(X){ee(X)}}}function G(...de){return pe(de,a(Z(de)))}function pe(de,Se,ee){if(de.length===1&&e(de[0])&&(de=de[0]),de.length<2)throw new d("streams");const K=new R,W=K.signal,D=ee==null?void 0:ee.signal,X=[];w(D,"options.signal");function ce(){q(new b)}M=M||Nr().addAbortListener;let le;D&&(le=M(D,ce));let k,P;const V=[];let B=0;function H(Q){q(Q,--B===0)}function q(Q,oe){var me;if(Q&&(!k||k.code==="ERR_STREAM_PREMATURE_CLOSE")&&(k=Q),!(!k&&!oe)){for(;V.length;)V.shift()(k);(me=le)===null||me===void 0||me[s](),K.abort(),oe&&(k||X.forEach(Te=>Te()),t.nextTick(Se,k,P))}}let ue;for(let Q=0;Q0,S=me||(ee==null?void 0:ee.end)!==!1,m=Q===de.length-1;if(T(oe)){let h=function(E){E&&E.name!=="AbortError"&&E.code!=="ERR_STREAM_PREMATURE_CLOSE"&&H(E)};var ie=h;if(S){const{destroy:E,cleanup:O}=$(oe,me,Te);V.push(E),y(oe)&&m&&X.push(O)}oe.on("error",h),y(oe)&&m&&X.push(()=>{oe.removeListener("error",h)})}if(Q===0)if(typeof oe=="function"){if(ue=oe({signal:W}),!_(ue))throw new f("Iterable, AsyncIterable or Stream","source",ue)}else _(oe)||x(oe)||A(oe)?ue=oe:ue=l.from(oe);else if(typeof oe=="function"){if(A(ue)){var J;ue=ne((J=ue)===null||J===void 0?void 0:J.readable)}else ue=ne(ue);if(ue=oe(ue,{signal:W}),me){if(!_(ue,!0))throw new f("AsyncIterable",`transform[${Q-1}]`,ue)}else{var Y;U||(U=mS());const h=new U({objectMode:!0}),E=(Y=ue)===null||Y===void 0?void 0:Y.then;if(typeof E=="function")B++,E.call(ue,he=>{P=he,he!=null&&h.write(he),S&&h.end(),t.nextTick(H)},he=>{h.destroy(he),t.nextTick(H,he)});else if(_(ue,!0))B++,N(ue,h,H,{end:S});else if(L(ue)||A(ue)){const he=ue.readable||ue;B++,N(he,h,H,{end:S})}else throw new f("AsyncIterable or Promise","destination",ue);ue=h;const{destroy:O,cleanup:te}=$(ue,!1,!0);V.push(O),m&&X.push(te)}}else if(T(oe)){if(x(ue)){B+=2;const h=F(ue,oe,H,{end:S});y(oe)&&m&&X.push(h)}else if(A(ue)||L(ue)){const h=ue.readable||ue;B++,N(h,oe,H,{end:S})}else if(_(ue))B++,N(ue,oe,H,{end:S});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],ue);ue=oe}else if(C(oe)){if(x(ue))B++,fe(ne(ue),oe,H,{end:S});else if(L(ue)||_(ue))B++,fe(ue,oe,H,{end:S});else if(A(ue))B++,fe(ue.readable,oe,H,{end:S});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],ue);ue=oe}else ue=l.from(oe)}return(W!=null&&W.aborted||D!=null&&D.aborted)&&t.nextTick(ce),ue}function F(de,Se,ee,{end:K}){let W=!1;if(Se.on("close",()=>{W||ee(new g)}),de.pipe(Se,{end:!1}),K){let X=function(){W=!0,Se.end()};var D=X;j(de)?t.nextTick(X):de.once("end",X)}else ee();return i(de,{readable:!0,writable:!1},X=>{const ce=de._readableState;X&&X.code==="ERR_STREAM_PREMATURE_CLOSE"&&ce&&ce.ended&&!ce.errored&&!ce.errorEmitted?de.once("end",ee).once("error",ee):ee(X)}),i(Se,{readable:!1,writable:!0},ee)}return Td={pipelineImpl:pe,pipeline:G},Td}var Ad,Jw;function bS(){if(Jw)return Ad;Jw=1;const{pipeline:t}=Pm(),e=Ii(),{destroyer:r}=fa(),{isNodeStream:n,isReadable:s,isWritable:i,isWebStream:a,isTransformStream:o,isWritableStream:l,isReadableStream:u}=Bi(),{AbortError:c,codes:{ERR_INVALID_ARG_VALUE:f,ERR_MISSING_ARGS:d}}=Pr(),p=us();return Ad=function(...b){if(b.length===0)throw new d("streams");if(b.length===1)return e.from(b[0]);const v=[...b];if(typeof b[0]=="function"&&(b[0]=e.from(b[0])),typeof b[b.length-1]=="function"){const U=b.length-1;b[U]=e.from(b[U])}for(let U=0;U0&&!(i(b[U])||l(b[U])||o(b[U])))throw new f(`streams[${U}]`,v[U],"must be writable")}let w,_,y,x,T;function A(U){const I=x;x=null,I?I(U):U?T.destroy(U):!R&&!j&&T.destroy()}const C=b[0],L=t(b,A),j=!!(i(C)||l(C)||o(C)),R=!!(s(L)||u(L)||o(L));if(T=new e({writableObjectMode:!!(C!=null&&C.writableObjectMode),readableObjectMode:!!(L!=null&&L.readableObjectMode),writable:j,readable:R}),j){if(n(C))T._write=function(I,M,$){C.write(I,M)?$():w=$},T._final=function(I){C.end(),_=I},C.on("drain",function(){if(w){const I=w;w=null,I()}});else if(a(C)){const M=(o(C)?C.writable:C).getWriter();T._write=async function($,Z,ne){try{await M.ready,M.write($).catch(()=>{}),ne()}catch(re){ne(re)}},T._final=async function($){try{await M.ready,M.close().catch(()=>{}),_=$}catch(Z){$(Z)}}}const U=o(L)?L.readable:L;p(U,()=>{if(_){const I=_;_=null,I()}})}if(R){if(n(L))L.on("readable",function(){if(y){const U=y;y=null,U()}}),L.on("end",function(){T.push(null)}),T._read=function(){for(;;){const U=L.read();if(U===null){y=T._read;return}if(!T.push(U))return}};else if(a(L)){const I=(o(L)?L.readable:L).getReader();T._read=async function(){for(;;)try{const{value:M,done:$}=await I.read();if(!T.push(M))return;if($){T.push(null);return}}catch{return}}}}return T._destroy=function(U,I){!U&&x!==null&&(U=new c),y=null,w=null,_=null,x===null?I(U):(x=I,n(L)&&r(L,U))},T},Ad}var Zw;function AR(){if(Zw)return ou;Zw=1;const t=globalThis.AbortController||bl().AbortController,{codes:{ERR_INVALID_ARG_VALUE:e,ERR_INVALID_ARG_TYPE:r,ERR_MISSING_ARGS:n,ERR_OUT_OF_RANGE:s},AbortError:i}=Pr(),{validateAbortSignal:a,validateInteger:o,validateObject:l}=Pl(),u=jt().Symbol("kWeak"),c=jt().Symbol("kResistStopPropagation"),{finished:f}=us(),d=bS(),{addAbortSignalNoValidate:p}=nf(),{isWritable:g,isNodeStream:b}=Bi(),{deprecate:v}=Nr(),{ArrayPrototypePush:w,Boolean:_,MathFloor:y,Number:x,NumberIsNaN:T,Promise:A,PromiseReject:C,PromiseResolve:L,PromisePrototypeThen:j,Symbol:R}=jt(),U=R("kEmpty"),I=R("kEof");function M(D,X){if(X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),b(D)&&!g(D))throw new e("stream",D,"must be writable");const ce=d(this,D);return X!=null&&X.signal&&p(X.signal,ce),ce}function $(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal");let ce=1;(X==null?void 0:X.concurrency)!=null&&(ce=y(X.concurrency));let le=ce-1;return(X==null?void 0:X.highWaterMark)!=null&&(le=y(X.highWaterMark)),o(ce,"options.concurrency",1),o(le,"options.highWaterMark",0),le+=ce,(async function*(){const P=Nr().AbortSignalAny([X==null?void 0:X.signal].filter(_)),V=this,B=[],H={signal:P};let q,ue,J=!1,Y=0;function ie(){J=!0,Q()}function Q(){Y-=1,oe()}function oe(){ue&&!J&&Y=le||Y>=ce)&&await new A(S=>{ue=S})}B.push(I)}catch(Te){const S=C(Te);j(S,Q,ie),B.push(S)}finally{J=!0,q&&(q(),q=null)}}me();try{for(;;){for(;B.length>0;){const Te=await B[0];if(Te===I)return;if(P.aborted)throw new i;Te!==U&&(yield Te),B.shift(),oe()}await new A(Te=>{q=Te})}}finally{J=!0,ue&&(ue(),ue=null)}}).call(this)}function Z(D=void 0){return D!=null&&l(D,"options"),(D==null?void 0:D.signal)!=null&&a(D.signal,"options.signal"),(async function*(){let ce=0;for await(const k of this){var le;if(D!=null&&(le=D.signal)!==null&&le!==void 0&&le.aborted)throw new i({cause:D.signal.reason});yield[ce++,k]}}).call(this)}async function ne(D,X=void 0){for await(const ce of G.call(this,D,X))return!0;return!1}async function re(D,X=void 0){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);return!await ne.call(this,async(...ce)=>!await D(...ce),X)}async function N(D,X){for await(const ce of G.call(this,D,X))return ce}async function fe(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);async function ce(le,k){return await D(le,k),U}for await(const le of $.call(this,ce,X));}function G(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);async function ce(le,k){return await D(le,k)?le:U}return $.call(this,ce,X)}class pe extends n{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function F(D,X,ce){var le;if(typeof D!="function")throw new r("reducer",["Function","AsyncFunction"],D);ce!=null&&l(ce,"options"),(ce==null?void 0:ce.signal)!=null&&a(ce.signal,"options.signal");let k=arguments.length>1;if(ce!=null&&(le=ce.signal)!==null&&le!==void 0&&le.aborted){const q=new i(void 0,{cause:ce.signal.reason});throw this.once("error",()=>{}),await f(this.destroy(q)),q}const P=new t,V=P.signal;if(ce!=null&&ce.signal){const q={once:!0,[u]:this,[c]:!0};ce.signal.addEventListener("abort",()=>P.abort(),q)}let B=!1;try{for await(const q of this){var H;if(B=!0,ce!=null&&(H=ce.signal)!==null&&H!==void 0&&H.aborted)throw new i;k?X=await D(X,q,{signal:V}):(X=q,k=!0)}if(!B&&!k)throw new pe}finally{P.abort()}return X}async function de(D){D!=null&&l(D,"options"),(D==null?void 0:D.signal)!=null&&a(D.signal,"options.signal");const X=[];for await(const le of this){var ce;if(D!=null&&(ce=D.signal)!==null&&ce!==void 0&&ce.aborted)throw new i(void 0,{cause:D.signal.reason});w(X,le)}return X}function Se(D,X){const ce=$.call(this,D,X);return(async function*(){for await(const k of ce)yield*k}).call(this)}function ee(D){if(D=x(D),T(D))return 0;if(D<0)throw new s("number",">= 0",D);return D}function K(D,X=void 0){return X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),D=ee(D),(async function*(){var le;if(X!=null&&(le=X.signal)!==null&&le!==void 0&&le.aborted)throw new i;for await(const P of this){var k;if(X!=null&&(k=X.signal)!==null&&k!==void 0&&k.aborted)throw new i;D--<=0&&(yield P)}}).call(this)}function W(D,X=void 0){return X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),D=ee(D),(async function*(){var le;if(X!=null&&(le=X.signal)!==null&&le!==void 0&&le.aborted)throw new i;for await(const P of this){var k;if(X!=null&&(k=X.signal)!==null&&k!==void 0&&k.aborted)throw new i;if(D-- >0&&(yield P),D<=0)return}}).call(this)}return ou.streamReturningOperators={asIndexedPairs:v(Z,"readable.asIndexedPairs will be removed in a future version."),drop:K,filter:G,flatMap:Se,map:$,take:W,compose:M},ou.promiseReturningOperators={every:re,forEach:fe,reduce:F,toArray:de,some:ne,find:N},ou}var Cd,ev;function yS(){if(ev)return Cd;ev=1;const{ArrayPrototypePop:t,Promise:e}=jt(),{isIterable:r,isNodeStream:n,isWebStream:s}=Bi(),{pipelineImpl:i}=Pm(),{finished:a}=us();wS();function o(...l){return new e((u,c)=>{let f,d;const p=l[l.length-1];if(p&&typeof p=="object"&&!n(p)&&!r(p)&&!s(p)){const g=t(l);f=g.signal,d=g.end}i(l,(g,b)=>{g?c(g):u(b)},{signal:f,end:d})})}return Cd={finished:a,pipeline:o},Cd}var tv;function wS(){if(tv)return nd.exports;tv=1;const{Buffer:t}=Zr(),{ObjectDefineProperty:e,ObjectKeys:r,ReflectApply:n}=jt(),{promisify:{custom:s}}=Nr(),{streamReturningOperators:i,promiseReturningOperators:a}=AR(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:o}}=Pr(),l=bS(),{setDefaultHighWaterMark:u,getDefaultHighWaterMark:c}=sf(),{pipeline:f}=Pm(),{destroyer:d}=fa(),p=us(),g=yS(),b=Bi(),v=nd.exports=Mm().Stream;v.isDestroyed=b.isDestroyed,v.isDisturbed=b.isDisturbed,v.isErrored=b.isErrored,v.isReadable=b.isReadable,v.isWritable=b.isWritable,v.Readable=of();for(const y of r(i)){let T=function(...A){if(new.target)throw o();return v.Readable.from(n(x,this,A))};var _=T;const x=i[y];e(T,"name",{__proto__:null,value:x.name}),e(T,"length",{__proto__:null,value:x.length}),e(v.Readable.prototype,y,{__proto__:null,value:T,enumerable:!1,configurable:!0,writable:!0})}for(const y of r(a)){let T=function(...C){if(new.target)throw o();return n(x,this,C)};var _=T;const x=a[y];e(T,"name",{__proto__:null,value:x.name}),e(T,"length",{__proto__:null,value:x.length}),e(v.Readable.prototype,y,{__proto__:null,value:T,enumerable:!1,configurable:!0,writable:!0})}v.Writable=km(),v.Duplex=Ii(),v.Transform=gS(),v.PassThrough=mS(),v.pipeline=f;const{addAbortSignal:w}=nf();return v.addAbortSignal=w,v.finished=p,v.destroy=d,v.compose=l,v.setDefaultHighWaterMark=u,v.getDefaultHighWaterMark=c,e(v,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),e(f,s,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),e(p,s,{__proto__:null,enumerable:!0,get(){return g.finished}}),v.Stream=v,v._isUint8Array=function(x){return x instanceof Uint8Array},v._uint8ArrayToBuffer=function(x){return t.from(x.buffer,x.byteOffset,x.byteLength)},nd.exports}var rv;function CR(){return rv||(rv=1,function(t){const e=wS(),r=yS(),n=e.Readable.destroy;t.exports=e.Readable,t.exports._uint8ArrayToBuffer=e._uint8ArrayToBuffer,t.exports._isUint8Array=e._isUint8Array,t.exports.isDisturbed=e.isDisturbed,t.exports.isErrored=e.isErrored,t.exports.isReadable=e.isReadable,t.exports.Readable=e.Readable,t.exports.Writable=e.Writable,t.exports.Duplex=e.Duplex,t.exports.Transform=e.Transform,t.exports.PassThrough=e.PassThrough,t.exports.addAbortSignal=e.addAbortSignal,t.exports.finished=e.finished,t.exports.destroy=e.destroy,t.exports.destroy=n,t.exports.pipeline=e.pipeline,t.exports.compose=e.compose,Object.defineProperty(e,"promises",{configurable:!0,enumerable:!0,get(){return r}}),t.exports.Stream=e.Stream,t.exports.default=t.exports}(rd)),rd.exports}var uu={exports:{}},nv;function IR(){return nv||(nv=1,typeof Object.create=="function"?uu.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:uu.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}),uu.exports}var Id,iv;function MR(){if(iv)return Id;iv=1;const{Buffer:t}=Zr(),e=Symbol.for("BufferList");function r(n){if(!(this instanceof r))return new r(n);r._init.call(this,n)}return r._init=function(s){Object.defineProperty(this,e,{value:!0}),this._bufs=[],this.length=0,s&&this.append(s)},r.prototype._new=function(s){return new r(s)},r.prototype._offset=function(s){if(s===0)return[0,0];let i=0;for(let a=0;athis.length||s<0)return;const i=this._offset(s);return this._bufs[i[0]][i[1]]},r.prototype.slice=function(s,i){return typeof s=="number"&&s<0&&(s+=this.length),typeof i=="number"&&i<0&&(i+=this.length),this.copy(null,0,s,i)},r.prototype.copy=function(s,i,a,o){if((typeof a!="number"||a<0)&&(a=0),(typeof o!="number"||o>this.length)&&(o=this.length),a>=this.length||o<=0)return s||t.alloc(0);const l=!!s,u=this._offset(a),c=o-a;let f=c,d=l&&i||0,p=u[1];if(a===0&&o===this.length){if(!l)return this._bufs.length===1?this._bufs[0]:t.concat(this._bufs,this.length);for(let g=0;gb)this._bufs[g].copy(s,d,p),d+=b;else{this._bufs[g].copy(s,d,p,p+f),d+=b;break}f-=b,p&&(p=0)}return s.length>d?s.slice(0,d):s},r.prototype.shallowSlice=function(s,i){if(s=s||0,i=typeof i!="number"?this.length:i,s<0&&(s+=this.length),i<0&&(i+=this.length),s===i)return this._new();const a=this._offset(s),o=this._offset(i),l=this._bufs.slice(a[0],o[0]+1);return o[1]===0?l.pop():l[l.length-1]=l[l.length-1].slice(0,o[1]),a[1]!==0&&(l[0]=l[0].slice(a[1])),this._new(l)},r.prototype.toString=function(s,i,a){return this.slice(i,a).toString(s)},r.prototype.consume=function(s){if(s=Math.trunc(s),Number.isNaN(s)||s<=0)return this;for(;this._bufs.length;)if(s>=this._bufs[0].length)s-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(s),this.length-=s;break}return this},r.prototype.duplicate=function(){const s=this._new();for(let i=0;ithis.length?this.length:s;const a=this._offset(s);let o=a[0],l=a[1];for(;o=n.length){const f=u.indexOf(n,l);if(f!==-1)return this._reverseOffset([o,f]);l=u.length-n.length+1}else{const f=this._reverseOffset([o,l]);if(this._match(f,n))return f;l++}l=0}return-1},r.prototype._match=function(n,s){if(this.length-n[0,1].map(a=>[0,1].map(o=>{const l=r.alloc(1);return l.writeUInt8(e.codes[s]<r.from([s])),e.EMPTY={pingreq:r.from([e.codes.pingreq<<4,0]),pingresp:r.from([e.codes.pingresp<<4,0]),disconnect:r.from([e.codes.disconnect<<4,0])},e.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},e.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},e.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},e.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}(kd)),kd.exports}function _S(){throw new Error("setTimeout has not been defined")}function ES(){throw new Error("clearTimeout has not been defined")}var ji=_S,Wi=ES;typeof qs.setTimeout=="function"&&(ji=setTimeout);typeof qs.clearTimeout=="function"&&(Wi=clearTimeout);function SS(t){if(ji===setTimeout)return setTimeout(t,0);if((ji===_S||!ji)&&setTimeout)return ji=setTimeout,setTimeout(t,0);try{return ji(t,0)}catch{try{return ji.call(null,t,0)}catch{return ji.call(this,t,0)}}}function OR(t){if(Wi===clearTimeout)return clearTimeout(t);if((Wi===ES||!Wi)&&clearTimeout)return Wi=clearTimeout,clearTimeout(t);try{return Wi(t)}catch{try{return Wi.call(null,t)}catch{return Wi.call(this,t)}}}var bi=[],Fo=!1,Rs,Wu=-1;function LR(){!Fo||!Rs||(Fo=!1,Rs.length?bi=Rs.concat(bi):Wu=-1,bi.length&&xS())}function xS(){if(!Fo){var t=SS(LR);Fo=!0;for(var e=bi.length;e;){for(Rs=bi,bi=[];++Wu1)for(var r=1;r0)return a(c);if(d==="number"&&isFinite(c))return f.long?l(c):o(c);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(c))};function a(c){if(c=String(c),!(c.length>100)){var f=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(f){var d=parseFloat(f[1]),p=(f[2]||"ms").toLowerCase();switch(p){case"years":case"year":case"yrs":case"yr":case"y":return d*i;case"weeks":case"week":case"w":return d*s;case"days":case"day":case"d":return d*n;case"hours":case"hour":case"hrs":case"hr":case"h":return d*r;case"minutes":case"minute":case"mins":case"min":case"m":return d*e;case"seconds":case"second":case"secs":case"sec":case"s":return d*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return d;default:return}}}}function o(c){var f=Math.abs(c);return f>=n?Math.round(c/n)+"d":f>=r?Math.round(c/r)+"h":f>=e?Math.round(c/e)+"m":f>=t?Math.round(c/t)+"s":c+"ms"}function l(c){var f=Math.abs(c);return f>=n?u(c,f,n,"day"):f>=r?u(c,f,r,"hour"):f>=e?u(c,f,e,"minute"):f>=t?u(c,f,t,"second"):c+" ms"}function u(c,f,d,p){var g=f>=d*1.5;return Math.round(c/d)+" "+p+(g?"s":"")}return Pd}var Od,uv;function oB(){if(uv)return Od;uv=1;function t(e){n.debug=n,n.default=n,n.coerce=u,n.disable=o,n.enable=i,n.enabled=l,n.humanize=sB(),n.destroy=c,Object.keys(e).forEach(f=>{n[f]=e[f]}),n.names=[],n.skips=[],n.formatters={};function r(f){let d=0;for(let p=0;p{if(C==="%%")return"%";T++;const j=n.formatters[L];if(typeof j=="function"){const R=w[T];C=j.call(_,R),w.splice(T,1),T--}return C}),n.formatArgs.call(_,w),(_.log||n.log).apply(_,w)}return v.namespace=f,v.useColors=n.useColors(),v.color=n.selectColor(f),v.extend=s,v.destroy=n.destroy,Object.defineProperty(v,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(g!==n.namespaces&&(g=n.namespaces,b=n.enabled(f)),b),set:w=>{p=w}}),typeof n.init=="function"&&n.init(v),v}function s(f,d){const p=n(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}function i(f){n.save(f),n.namespaces=f,n.names=[],n.skips=[];const d=(typeof f=="string"?f:"").trim().replace(" ",",").split(",").filter(Boolean);for(const p of d)p[0]==="-"?n.skips.push(p.slice(1)):n.names.push(p)}function a(f,d){let p=0,g=0,b=-1,v=0;for(;p"-"+d)].join(",");return n.enable(""),f}function l(f){for(const d of n.skips)if(a(f,d))return!1;for(const d of n.names)if(a(f,d))return!0;return!1}function u(f){return f instanceof Error?f.stack||f.message:f}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}return Od=t,Od}var cv;function AS(){return cv||(cv=1,function(t,e){var r={};e.formatArgs=s,e.save=i,e.load=a,e.useColors=n,e.storage=o(),e.destroy=(()=>{let u=!1;return()=>{u||(u=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function n(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let u;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(u=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(u[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function s(u){if(u[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+u[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;u.splice(1,0,c,"color: inherit");let f=0,d=0;u[0].replace(/%[a-zA-Z%]/g,p=>{p!=="%%"&&(f++,p==="%c"&&(d=f))}),u.splice(d,0,c)}e.log=console.debug||console.log||(()=>{});function i(u){try{u?e.storage.setItem("debug",u):e.storage.removeItem("debug")}catch{}}function a(){let u;try{u=e.storage.getItem("debug")}catch{}return!u&&typeof Fr<"u"&&"env"in Fr&&(u=r.DEBUG),u}function o(){try{return localStorage}catch{}}t.exports=oB()(e);const{formatters:l}=t.exports;l.j=function(u){try{return JSON.stringify(u)}catch(c){return"[UnexpectedJSONParseError]: "+c.message}}}(cu,cu.exports)),cu.exports}var Ld,fv;function aB(){if(fv)return Ld;fv=1;const t=kR(),{EventEmitter:e}=ca(),r=PR(),n=vS(),s=AS()("mqtt-packet:parser");class i extends e{constructor(){super(),this.parser=this.constructor.parser}static parser(o){return this instanceof i?(this.settings=o||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new i().parser(o)}_resetState(){s("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new r,this.error=null,this._list=t(),this._stateCounter=0}parse(o){for(this.error&&this._resetState(),this._list.append(o),s("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,s("parse: state complete. _stateCounter is now: %d",this._stateCounter),s("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return s("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const o=this._list.readUInt8(0),l=o>>n.CMD_SHIFT;this.packet.cmd=n.types[l];const u=o&15,c=n.requiredHeaderFlags[l];return c!=null&&u!==c?this._emitError(new Error(n.requiredHeaderFlagsErrors[l])):(this.packet.retain=(o&n.RETAIN_MASK)!==0,this.packet.qos=o>>n.QOS_SHIFT&n.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(o&n.DUP_MASK)!==0,s("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){const o=this._parseVarByteNum(!0);return o&&(this.packet.length=o.value,this._list.consume(o.bytes)),s("_parseLength %d",o.value),!!o}_parsePayload(){s("_parsePayload: payload %O",this._list);let o=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}o=!0}return s("_parsePayload complete result: %s",o),o}_parseConnect(){s("_parseConnect");let o,l,u,c;const f={},d=this.packet,p=this._parseString();if(p===null)return this._emitError(new Error("Cannot parse protocolId"));if(p!=="MQTT"&&p!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(d.protocolId=p,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(d.protocolVersion=this._list.readUInt8(this._pos),d.protocolVersion>=128&&(d.bridgeMode=!0,d.protocolVersion=d.protocolVersion-128),d.protocolVersion!==3&&d.protocolVersion!==4&&d.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));f.username=this._list.readUInt8(this._pos)&n.USERNAME_MASK,f.password=this._list.readUInt8(this._pos)&n.PASSWORD_MASK,f.will=this._list.readUInt8(this._pos)&n.WILL_FLAG_MASK;const g=!!(this._list.readUInt8(this._pos)&n.WILL_RETAIN_MASK),b=(this._list.readUInt8(this._pos)&n.WILL_QOS_MASK)>>n.WILL_QOS_SHIFT;if(f.will)d.will={},d.will.retain=g,d.will.qos=b;else{if(g)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(b)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(d.clean=(this._list.readUInt8(this._pos)&n.CLEAN_SESSION_MASK)!==0,this._pos++,d.keepalive=this._parseNum(),d.keepalive===-1)return this._emitError(new Error("Packet too short"));if(d.protocolVersion===5){const w=this._parseProperties();Object.getOwnPropertyNames(w).length&&(d.properties=w)}const v=this._parseString();if(v===null)return this._emitError(new Error("Packet too short"));if(d.clientId=v,s("_parseConnect: packet.clientId: %s",d.clientId),f.will){if(d.protocolVersion===5){const w=this._parseProperties();Object.getOwnPropertyNames(w).length&&(d.will.properties=w)}if(o=this._parseString(),o===null)return this._emitError(new Error("Cannot parse will topic"));if(d.will.topic=o,s("_parseConnect: packet.will.topic: %s",d.will.topic),l=this._parseBuffer(),l===null)return this._emitError(new Error("Cannot parse will payload"));d.will.payload=l,s("_parseConnect: packet.will.paylaod: %s",d.will.payload)}if(f.username){if(c=this._parseString(),c===null)return this._emitError(new Error("Cannot parse username"));d.username=c,s("_parseConnect: packet.username: %s",d.username)}if(f.password){if(u=this._parseBuffer(),u===null)return this._emitError(new Error("Cannot parse password"));d.password=u}return this.settings=d,s("_parseConnect: complete"),d}_parseConnack(){s("_parseConnack");const o=this.packet;if(this._list.length<1)return null;const l=this._list.readUInt8(this._pos++);if(l>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(o.sessionPresent=!!(l&n.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?o.reasonCode=this._list.readUInt8(this._pos++):o.reasonCode=0;else{if(this._list.length<2)return null;o.returnCode=this._list.readUInt8(this._pos++)}if(o.returnCode===-1||o.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){const u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(o.properties=u)}s("_parseConnack: complete")}_parsePublish(){s("_parsePublish");const o=this.packet;if(o.topic=this._parseString(),o.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(o.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}o.payload=this._list.slice(this._pos,o.length),s("_parsePublish: payload from buffer list: %o",o.payload)}}_parseSubscribe(){s("_parseSubscribe");const o=this.packet;let l,u,c,f,d,p,g;if(o.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const b=this._parseProperties();Object.getOwnPropertyNames(b).length&&(o.properties=b)}if(o.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=o.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(u=this._parseByte(),this.settings.protocolVersion===5){if(u&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(u&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(c=u&n.SUBSCRIBE_OPTIONS_QOS_MASK,c>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(p=(u>>n.SUBSCRIBE_OPTIONS_NL_SHIFT&n.SUBSCRIBE_OPTIONS_NL_MASK)!==0,d=(u>>n.SUBSCRIBE_OPTIONS_RAP_SHIFT&n.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,f=u>>n.SUBSCRIBE_OPTIONS_RH_SHIFT&n.SUBSCRIBE_OPTIONS_RH_MASK,f>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));g={topic:l,qos:c},this.settings.protocolVersion===5?(g.nl=p,g.rap=d,g.rh=f):this.settings.bridgeMode&&(g.rh=0,g.rap=!0,g.nl=!0),s("_parseSubscribe: push subscription `%s` to subscription",g),o.subscriptions.push(g)}}}_parseSuback(){s("_parseSuback");const o=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}if(o.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&l!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(l)}}}_parseUnsubscribe(){s("_parseUnsubscribe");const o=this.packet;if(o.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}if(o.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(o.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!n.MQTT5_PUBACK_PUBREC_CODES[o.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!n.MQTT5_PUBREL_PUBCOMP_CODES[o.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}s("_parseConfirmation: packet.reasonCode `%d`",o.reasonCode)}else o.reasonCode=0;if(o.length>3){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}}return!0}_parseDisconnect(){const o=this.packet;if(s("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(o.reasonCode=this._parseByte(),n.MQTT5_DISCONNECT_CODES[o.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):o.reasonCode=0;const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}return s("_parseDisconnect result: true"),!0}_parseAuth(){s("_parseAuth");const o=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(o.reasonCode=this._parseByte(),!n.MQTT5_AUTH_CODES[o.reasonCode])return this._emitError(new Error("Invalid auth reason code"));const l=this._parseProperties();return Object.getOwnPropertyNames(l).length&&(o.properties=l),s("_parseAuth: result: true"),!0}_parseMessageId(){const o=this.packet;return o.messageId=this._parseNum(),o.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(s("_parseMessageId: packet.messageId %d",o.messageId),!0)}_parseString(o){const l=this._parseNum(),u=l+this._pos;if(l===-1||u>this._list.length||u>this.packet.length)return null;const c=this._list.toString("utf8",this._pos,u);return this._pos+=l,s("_parseString: result: %s",c),c}_parseStringPair(){return s("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const o=this._parseNum(),l=o+this._pos;if(o===-1||l>this._list.length||l>this.packet.length)return null;const u=this._list.slice(this._pos,l);return this._pos+=o,s("_parseBuffer: result: %o",u),u}_parseNum(){if(this._list.length-this._pos<2)return-1;const o=this._list.readUInt16BE(this._pos);return this._pos+=2,s("_parseNum: result: %s",o),o}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const o=this._list.readUInt32BE(this._pos);return this._pos+=4,s("_parse4ByteNum: result: %s",o),o}_parseVarByteNum(o){s("_parseVarByteNum");const l=4;let u=0,c=1,f=0,d=!1,p;const g=this._pos?this._pos:0;for(;u=u&&this._emitError(new Error("Invalid variable byte integer")),g&&(this._pos+=u),d?o?d={bytes:u,value:f}:d=f:d=!1,s("_parseVarByteNum: result: %o",d),d}_parseByte(){let o;return this._pos>8,0),u.writeUInt8(l&255,1),u}function i(){for(let l=0;l0&&(c=c|128),d.writeUInt8(c,f++);while(l>0&&f<4);return l>0&&(f=0),n?d.subarray(0,f):d.slice(0,f)}function o(l){const u=t.allocUnsafe(4);return u.writeUInt32BE(l,0),u}return Rd={cache:r,generateCache:i,generateNumber:s,genBufVariableByteInt:a,generate4ByteBuffer:o},Rd}var fu={exports:{}},hv;function uB(){if(hv)return fu.exports;hv=1,typeof Fr>"u"||!Fr.version||Fr.version.indexOf("v0.")===0||Fr.version.indexOf("v1.")===0&&Fr.version.indexOf("v1.8.")!==0?fu.exports={nextTick:t}:fu.exports=Fr;function t(e,r,n,s){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var i=arguments.length,a,o;switch(i){case 0:case 1:return Fr.nextTick(e);case 2:return Fr.nextTick(function(){e.call(null,r)});case 3:return Fr.nextTick(function(){e.call(null,r,n)});case 4:return Fr.nextTick(function(){e.call(null,r,n,s)});default:for(a=new Array(i-1),o=0;o=4)&&(V||k))ue+=e.byteLength(V)+2;else{if(ce<4)return K.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(k*1===0)return K.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof P!="number"||P<0||P>65535||P%1!==0)return K.destroy(new Error("Invalid keepalive")),!1;ue+=2,ue+=1;let J,Y;if(ce===5){if(J=fe(K,q),!J)return!1;ue+=J.length}if(le){if(typeof le!="object")return K.destroy(new Error("Invalid will")),!1;if(!le.topic||typeof le.topic!="string")return K.destroy(new Error("Invalid will topic")),!1;if(ue+=e.byteLength(le.topic)+2,ue+=2,le.payload)if(le.payload.length>=0)typeof le.payload=="string"?ue+=e.byteLength(le.payload):ue+=le.payload.length;else return K.destroy(new Error("Invalid will payload")),!1;if(Y={},ce===5){if(Y=fe(K,le.properties),!Y)return!1;ue+=Y.length}}let ie=!1;if(B!=null)if(Se(B))ie=!0,ue+=e.byteLength(B)+2;else return K.destroy(new Error("Invalid username")),!1;if(H!=null){if(!ie)return K.destroy(new Error("Username is required to use password")),!1;if(Se(H))ue+=de(H)+2;else return K.destroy(new Error("Invalid password")),!1}K.write(t.CONNECT_HEADER),I(K,ue),N(K,X),D.bridgeMode&&(ce+=128),K.write(ce===131?t.VERSION131:ce===132?t.VERSION132:ce===4?t.VERSION4:ce===5?t.VERSION5:t.VERSION3);let Q=0;return Q|=B!=null?t.USERNAME_MASK:0,Q|=H!=null?t.PASSWORD_MASK:0,Q|=le&&le.retain?t.WILL_RETAIN_MASK:0,Q|=le&&le.qos?le.qos<0&&d(K,V),q!=null&&q.write(),a("publish: payload: %o",P),K.write(P)}function y(ee,K,W){const D=W?W.protocolVersion:4,X=ee||{},ce=X.cmd||"puback",le=X.messageId,k=X.dup&&ce==="pubrel"?t.DUP_MASK:0;let P=0;const V=X.reasonCode,B=X.properties;let H=D===5?3:2;if(ce==="pubrel"&&(P=1),typeof le!="number")return K.destroy(new Error("Invalid messageId")),!1;let q=null;if(D===5&&typeof B=="object"){if(q=G(K,B,W,H),!q)return!1;H+=q.length}return K.write(t.ACKS[ce][P][k][0]),H===3&&(H+=V!==0?1:-1),I(K,H),d(K,le),D===5&&H!==2&&K.write(e.from([V])),q!==null?q.write():H===4&&K.write(e.from([0])),!0}function x(ee,K,W){a("subscribe: packet: ");const D=W?W.protocolVersion:4,X=ee||{},ce=X.dup?t.DUP_MASK:0,le=X.messageId,k=X.subscriptions,P=X.properties;let V=0;if(typeof le!="number")return K.destroy(new Error("Invalid messageId")),!1;V+=2;let B=null;if(D===5){if(B=fe(K,P),!B)return!1;V+=B.length}if(typeof k=="object"&&k.length)for(let q=0;q2)return K.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}V+=e.byteLength(ue)+2+1}else return K.destroy(new Error("Invalid subscriptions")),!1;a("subscribe: writing to stream: %o",t.SUBSCRIBE_HEADER),K.write(t.SUBSCRIBE_HEADER[1][ce?1:0][0]),I(K,V),d(K,le),B!==null&&B.write();let H=!0;for(const q of k){const ue=q.topic,J=q.qos,Y=+q.nl,ie=+q.rap,Q=q.rh;let oe;M(K,ue),oe=t.SUBSCRIBE_OPTIONS_QOS[J],D===5&&(oe|=Y?t.SUBSCRIBE_OPTIONS_NL:0,oe|=ie?t.SUBSCRIBE_OPTIONS_RAP:0,oe|=Q?t.SUBSCRIBE_OPTIONS_RH[Q]:0),H=K.write(e.from([oe]))}return H}function T(ee,K,W){const D=W?W.protocolVersion:4,X=ee||{},ce=X.messageId,le=X.granted,k=X.properties;let P=0;if(typeof ce!="number")return K.destroy(new Error("Invalid messageId")),!1;if(P+=2,typeof le=="object"&&le.length)for(let B=0;Bt.VARBYTEINT_MAX)return ee.destroy(new Error(`Invalid variable byte integer: ${K}`)),!1;let W=U[K];return W||(W=c(K),K<16384&&(U[K]=W)),a("writeVarByteInt: writing to stream: %o",W),ee.write(W)}function M(ee,K){const W=e.byteLength(K);return d(ee,W),a("writeString: %s",K),ee.write(K,"utf8")}function $(ee,K,W){M(ee,K),M(ee,W)}function Z(ee,K){return a("writeNumberCached: number: %d",K),a("writeNumberCached: %o",o[K]),ee.write(o[K])}function ne(ee,K){const W=l(K);return a("writeNumberGenerated: %o",W),ee.write(W)}function re(ee,K){const W=f(K);return a("write4ByteNumber: %o",W),ee.write(W)}function N(ee,K){typeof K=="string"?M(ee,K):K?(d(ee,K.length),ee.write(K)):d(ee,0)}function fe(ee,K){if(typeof K!="object"||K.length!=null)return{length:1,write(){F(ee,{},0)}};let W=0;function D(ce,le){const k=t.propertiesTypes[ce];let P=0;switch(k){case"byte":{if(typeof le!="boolean")return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=2;break}case"int8":{if(typeof le!="number"||le<0||le>255)return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=2;break}case"binary":{if(le&&le===null)return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=1+e.byteLength(le)+2;break}case"int16":{if(typeof le!="number"||le<0||le>65535)return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=3;break}case"int32":{if(typeof le!="number"||le<0||le>4294967295)return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=5;break}case"var":{if(typeof le!="number"||le<0||le>268435455)return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=1+e.byteLength(c(le));break}case"string":{if(typeof le!="string")return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=3+e.byteLength(le.toString());break}case"pair":{if(typeof le!="object")return ee.destroy(new Error(`Invalid ${ce}: ${le}`)),!1;P+=Object.getOwnPropertyNames(le).reduce((V,B)=>{const H=le[B];return Array.isArray(H)?V+=H.reduce((q,ue)=>(q+=3+e.byteLength(B.toString())+2+e.byteLength(ue.toString()),q),0):V+=3+e.byteLength(B.toString())+2+e.byteLength(le[B].toString()),V},0);break}default:return ee.destroy(new Error(`Invalid property ${ce}: ${le}`)),!1}return P}if(K)for(const ce in K){let le=0,k=0;const P=K[ce];if(Array.isArray(P))for(let V=0;Vce;){const k=X.shift();if(k&&K[k])delete K[k],le=fe(ee,K);else return!1}return le}function pe(ee,K,W){switch(t.propertiesTypes[K]){case"byte":{ee.write(e.from([t.properties[K]])),ee.write(e.from([+W]));break}case"int8":{ee.write(e.from([t.properties[K]])),ee.write(e.from([W]));break}case"binary":{ee.write(e.from([t.properties[K]])),N(ee,W);break}case"int16":{ee.write(e.from([t.properties[K]])),d(ee,W);break}case"int32":{ee.write(e.from([t.properties[K]])),re(ee,W);break}case"var":{ee.write(e.from([t.properties[K]])),I(ee,W);break}case"string":{ee.write(e.from([t.properties[K]])),M(ee,W);break}case"pair":{Object.getOwnPropertyNames(W).forEach(X=>{const ce=W[X];Array.isArray(ce)?ce.forEach(le=>{ee.write(e.from([t.properties[K]])),$(ee,X.toString(),le.toString())}):(ee.write(e.from([t.properties[K]])),$(ee,X.toString(),ce.toString()))});break}default:return ee.destroy(new Error(`Invalid property ${K} value: ${W}`)),!1}}function F(ee,K,W){I(ee,W);for(const D in K)if(Object.prototype.hasOwnProperty.call(K,D)&&K[D]!==null){const X=K[D];if(Array.isArray(X))for(let ce=0;ce{console.info("MQTT connection successful")}),_n.on("disconnect",()=>{console.info("MQTT disconnected")}),_n.on("error",t=>{console.error("MQTT connection failed: ",t)})}catch(t){console.error("MQTT connect error: ",t)}function mB(t){_n?_n.on("message",t):console.error("MqttRegister: MQTT client not available")}function js(t){Ec.topic=t;const{topic:e,qos:r}=Ec;_n.subscribe(e,{qos:r},n=>{if(n){console.error("MQTT Subscription error: "+n);return}})}function Vo(t){Ec.topic=t;const{topic:e}=Ec;_n.unsubscribe(e,r=>{if(r){console.error("MQTT Unsubscribe from "+t+" failed: "+r);return}})}async function Sc(t,e){let n=_n.connected,s=0;for(;!n&&s<20;)console.warn("MQTT publish: Not connected. Waiting 0.1 seconds"),await bB(100),n=_n.connected,s+=1;if(s<20)try{_n.publish(t,e,{qos:0},i=>{i&&console.warn("MQTT publish error: ",i),console.info("MQTT publish: Message sent: ["+t+"]("+e+")")})}catch(i){console.warn("MQTT publish: caught error: "+i)}else console.error("MQTT publish: Lost connection to MQTT server. Please reload the page")}function Om(){return IS.clientId}function bB(t){return new Promise(e=>setTimeout(e,t))}class yB{constructor(e){ve(this,"id");ve(this,"name","Ladepunkt");ve(this,"icon","Ladepunkt");ve(this,"type",pt.chargepoint);ve(this,"ev",0);ve(this,"template",0);ve(this,"connectedPhases",0);ve(this,"phase_1",0);ve(this,"autoPhaseSwitchHw",!1);ve(this,"controlPilotInterruptionHw",!1);ve(this,"isEnabled",!0);ve(this,"isPluggedIn",!1);ve(this,"isCharging",!1);ve(this,"_isLocked",!1);ve(this,"_connectedVehicle",0);ve(this,"chargeTemplate",null);ve(this,"evTemplate",0);ve(this,"_chargeMode",Hr.pv_charging);ve(this,"_hasPriority",!1);ve(this,"currentPlan","");ve(this,"averageConsumption",0);ve(this,"vehicleName","");ve(this,"rangeCharged",0);ve(this,"rangeUnit","");ve(this,"counter",0);ve(this,"dailyYield",0);ve(this,"energyPv",0);ve(this,"energyBat",0);ve(this,"pvPercentage",0);ve(this,"faultState",0);ve(this,"faultStr","");ve(this,"phasesInUse",0);ve(this,"power",0);ve(this,"chargedSincePlugged",0);ve(this,"stateStr","");ve(this,"current",0);ve(this,"currents",[0,0,0]);ve(this,"phasesToUse",0);ve(this,"isSocConfigured",!0);ve(this,"isSocManual",!1);ve(this,"waitingForSoc",!1);ve(this,"color","white");ve(this,"energy",0);ve(this,"showInGraph",!0);ve(this,"_timedCharging",!1);ve(this,"_instantChargeLimitMode","");ve(this,"_instantTargetCurrent",0);ve(this,"_instantTargetSoc",0);ve(this,"_instantMaxEnergy",0);ve(this,"_instantTargetPhases",0);ve(this,"_pvFeedInLimit",!1);ve(this,"_pvMinCurrent",0);ve(this,"_pvMaxSoc",0);ve(this,"_pvMinSoc",0);ve(this,"_pvMinSocCurrent",0);ve(this,"_pvMinSocPhases",1);ve(this,"_pvChargeLimitMode","");ve(this,"_pvTargetSoc",0);ve(this,"_pvMaxEnergy",0);ve(this,"_pvTargetPhases",0);ve(this,"_ecoMinCurrent",0);ve(this,"_ecoTargetPhases",0);ve(this,"_ecoChargeLimitMode","");ve(this,"_ecoTargetSoc",0);ve(this,"_ecoMaxEnergy",0);ve(this,"_etActive",!1);ve(this,"_etMaxPrice",20);this.id=e}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e,vr("cpLock",e,this.id)}updateIsLocked(e){this._isLocked=e}get connectedVehicle(){return this._connectedVehicle}set connectedVehicle(e){this._connectedVehicle=e,vr("cpVehicle",e,this.id)}updateConnectedVehicle(e){this._connectedVehicle=e}get soc(){return dt[this.connectedVehicle]?dt[this.connectedVehicle].soc:0}set soc(e){dt[this.connectedVehicle]&&(dt[this.connectedVehicle].soc=e)}get chargeMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.selected)??Hr.stop}set chargeMode(e){console.log("set mode"),this.chargeTemplate&&(console.log("active"),this.chargeTemplate.chargemode.selected=e,Ft(this.id))}get hasPriority(){var e;return((e=this.chargeTemplate)==null?void 0:e.prio)??!1}set hasPriority(e){this.chargeTemplate&&(this.chargeTemplate.prio=e,vr("cpPriority",e,this.id))}get timedCharging(){return this.chargeTemplate?this.chargeTemplate.time_charging.active:!1}set timedCharging(e){this.chargeTemplate.time_charging.active=e,vr("cpTimedCharging",e,this.id)}get instantTargetCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.current)??0}set instantTargetCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.current=e,Ft(this.id))}get instantChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.selected)??"none"}set instantChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.selected=e,Ft(this.id))}get instantTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.soc)??0}set instantTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.soc=e,Ft(this.id))}get instantMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.amount)??0}set instantMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.amount=e,Ft(this.id))}get instantTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.phases_to_use)??0}set instantTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.phases_to_use=e,Ft(this.id))}get pvFeedInLimit(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.feed_in_limit)??!1}set pvFeedInLimit(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.feed_in_limit=e,Ft(this.id))}get pvMinCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_current)??0}set pvMinCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_current=e,Ft(this.id))}get pvMaxSoc(){return this._pvMaxSoc}set pvMaxSoc(e){this._pvMaxSoc=e,vr("cpPvMaxSoc",e,this.id)}updatePvMaxSoc(e){this._pvMaxSoc=e}get pvMinSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_soc)??0}set pvMinSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_soc=e,Ft(this.id))}get pvMinSocCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_soc_current)??0}set pvMinSocCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_soc_current=e,Ft(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,Ft(this.id))}get pvMinSocPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.phases_to_use_min_soc)??0}get pvChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.selected)??"none"}set pvChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.selected=e,Ft(this.id))}get pvTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.soc)??0}set pvTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.soc=e,Ft(this.id))}get pvMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.amount)??0}set pvMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.amount=e,Ft(this.id))}get pvTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.phases_to_use)??0}set pvTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use=e,Ft(this.id))}get ecoMinCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.current)??0}set ecoMinCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.current=e,Ft(this.id))}get ecoTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.phases_to_use)??0}set ecoTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.phases_to_use=e,Ft(this.id))}get ecoChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.selected)??"none"}set ecoChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.selected=e,Ft(this.id))}get ecoTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.soc)??0}set ecoTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.soc=e,Ft(this.id))}get ecoMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.amount)??0}set ecoMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.amount=e,Ft(this.id))}get etMaxPrice(){var e;return(((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.max_price)??0)*1e5}set etMaxPrice(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.max_price=Math.ceil(e*1e3)/1e8,Ft(this.id))}get etActive(){return this.chargeTemplate&&this.chargeTemplate.chargemode.selected==Hr.eco_charging}get realCurrent(){switch(this.phasesInUse){case 0:return 0;case 1:return this.currents[0];case 2:return(this.currents[0]+this.currents[1])/2;case 3:return(this.currents[0]+this.currents[1]+this.currents[2])/3;default:return 0}}toPowerItem(){return{name:this.name,type:pt.chargepoint,power:this.power,energy:this.dailyYield,energyPv:this.energyPv,energyBat:this.energyBat,pvPercentage:this.pvPercentage,color:this.color,icon:this.icon,showInGraph:!0}}}class wB{constructor(e){ve(this,"id");ve(this,"name","__invalid");ve(this,"tags",[]);ve(this,"config",{});ve(this,"soc",0);ve(this,"range",0);ve(this,"_chargeTemplateId",0);ve(this,"isSocConfigured",!1);ve(this,"isSocManual",!1);ve(this,"_evTemplateId",0);this.id=e}get chargeTemplateId(){return this._chargeTemplateId}set chargeTemplateId(e){this._chargeTemplateId=e,vr("vhChargeTemplateId",e,this.id)}updateChargeTemplateId(e){this._chargeTemplateId=e}get evTemplateId(){return this._evTemplateId}set evTemplateId(e){this._evTemplateId=e,vr("vhEvTemplateId",e,this.id)}updateEvTemplateId(e){this._evTemplateId=e}get chargepoint(){for(const e of Object.values(Ge))if(e.connectedVehicle==this.id)return e}get visible(){return this.name!="__invalid"&&(this.id!=0||_e.showStandardVehicle)}}const Ge=Dt({}),dt=Dt({}),pg=Dt({}),vB=Dt({});function _B(t){if(!(t in Ge)){Ge[t]=new yB(t);const e="var(--color-cp"+(Object.values(Ge).length-1)+")";Ge[t].color=e;const r="cp"+t;Vt[r]?Vt["cp"+t].color=e:Vt[r]={name:"Ladepunkt",color:e,icon:"Ladepunkt"}}}function EB(){Object.keys(Ge).forEach(t=>{delete Ge[parseInt(t)]})}const rr=we(()=>{const t=[],e=Object.values(Ge),r=Object.values(dt).filter(i=>i.visible);let n=-1;switch(e.length){case 0:n=r[0]?r[0].id:-1;break;default:n=e[0].connectedVehicle}let s=-1;switch(e.length){case 0:case 1:s=r[0]?r[0].id:-1;break;default:s=e[1].connectedVehicle}return n==s&&(s=r[1]?r[1].id:-1),n!=-1&&t.push(n),s!=-1&&t.push(s),t}),Lm=[{name:"keine",id:"none"},{name:"Ladestand",id:"soc"},{name:"Energie",id:"amount"}],kS={cpLock:"openWB/set/chargepoint/%/set/manual_lock",chargeMode:"openWB/set/vehicle/template/charge_template/%/chargemode/selected",cpPriority:"openWB/set/vehicle/template/charge_template/%/prio",cpTimedCharging:"openWB/set/vehicle/template/charge_template/%/time_charging/active",pvBatteryPriority:"openWB/set/general/chargemode_config/pv_charging/bat_mode",cpVehicle:"openWB/set/chargepoint/%/config/ev",cpInstantChargeLimitMode:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/selected",cpInstantTargetCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/current",cpInstantTargetSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/soc",cpInstantMaxEnergy:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/amount",cpPvFeedInLimit:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/feed_in_limit",cpPvMinCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_current",cpPvMaxSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/max_soc",cpPvMinSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc",cpPvMinSocCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc_current",cpEtMaxPrice:"openWB/set/vehicle/template/charge_template/%/et/max_price",vhChargeTemplateId:"openWB/set/vehicle/%/charge_template",vhEvTemplateId:"openWB/set/vehicle/%/ev_template",shSetManual:"openWB/set/LegacySmartHome/config/set/Devices/%/mode",shSwitchOn:"openWB/set/LegacySmartHome/config/set/Devices/%/device_manual_control",socUpdate:"openWB/set/vehicle/%/get/force_soc_update",setSoc:"openWB/set/vehicle/%/soc_module/calculated_soc_state/manual_soc",priceCharging:"openWB/set/vehicle/template/charge_template/%/et/active",chargeTemplate:"openWB/set/chargepoint/%/set/charge_template"};function vr(t,e,r=0){if(isNaN(r)){console.warn("Invalid index");return}let n=kS[t];if(!n){console.warn("No topic for update type "+t);return}switch(t){default:n=n.replace("%",String(r))}switch(typeof e){case"number":Sc(n,JSON.stringify(+e));break;default:Sc(n,JSON.stringify(e))}}function Rm(t){Sc("openWB/set/command/"+Om()+"/todo",JSON.stringify(t))}function Ft(t){Sc(kS.chargeTemplate.replace("%",String(t)),JSON.stringify(Ge[t].chargeTemplate))}const Tr=500,tn=500,it={top:15,right:20,bottom:10,left:25},Bm=["charging","house","batIn","devices"];class SB{constructor(){ve(this,"data",[]);ve(this,"_graphMode","");ve(this,"waitForData",!0)}get graphMode(){return this._graphMode}set graphMode(e){this._graphMode=e}}const Ae=Dt(new SB),PS=ct(gm),Zi=we(()=>[0,Tr-it.left-2*it.right].map(t=>PS.value.applyX(t)));let yl=!0,Ko=!0;function yv(){yl=!1}function wv(){yl=!0}function vv(){Ko=!1}function _v(){Ko=!0}function xB(t){Ko=t}function Ol(t){Ae.data=t,Ae.waitForData=!1}const Jt=Dt({refreshTopicPrefix:"openWB/graph/alllivevaluesJson",updateTopic:"openWB/graph/lastlivevaluesJson",configTopic:"openWB/graph/config/#",initialized:!1,initCounter:0,graphRefreshCounter:0,rawDataPacks:[],duration:0,activate(t){this.unsubscribeUpdates(),this.subscribeRefresh(),t&&(Ae.data=[]),Ae.waitForData=!0,js(this.configTopic),this.initialized=!1,this.initCounter=0,this.graphRefreshCounter=0,this.rawDataPacks=[],MB(),Xo.value=!0},deactivate(){this.unsubscribeRefresh(),this.unsubscribeUpdates(),Vo(this.configTopic)},subscribeRefresh(){for(let t=1;t<17;t++)js(this.refreshTopicPrefix+t)},unsubscribeRefresh(){for(let t=1;t<17;t++)Vo(this.refreshTopicPrefix+t)},subscribeUpdates(){js(this.updateTopic)},unsubscribeUpdates(){Vo(this.updateTopic)}}),Ht=Dt({topic:"openWB/log/daily/#",date:new Date,activate(t){if(Ae.graphMode=="day"||Ae.graphMode=="today"){Ae.graphMode=="today"&&(this.date=new Date);const e=this.date.getFullYear().toString()+(this.date.getMonth()+1).toString().padStart(2,"0")+this.date.getDate().toString().padStart(2,"0");this.topic="openWB/log/daily/"+e,js(this.topic),t&&(Ae.data=[]),Ae.waitForData=!0,Rm({command:"getDailyLog",data:{date:e}})}},deactivate(){Vo(this.topic)},back(){this.date=new Date(this.date.setTime(this.date.getTime()-864e5))},forward(){this.date=new Date(this.date.setTime(this.date.getTime()+864e5))},setDate(t){this.date=t},getDate(){return this.date}}),Bn=Dt({topic:"openWB/log/monthly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(t){const e=this.year.toString()+this.month.toString().padStart(2,"0");Ae.data=[],js(this.topic),t&&(Ae.data=[]),Ae.waitForData=!0,Rm({command:"getMonthlyLog",data:{date:e}})},deactivate(){Vo(this.topic)},back(){this.month-=1,this.month<1&&(this.month=12,this.year-=1),this.activate()},forward(){const t=new Date;t.getFullYear()==this.year?this.month-112&&(this.month=1,this.year+=1)),this.activate()},getDate(){return new Date(this.year,this.month)}}),Ki=Dt({topic:"openWB/log/yearly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(t){const e=this.year.toString();js(this.topic),t&&(Ae.data=[]),Ae.waitForData=!0,Rm({command:"getYearlyLog",data:{date:e}})},deactivate(){Vo(this.topic)},back(){this.year-=1,this.activate()},forward(){this.year0&&(qe.items[t].energyPv+=1e3/12*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),qe.items[t].energyBat+=1e3/12*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}function CB(t,e){e[t]>0&&(qe.items[t].energyPv+=1e3*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),qe.items[t].energyBat+=1e3*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}const IB=["evuIn","pv","batOut","evuOut"],es=ct(!1);function $m(t,e){Object.entries(t).length>0?(es.value=!1,Object.entries(t.counter).forEach(([r,n])=>{(e.length==0||e.includes(r))&&(qe.items.evuIn.energy+=n.energy_imported,qe.items.evuOut.energy+=n.energy_exported)}),qe.items.pv.energy=t.pv.all.energy_exported,t.bat.all&&(qe.items.batIn.energy=t.bat.all.energy_imported,qe.items.batOut.energy=t.bat.all.energy_exported),Object.entries(t.cp).forEach(([r,n])=>{r=="all"?(qe.setEnergy("charging",n.energy_imported),n.energy_imported_pv!=null&&(qe.setEnergyPv("charging",n.energy_imported_pv),qe.setEnergyBat("charging",n.energy_imported_bat))):qe.setEnergy(r,n.energy_imported)}),qe.setEnergy("devices",0),Object.entries(t.sh).forEach(([r,n])=>{qe.setEnergy(r,n.energy_imported);const s=r.substring(2);St.get(+s).countAsHouse||(qe.items.devices.energy+=n.energy_imported)}),t.hc&&t.hc.all?(qe.setEnergy("house",t.hc.all.energy_imported),t.hc.all.energy_imported_pv!=null&&(qe.setEnergyPv("house",t.hc.all.energy_imported_pv),qe.setEnergyBat("house",t.hc.all.energy_imported_bat))):qe.calculateHouseEnergy(),qe.keys().forEach(r=>{IB.includes(r)||(qe.setPvPercentage(r,Math.round((qe.items[r].energyPv+qe.items[r].energyBat)/qe.items[r].energy*100)),Bm.includes(r)&&(tt[r].energy=qe.items[r].energy,tt[r].energyPv=qe.items[r].energyPv,tt[r].energyBat=qe.items[r].energyBat,tt[r].pvPercentage=qe.items[r].pvPercentage))}),Ae.graphMode=="today"&&(Object.values(Ge).forEach(r=>{const n=qe.items["cp"+r.id];n&&(r.energyPv=n.energyPv,r.energyBat=n.energyBat,r.pvPercentage=n.pvPercentage)}),St.forEach(r=>{const n=qe.items["sh"+r.id];n&&(r.energy=n.energy,r.energyPv=n.energyPv,r.energyBat=n.energyBat,r.pvPercentage=n.pvPercentage)}))):es.value=!0,Xo.value=!0}const En=we(()=>{const t=Tn(Ae.data,e=>new Date(e.date));return t[0]&&t[1]?Hh().domain(t).range([0,Tr-it.left-2*it.right]):Xs().range([0,0])});function MB(){qe.keys().forEach(t=>{Bm.includes(t)&&(tt[t].energy=qe.items[t].energy,tt[t].energyPv=0,tt[t].energyBat=0,tt[t].pvPercentage=0)}),Object.values(Ge).forEach(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0}),St.forEach(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0})}const Xi=we(()=>{const t=Tn(Ae.data,e=>e.date);return t[1]?gl().domain(Array.from({length:t[1]},(e,r)=>r+1)).paddingInner(.4).range([0,Tr-it.left-2]):gl().range([0,0])});function af(){switch(Ae.graphMode){case"live":Ae.graphMode="today",_e.showRightButton=!0,nr();break;case"today":Ae.graphMode="day",Ht.deactivate(),Ht.back(),Ht.activate(),nr();break;case"day":Ht.back(),nr();break;case"month":Bn.back();break;case"year":Ki.back();break}}function Nm(){const t=new Date;switch(Ae.graphMode){case"live":break;case"today":Ae.graphMode="live",_e.showRightButton=!1,nr();break;case"day":Ht.forward(),Ht.date.getDate()==t.getDate()&&Ht.date.getMonth()==t.getMonth()&&Ht.date.getFullYear()==t.getFullYear()&&(Ae.graphMode="today"),nr();break;case"month":Bn.forward();break;case"year":Ki.forward();break}}function Dm(){switch(Ae.graphMode){case"live":af();break;case"day":case"today":Ae.graphMode="month",nr();break;case"month":Ae.graphMode="year",nr();break}}function Um(){switch(Ae.graphMode){case"year":Ae.graphMode="month",nr();break;case"month":Ae.graphMode="today",nr();break;case"today":case"day":Ae.graphMode="live",nr();break}}function Ev(t){if(Ae.graphMode=="day"||Ae.graphMode=="today"){Ht.setDate(t);const e=new Date;Ht.date.getDate()==e.getDate()&&Ht.date.getMonth()==e.getMonth()&&Ht.date.getFullYear()==e.getFullYear()?Ae.graphMode="today":Ae.graphMode="day",nr()}}const li=ct(new Map);let kB=class{constructor(){ve(this,"_showRelativeArcs",!1);ve(this,"showTodayGraph",!0);ve(this,"_graphPreference","today");ve(this,"_usageStackOrder",0);ve(this,"_displayMode","dark");ve(this,"_showGrid",!1);ve(this,"_smartHomeColors","normal");ve(this,"_decimalPlaces",1);ve(this,"_showQuickAccess",!0);ve(this,"_simpleCpList",!1);ve(this,"_shortCpList","no");ve(this,"_showAnimations",!0);ve(this,"_preferWideBoxes",!1);ve(this,"_maxPower",4e3);ve(this,"_fluidDisplay",!1);ve(this,"_showClock","no");ve(this,"_showButtonBar",!0);ve(this,"_showCounters",!1);ve(this,"_showVehicles",!1);ve(this,"_showStandardVehicle",!0);ve(this,"_showPrices",!1);ve(this,"_showInverters",!1);ve(this,"_alternativeEnergy",!1);ve(this,"_sslPrefs",!1);ve(this,"_debug",!1);ve(this,"_lowerPriceBound",0);ve(this,"_upperPriceBound",0);ve(this,"_showPmLabels",!0);ve(this,"isEtEnabled",!1);ve(this,"etPrice",20.5);ve(this,"showRightButton",!0);ve(this,"showLeftButton",!0);ve(this,"animationDuration",300);ve(this,"animationDelay",100);ve(this,"zoomGraph",!1);ve(this,"zoomedWidget",1)}get showRelativeArcs(){return this._showRelativeArcs}set showRelativeArcs(e){this._showRelativeArcs=e,Et()}setShowRelativeArcs(e){this._showRelativeArcs=e}get graphPreference(){return this._graphPreference}set graphPreference(e){this._graphPreference=e,Et()}setGraphPreference(e){this._graphPreference=e}get usageStackOrder(){return this._usageStackOrder}set usageStackOrder(e){this._usageStackOrder=e,Et()}setUsageStackOrder(e){this._usageStackOrder=e}get displayMode(){return this._displayMode}set displayMode(e){this._displayMode=e,RB(e)}setDisplayMode(e){this._displayMode=e}get showGrid(){return this._showGrid}set showGrid(e){this._showGrid=e,Et()}setShowGrid(e){this._showGrid=e}get decimalPlaces(){return this._decimalPlaces}set decimalPlaces(e){this._decimalPlaces=e,Et()}setDecimalPlaces(e){this._decimalPlaces=e}get smartHomeColors(){return this._smartHomeColors}set smartHomeColors(e){this._smartHomeColors=e,Sv(e),Et()}setSmartHomeColors(e){this._smartHomeColors=e,Sv(e)}get showQuickAccess(){return this._showQuickAccess}set showQuickAccess(e){this._showQuickAccess=e,Et()}setShowQuickAccess(e){this._showQuickAccess=e}get simpleCpList(){return this._simpleCpList}set simpleCpList(e){this._simpleCpList=e,Et()}setSimpleCpList(e){this._simpleCpList=e}get shortCpList(){return this._shortCpList}set shortCpList(e){this._shortCpList=e,Et()}setShortCpList(e){this._shortCpList=e}get showAnimations(){return this._showAnimations}set showAnimations(e){this._showAnimations=e,Et()}setShowAnimations(e){this._showAnimations=e}get preferWideBoxes(){return this._preferWideBoxes}set preferWideBoxes(e){this._preferWideBoxes=e,Et()}setPreferWideBoxes(e){this._preferWideBoxes=e}get maxPower(){return this._maxPower}set maxPower(e){this._maxPower=e,Et()}setMaxPower(e){this._maxPower=e}get fluidDisplay(){return this._fluidDisplay}set fluidDisplay(e){this._fluidDisplay=e,Et()}setFluidDisplay(e){this._fluidDisplay=e}get showClock(){return this._showClock}set showClock(e){this._showClock=e,Et()}setShowClock(e){this._showClock=e}get sslPrefs(){return this._sslPrefs}set sslPrefs(e){this._sslPrefs=e,Et()}setSslPrefs(e){this.sslPrefs=e}get debug(){return this._debug}set debug(e){this._debug=e,Et()}setDebug(e){this._debug=e}get showButtonBar(){return this._showButtonBar}set showButtonBar(e){this._showButtonBar=e,Et()}setShowButtonBar(e){this._showButtonBar=e}get showCounters(){return this._showCounters}set showCounters(e){this._showCounters=e,Et()}setShowCounters(e){this._showCounters=e}get showVehicles(){return this._showVehicles}set showVehicles(e){this._showVehicles=e,Et()}setShowVehicles(e){this._showVehicles=e}get showStandardVehicle(){return this._showStandardVehicle}set showStandardVehicle(e){this._showStandardVehicle=e,Et()}setShowStandardVehicle(e){this._showStandardVehicle=e}get showPrices(){return this._showPrices}set showPrices(e){this._showPrices=e,Et()}setShowPrices(e){this._showPrices=e}get showInverters(){return this._showInverters}set showInverters(e){this._showInverters=e,wv(),_v(),Et()}setShowInverters(e){this._showInverters=e}get alternativeEnergy(){return this._alternativeEnergy}set alternativeEnergy(e){this._alternativeEnergy=e,wv(),_v(),Et()}setAlternativeEnergy(e){this._alternativeEnergy=e}get lowerPriceBound(){return this._lowerPriceBound}set lowerPriceBound(e){this._lowerPriceBound=e,Et()}setLowerPriceBound(e){this._lowerPriceBound=e}get upperPriceBound(){return this._upperPriceBound}set upperPriceBound(e){this._upperPriceBound=e,Et()}setUpperPriceBound(e){this._upperPriceBound=e}get showPmLabels(){return this._showPmLabels}set showPmLabels(e){this._showPmLabels=e,Et()}setShowPmLabels(e){this._showPmLabels=e}};const _e=Dt(new kB);function OS(){NB();const t=Ct("html");t.classed("theme-dark",_e.displayMode=="dark"),t.classed("theme-light",_e.displayMode=="light"),t.classed("theme-blue",_e.displayMode=="blue"),t.classed("shcolors-standard",_e.smartHomeColors=="standard"),t.classed("shcolors-advanced",_e.smartHomeColors=="advanced"),t.classed("shcolors-normal",_e.smartHomeColors=="normal")}const PB=992,xc=Dt({x:document.documentElement.clientWidth,y:document.documentElement.clientHeight});function OB(){xc.x=document.documentElement.clientWidth,xc.y=document.documentElement.clientHeight,OS()}const jn=we(()=>xc.x>=PB),yr={instant_charging:{mode:Hr.instant_charging,name:"Sofort",color:"var(--color-charging)",icon:"fa-bolt"},pv_charging:{mode:Hr.pv_charging,name:"PV",color:"var(--color-pv)",icon:"fa-solar-panel"},scheduled_charging:{mode:Hr.scheduled_charging,name:"Zielladen",color:"var(--color-battery)",icon:"fa-bullseye"},eco_charging:{mode:Hr.eco_charging,name:"Eco",color:"var(--color-devices)",icon:"fa-coins"},stop:{mode:Hr.stop,name:"Stop",color:"var(--color-fg)",icon:"fa-power-off"}};class LB{constructor(){ve(this,"batterySoc",0);ve(this,"isBatteryConfigured",!0);ve(this,"chargeMode","0");ve(this,"_pvBatteryPriority","ev_mode");ve(this,"displayLiveGraph",!0);ve(this,"isEtEnabled",!0);ve(this,"etMaxPrice",0);ve(this,"etCurrentPrice",0);ve(this,"cpDailyExported",0);ve(this,"evuId",0);ve(this,"etProvider","")}get pvBatteryPriority(){return this._pvBatteryPriority}set pvBatteryPriority(e){this._pvBatteryPriority=e,vr("pvBatteryPriority",e)}updatePvBatteryPriority(e){this._pvBatteryPriority=e}}function Et(){$B()}function RB(t){const e=Ct("html");e.classed("theme-dark",t=="dark"),e.classed("theme-light",t=="light"),e.classed("theme-blue",t=="blue"),Et()}function BB(){_e.maxPower=ot.evuIn.power+ot.pv.power+ot.batOut.power,Et()}function Sv(t){const e=Ct("html");e.classed("shcolors-normal",t=="normal"),e.classed("shcolors-standard",t=="standard"),e.classed("shcolors-advanced",t=="advanced")}const Gi={chargemode:"Der Lademodus für das Fahrzeug an diesem Ladepunkt",vehicle:"Das Fahrzeug, das an diesem Ladepounkt geladen wird",locked:"Für das Laden sperren",priority:"Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar",timeplan:"Das Laden nach Zeitplan für dieses Fahrzeug aktivieren",minsoc:"Immer mindestens bis zum eingestellten Ladestand laden. Wenn notwendig mit Netzstrom.",minpv:"Durchgehend mit mindestens dem eingestellten Strom laden. Wenn notwendig mit Netzstrom.",pricebased:"Laden bei dynamischem Stromtarif, wenn eingestellter Maximalpreis unterboten wird.",pvpriority:"Ladepriorität bei PV-Produktion. Bevorzung von Fahzeugen, Speicher, oder Fahrzeugen bis zum eingestellten Mindest-Ladestand. Die Einstellung ist für alle Ladepunkte gleich."};function $B(){const t={};t.hideSH=[...St.values()].filter(e=>!e.showInGraph).map(e=>e.id),t.showLG=_e.graphPreference=="live",t.displayM=_e.displayMode,t.stackO=_e.usageStackOrder,t.showGr=_e.showGrid,t.decimalP=_e.decimalPlaces,t.smartHomeC=_e.smartHomeColors,t.relPM=_e.showRelativeArcs,t.maxPow=_e.maxPower,t.showQA=_e.showQuickAccess,t.simpleCP=_e.simpleCpList,t.shortCP=_e.shortCpList,t.animation=_e.showAnimations,t.wideB=_e.preferWideBoxes,t.fluidD=_e.fluidDisplay,t.clock=_e.showClock,t.showButtonBar=_e.showButtonBar,t.showCounters=_e.showCounters,t.showVehicles=_e.showVehicles,t.showStandardV=_e.showStandardVehicle,t.showPrices=_e.showPrices,t.showInv=_e.showInverters,t.altEngy=_e.alternativeEnergy,t.lowerP=_e.lowerPriceBound,t.upperP=_e.upperPriceBound,t.sslPrefs=_e.sslPrefs,t.pmLabels=_e.showPmLabels,t.debug=_e.debug,document.cookie="openWBColorTheme="+JSON.stringify(t)+";max-age=16000000;"+(_e.sslPrefs?"SameSite=None;Secure":"SameSite=Strict")}function NB(){const e=document.cookie.split(";").filter(r=>r.split("=")[0]==="openWBColorTheme");if(e.length>0){const r=JSON.parse(e[0].split("=")[1]);r.decimalP!==void 0&&_e.setDecimalPlaces(+r.decimalP),r.smartHomeC!==void 0&&_e.setSmartHomeColors(r.smartHomeC),r.hideSH!==void 0&&r.hideSH.forEach(n=>{St.get(n)==null&&mm(n),St.get(n).setShowInGraph(!1)}),r.showLG!==void 0&&_e.setGraphPreference(r.showLG?"live":"today"),r.maxPow!==void 0&&_e.setMaxPower(+r.maxPow),r.relPM!==void 0&&_e.setShowRelativeArcs(r.relPM),r.displayM!==void 0&&_e.setDisplayMode(r.displayM),r.stackO!==void 0&&_e.setUsageStackOrder(r.stackO),r.showGr!==void 0&&_e.setShowGrid(r.showGr),r.showQA!==void 0&&_e.setShowQuickAccess(r.showQA),r.simpleCP!==void 0&&_e.setSimpleCpList(r.simpleCP),r.shortCP!==void 0&&_e.setShortCpList(r.shortCP),r.animation!=null&&_e.setShowAnimations(r.animation),r.wideB!=null&&_e.setPreferWideBoxes(r.wideB),r.fluidD!=null&&_e.setFluidDisplay(r.fluidD),r.clock!=null&&_e.setShowClock(r.clock),r.showButtonBar!==void 0&&_e.setShowButtonBar(r.showButtonBar),r.showCounters!==void 0&&_e.setShowCounters(r.showCounters),r.showVehicles!==void 0&&_e.setShowVehicles(r.showVehicles),r.showStandardV!==void 0&&_e.setShowStandardVehicle(r.showStandardV),r.showPrices!==void 0&&_e.setShowPrices(r.showPrices),r.showInv!==void 0&&_e.setShowInverters(r.showInv),r.altEngy!==void 0&&_e.setAlternativeEnergy(r.altEngy),r.lowerP!==void 0&&_e.setLowerPriceBound(r.lowerP),r.upperP!==void 0&&_e.setUpperPriceBound(r.upperP),r.sslPrefs!==void 0&&_e.setSslPrefs(r.sslPrefs),r.pmLabels!==void 0&&_e.setShowPmLabels(r.pmLabels),r.debug!==void 0&&_e.setDebug(r.debug)}}const Vt=Dt({evuIn:{name:"Netz",color:"var(--color-evu)",icon:""},pv:{name:"PV",color:"var(--color-pv",icon:""},batOut:{name:"Bat >",color:"var(--color-battery)",icon:""},evuOut:{name:"Export",color:"var(--color-export)",icon:""},charging:{name:"Laden",color:"var(--color-charging)",icon:""},devices:{name:"Geräte",color:"var(--color-devices)",icon:""},batIn:{name:"> Bat",color:"var(--color-battery)",icon:""},house:{name:"Haus",color:"var(--color-house)",icon:""},cp1:{name:"Ladepunkt",color:"var(--color-cp1)",icon:"Ladepunkt"},cp2:{name:"Ladepunkt",color:"var(--color-cp2)",icon:"Ladepunkt"},cp3:{name:"Ladepunkt",color:"var(--color-cp3)",icon:"Ladepunkt"},cp4:{name:"Ladepunkt",color:"var(--color-cp4)",icon:"Ladepunkt"},cp5:{name:"Ladepunkt",color:"var(--color-cp5)",icon:"Ladepunkt"},cp6:{name:"Ladepunkt",color:"var(--color-cp6)",icon:"Ladepunkt"},cp7:{name:"Ladepunkt",color:"var(--color-cp7)",icon:"Ladepunkt"},cp8:{name:"Ladepunkt",color:"var(--color-cp8)",icon:"Ladepunkt"},sh1:{name:"Gerät",color:"var(--color-sh1)",icon:"Gerät"},sh2:{name:"Gerät",color:"var(--color-sh2)",icon:"Gerät"},sh3:{name:"Gerät",color:"var(--color-sh3)",icon:"Gerät"},sh4:{name:"Gerät",color:"var(--color-sh4)",icon:"Gerät"},sh5:{name:"Gerät",color:"var(--color-sh5)",icon:"Gerät"},sh6:{name:"Gerät",color:"var(--color-sh6)",icon:"Gerät"},sh7:{name:"Gerät",color:"var(--color-sh7)",icon:"Gerät"},sh8:{name:"Gerät",color:"var(--color-sh8)",icon:"Gerät"},sh9:{name:"Gerät",color:"var(--color-sh9)",icon:"Gerät"},pv1:{name:"PV",color:"var(--color-pv1)",icon:"Wechselrichter"},pv2:{name:"PV",color:"var(--color-pv2)",icon:"Wechselrichter"},pv3:{name:"PV",color:"var(--color-pv3)",icon:"Wechselrichter"},pv4:{name:"PV",color:"var(--color-pv4)",icon:"Wechselrichter"},pv5:{name:"PV",color:"var(--color-pv5)",icon:"Wechselrichter"},pv6:{name:"PV",color:"var(--color-pv6)",icon:"Wechselrichter"},pv7:{name:"PV",color:"var(--color-pv7)",icon:"Wechselrichter"},pv8:{name:"PV",color:"var(--color-pv8)",icon:"Wechselrichter"},pv9:{name:"PV",color:"var(--color-pv9)",icon:"Wechselrichter"},bat1:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat2:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat3:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat4:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat5:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat6:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat7:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat8:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat9:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"}});class LS{constructor(){ve(this,"_items",{});this.addItem("evuIn"),this.addItem("pv"),this.addItem("batOut"),this.addItem("evuOut"),this.addItem("charging"),this.addItem("devices"),this.addItem("batIn"),this.addItem("house")}get items(){return this._items}keys(){return Object.keys(this._items)}values(){return Object.values(this._items)}addItem(e,r,n){let s;if(r)s=r;else switch(e){case"evuIn":s=pt.counter;break;case"pv":s=pt.inverter;break;case"batOut":s=pt.battery;break;case"evuOut":s=pt.counter;break;case"charging":s=pt.chargepoint;break;case"devices":s=pt.device;break;case"batIn":s=pt.battery;break;case"house":s=pt.house;break;default:s=pt.counter}this._items[e]=n?$n(e,s,n):$n(e,s)}setEnergy(e,r){this.keys().includes(e)||this.addItem(e),this._items[e].energy=r}setEnergyPv(e,r){this.keys().includes(e)||this.addItem(e),this._items[e].energyPv=r}setEnergyBat(e,r){this.keys().includes(e)||this.addItem(e),this._items[e].energyBat=r}setPvPercentage(e,r){this.keys().includes(e)||this.addItem(e),this._items[e].pvPercentage=r<=100?r:100}calculateHouseEnergy(){this._items.house.energy=this._items.evuIn.energy+this._items.pv.energy+this._items.batOut.energy-this._items.evuOut.energy-this._items.batIn.energy-this._items.charging.energy-this._items.devices.energy}}let qe=Dt(new LS);function Fm(){qe=new LS}const ot=Dt({evuIn:$n("evuIn",pt.counter),pv:$n("pv",pt.pvSummary),batOut:$n("batOut",pt.batterySummary)}),tt=Dt({evuOut:$n("evuOut",pt.counter),charging:$n("charging",pt.chargeSummary),devices:$n("devices",pt.deviceSummary),batIn:$n("batIn",pt.batterySummary),house:$n("house",pt.house)}),Yt=Dt(new LB);ct("");const Xo=ct(!1);function $n(t,e,r){return{name:Vt[t]?Vt[t].name:"item",type:e,power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:r||(Vt[t]?Vt[t].color:"var(--color-charging)"),icon:Vt[t]?Vt[t].icon:"",showInGraph:!0}}const gg=ct(new Date),ar=ct(new Map),DB=t=>{ar.value.set(t,new S1(t)),UB()};function UB(){[...ar.value.values()].sort((e,r)=>e.id-r.id).forEach((e,r)=>{e.color=Vt["pv"+(r+1)].color})}class FB{constructor(e){ve(this,"id");ve(this,"name","Speicher");ve(this,"type",pt.battery);ve(this,"color","var(--color-battery)");ve(this,"dailyYieldExport",0);ve(this,"dailyYieldImport",0);ve(this,"monthlyYieldExport",0);ve(this,"monthlyYieldImport",0);ve(this,"yearlyYieldExport",0);ve(this,"yearlyYieldImport",0);ve(this,"exported",0);ve(this,"faultState",0);ve(this,"faultStr","");ve(this,"imported",0);ve(this,"power",0);ve(this,"soc",0);ve(this,"energy",0);ve(this,"energyPv",0);ve(this,"energyBat",0);ve(this,"pvPercentage",0);ve(this,"showInGraph",!0);ve(this,"icon","Speicher");this.id=e}}class VB{constructor(){ve(this,"dailyExport",0);ve(this,"dailyImport",0);ve(this,"exported",0);ve(this,"imported",0);ve(this,"power",0);ve(this,"soc",0)}}Dt(new VB);const kt=ct(new Map),RS=t=>{kt.value.set(t,new FB(t)),kt.value.get(t).color=Vt["bat"+kt.value.size].color};function jB(){kt.value=new Map}function Yr(t,e=1){let r;if(t>=1e3&&e<4){switch(e){case 0:r=Math.round(t/1e3);break;case 1:r=Math.round(t/100)/10;break;case 2:r=Math.round(t/10)/100;break;case 3:r=Math.round(t)/1e3;break;default:r=Math.round(t/100)/10;break}return(r==null?void 0:r.toLocaleString(void 0,{minimumFractionDigits:e}))+" kW"}else return Math.round(t).toLocaleString()+" W"}function Mi(t,e=1,r=!1){let n;if(t>1e6&&(r=!0,t=t/1e3),t>=1e3&&e<4){switch(e){case 0:n=Math.round(t/1e3);break;case 1:n=Math.round(t/100)/10;break;case 2:n=Math.round(t/10)/100;break;case 3:n=Math.round(t)/1e3;break;default:n=Math.round(t/100)/10;break}return n.toLocaleString(void 0,{minimumFractionDigits:e})+(r?" MWh":" kWh")}else return Math.round(t).toLocaleString()+(r?" kWh":" Wh")}function WB(t){const e=Math.floor(t/3600),r=(t%3600/60).toFixed(0);return e>0?e+"h "+r+" min":r+" min"}function BS(t){return t.toLocaleTimeString(["de-DE"],{hour:"2-digit",minute:"2-digit"})}function zB(t,e){return["Jan","Feb","März","April","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Dez"][t]+" "+e}function HB(t){return t!=999?(Math.round(t*10)/10).toLocaleString(void 0,{minimumFractionDigits:1})+"°":"-"}function qB(t){const e=document.documentElement,r=getComputedStyle(e);t=t.slice(4,-1);const n=r.getPropertyValue(t).trim(),s=parseInt(n.slice(1,3),16),i=parseInt(n.slice(3,5),16),a=parseInt(n.slice(5,7),16);return(s*299+i*587+a*114)/1e3>125?"black":"white"}const GB={y:"0",class:"popup-title"},YB={dy:"1em",x:"0",class:"popup-content"},KB=je({__name:"PMPopup",props:{consumer:{}},setup(t){const e=t;function r(n){return n.length>8?n.substring(0,8)+".":n}return(n,s)=>(ae(),Ee("g",null,[z("rect",{x:"-40",y:"-17",rx:"10",ry:"10",width:"80",height:"40","corner-radius":"20",filter:"url(#f1)",class:"popup",style:ht({fill:e.consumer.color})},null,4),z("text",{dy:"0",x:"0",y:"0",class:"popup-textbox",style:ht({fill:se(qB)(e.consumer.color)})},[z("tspan",GB,ke(r(e.consumer.name)),1),z("tspan",YB,ke(se(Yr)(Math.abs(e.consumer.power))),1)],4)]))}}),Je=(t,e)=>{const r=t.__vccOpts||t;for(const[n,s]of e)r[n]=s;return r},XB=Je(KB,[["__scopeId","data-v-a154651e"]]),QB=["d","fill","stroke"],JB={key:0},ZB=["transform"],e$=10,$S=je({__name:"PMArc",props:{upperArc:{type:Boolean},plotdata:{},radius:{},showLabels:{type:Boolean},categoriesToShow:{}},setup(t){const e=t,r=Math.PI/40,n=we(()=>e.plotdata.length-1),s=we(()=>e.upperArc?Ly().value(l=>Math.abs(l.power)).startAngle(-Math.PI/2+r).endAngle(Math.PI/2-r).sort(null):Ly().value(l=>l.power).startAngle(Math.PI*1.5-r).endAngle(Math.PI/2+r).sort(null)),i=we(()=>m2().innerRadius(e.radius*.87).outerRadius(e.radius).cornerRadius(e$));function a(l,u){return u==n.value?l.data.power>0?"var(--color-scale)":"null":l.data.color}const o=we(()=>e.plotdata.reduce((l,u)=>l+Math.abs(u.power),0));return(l,u)=>(ae(),Ee(Ye,null,[u[0]||(u[0]=z("g",null,[z("defs",null,[z("filter",{id:"f1"},[z("feDropShadow",{dx:"1",dy:"1",rx:"10",ry:"10",stdDeviation:"1","flood-opacity":"0.7","flood-color":"var(--color-axis)"})])])],-1)),(ae(!0),Ee(Ye,null,ft(s.value(e.plotdata.filter(c=>c.power!=0)),(c,f)=>(ae(),Ee("g",{key:c.data.name},[z("path",{d:i.value(c),fill:c.data.color,stroke:a(c,f)},null,8,QB)]))),128)),e.showLabels?(ae(),Ee("g",JB,[(ae(!0),Ee(Ye,null,ft(s.value(l.plotdata.filter(c=>c.power!=0)),c=>(ae(),Ee("g",{key:c.data.name,transform:"translate("+i.value.centroid(c)+")"},[l.categoriesToShow.includes(c.data.type)&&Math.abs(c.data.power)/o.value>.05?(ae(),Re(XB,{key:0,consumer:c.data},null,8,["consumer"])):Me("",!0)],8,ZB))),128))])):Me("",!0)],64))}}),t$=je({__name:"PMSourceArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{},showLabels:{type:Boolean}},setup(t){const e=t,r=[pt.inverter,pt.battery],n=we(()=>({name:"",type:pt.counter,power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:"",showInGraph:!0})),s=we(()=>[ot.evuIn].concat(i.value,a.value,n.value)),i=we(()=>ar.value.size>1?[...ar.value.values()].sort((o,l)=>o.power-l.power):[ot.pv]),a=we(()=>kt.value.size>1?[...kt.value.values()].filter(o=>o.power<0).sort((o,l)=>o.power-l.power):[ot.batOut]);return RA(()=>{let o=ot.pv.power+ot.evuIn.power+ot.batOut.power;o>_e.maxPower&&(_e.maxPower=o)}),(o,l)=>(ae(),Re($S,{"upper-arc":!0,plotdata:s.value,radius:e.radius,"show-labels":e.showLabels,"categories-to-show":r},null,8,["plotdata","radius","show-labels"]))}}),r$=je({__name:"PMUsageArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{},showLabels:{type:Boolean}},setup(t){const e=t,r=[pt.chargepoint,pt.battery,pt.device],n=we(()=>({name:"",type:pt.counter,power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:"",showInGraph:!0})),s=we(()=>[tt.evuOut].concat(i.value,a.value,o.value,tt.house,n.value)),i=we(()=>Object.values(Ge).length>1?Object.values(Ge).sort((l,u)=>u.power-l.power):[tt.charging]),a=we(()=>{let l=0;for(const f of St.values())f.configured&&!f.countAsHouse&&!f.showInGraph&&(l+=f.power);const u={name:"Geräte",type:pt.device,power:l,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-devices)",icon:"",showInGraph:!0};let c=[...St.values()].filter(f=>f.configured);return c.length>1?[u].concat(c.filter(f=>!f.countAsHouse&&f.showInGraph).sort((f,d)=>d.power-f.power)):[tt.devices]}),o=we(()=>kt.value.size>1?[...kt.value.values()].filter(l=>l.power>0).sort((l,u)=>u.power-l.power):[tt.batIn]);return(l,u)=>(ae(),Re($S,{"upper-arc":!1,plotdata:s.value,radius:e.radius,"show-labels":e.showLabels,"categories-to-show":r},null,8,["plotdata","radius","show-labels"]))}}),Ll=je({__name:"FormatWatt",props:{watt:{}},setup(t){const e=t,r=we(()=>Yr(e.watt,_e.decimalPlaces));return(n,s)=>ke(r.value)}}),n$={key:0,id:"pmLabel"},i$=["x","y","fill","text-anchor"],s$=22,Pn=je({__name:"PMLabel",props:{x:{},y:{},data:{},props:{},anchor:{},labeltext:{},labelicon:{},labelcolor:{}},setup(t){const e=t,r=we(()=>e.labeltext?e.labeltext:e.props?e.props.icon+" ":e.labelicon?e.labelicon+" ":""),n=we(()=>e.labelcolor?e.labelcolor:e.props?e.props.color:""),s=we(()=>!e.data||e.data.power>0),i=we(()=>e.labeltext?"":"fas");return(a,o)=>s.value?(ae(),Ee("g",n$,[z("text",{x:a.x,y:a.y,fill:n.value,"text-anchor":a.anchor,"font-size":s$,class:"pmLabel"},[z("tspan",{class:rt(i.value)},ke(r.value),3),z("tspan",null,[a.data!==void 0?(ae(),Re(Ll,{key:0,watt:a.data.power},null,8,["watt"])):Me("",!0)])],8,i$)])):Me("",!0)}}),o$={class:"wb-widget p-0 m-0 shadow"},a$={class:"d-flex justify-content-between"},l$={class:"m-4 me-0 mb-0"},u$={class:"p-4 pb-0 ps-0 m-0",style:{"text-align":"right"}},c$={class:"px-4 pt-4 pb-2 wb-subwidget"},f$={class:"row"},d$={class:"col m-0 p-0"},h$={class:"container-fluid m-0 p-0"},p$={key:0},g$={class:"px-4 py-2 wb-subwidget"},m$={class:"row"},b$={class:"col"},y$={class:"container-fluid m-0 p-0"},Rl=je({__name:"WBWidget",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(t){const e=t,r=we(()=>e.fullWidth?"col-12":e.variableWidth&&_e.preferWideBoxes?"col-lg-6":"col-lg-4");return(n,s)=>(ae(),Ee("div",{class:rt(["p-2 m-0 d-flex",r.value])},[z("div",o$,[z("div",a$,[z("h3",l$,[Gt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))]),Gt(n.$slots,"subtitle")]),z("div",u$,[Gt(n.$slots,"buttons")])]),z("div",c$,[z("div",f$,[z("div",d$,[z("div",h$,[Gt(n.$slots,"default")])])])]),n.$slots.footer!=null?(ae(),Ee("div",p$,[s[1]||(s[1]=z("hr",null,null,-1)),z("div",g$,[z("div",m$,[z("div",b$,[z("div",y$,[Gt(n.$slots,"footer")])])])])])):Me("",!0)])],2))}});class w${constructor(){ve(this,"active",!1);ve(this,"etPriceList",new Map);ve(this,"etProvider","");ve(this,"etMaxPrice",0)}get etCurrentPriceString(){const[e]=Pt.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+" ct"}}const Pt=Dt(new w$),v$={id:"powermeter",class:"p-0 m-0"},_$=["viewBox"],E$=["transform"],S$=["x"],x$=["y"],Ts=500,ti=20,xv=20,T$=je({__name:"PowerMeter",setup(t){const e=Ts,r=Math.PI/40,n=[[4],[4,6],[1,4,6],[0,2,4,6],[0,2,3,5,6]],s=[{x:-85,y:e/2*1/5},{x:0,y:e/2*1/5},{x:85,y:e/2*1/5},{x:-85,y:e/2*2/5},{x:0,y:e/2*2/5},{x:85,y:e/2*2/5},{x:0,y:e/2*3/5}],i=we(()=>Ts/2-ti),a=we(()=>{let v="",w=Object.values(ot).filter(_=>_.power>0);return w.length==1&&w[0].name=="PV"?v="Aktueller Verbrauch: ":v="Bezug/Verbrauch: ",v+Yr(tt.house.power+tt.charging.power+tt.devices.power+tt.batIn.power,_e.decimalPlaces)}),o=we(()=>{let v=ot.pv.power+ot.evuIn.power+ot.batOut.power;return _e.maxPower>v?Yr(_e.maxPower,_e.decimalPlaces):Yr(v,_e.decimalPlaces)}),l=we(()=>Object.values(Ge)),u=we(()=>{let v=0;return _e.showRelativeArcs&&(v=_e.maxPower-(ot.pv.power+ot.evuIn.power+ot.batOut.power)),v<0?0:v}),c=we(()=>[tt.evuOut,tt.charging,tt.devices,tt.batIn,tt.house].filter(v=>v.power>0)),f=we(()=>n[c.value.length-1]);function d(v){return s[f.value[v]]}function p(v){return v.length>12?v.slice(0,11)+".":v}const g=we(()=>{const[v]=Pt.etPriceList.values();return Math.round(v*10)/10});function b(){_e.showPmLabels=!_e.showPmLabels}return(v,w)=>(ae(),Re(Rl,{"full-width":!0},{title:Ie(()=>w[0]||(w[0]=[st(" Aktuelle Leistung ")])),default:Ie(()=>[z("figure",v$,[(ae(),Ee("svg",{viewBox:"0 0 "+Ts+" "+se(e)},[z("g",{transform:"translate("+Ts/2+","+se(e)/2+")"},[xe(t$,{radius:i.value,"corner-radius":xv,"circle-gap-size":r,"empty-power":u.value,"show-labels":se(_e).showPmLabels},null,8,["radius","empty-power","show-labels"]),xe(r$,{radius:i.value,"corner-radius":xv,"circle-gap-size":r,"empty-power":u.value,"show-labels":se(_e).showPmLabels},null,8,["radius","empty-power","show-labels"]),xe(Pn,{x:0,y:-se(e)/10*2,data:se(ot).pv,props:se(Vt).pv,anchor:"middle",config:se(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-se(e)/10*3,data:se(ot).evuIn,props:se(Vt).evuIn,anchor:"middle",config:se(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-se(e)/10,data:se(ot).batOut,props:se(Vt).batOut,anchor:"middle",config:se(_e)},null,8,["y","data","props","config"]),se(Pt).active?(ae(),Re(Pn,{key:0,x:0,y:-se(e)/10,data:se(ot).batOut,props:se(Vt).batOut,anchor:"middle",config:se(_e)},null,8,["y","data","props","config"])):Me("",!0),(ae(!0),Ee(Ye,null,ft(c.value,(_,y)=>(ae(),Re(Pn,{key:y,x:d(y).x,y:d(y).y,data:_,labelicon:_.icon,labelcolor:_.color,anchor:"middle",config:se(_e)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),se(rr)[0]!=null&&se(dt)[se(rr)[0]]!=null?(ae(),Re(Pn,{key:1,x:-500/2-ti/4+10,y:-se(e)/2+ti+5,labeltext:p(se(dt)[se(rr)[0]].name)+": "+Math.round(se(dt)[se(rr)[0]].soc)+"%",labelcolor:l.value[0]?l.value[0].color:"var(--color-charging)",anchor:"start",config:se(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),se(rr)[1]!=null&&se(dt)[se(rr)[1]]!=null?(ae(),Re(Pn,{key:2,x:Ts/2+ti/4-10,y:-se(e)/2+ti+5,labeltext:p(se(dt)[se(rr)[1]].name)+": "+Math.round(se(dt)[se(rr)[1]].soc)+"%",labelcolor:l.value[1]?l.value[1].color:"var(--color-charging)",anchor:"end",config:se(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),se(Yt).batterySoc>0?(ae(),Re(Pn,{key:3,x:-500/2-ti/4+10,y:se(e)/2-ti+15,labeltext:"Speicher: "+se(Yt).batterySoc+"%",labelcolor:se(tt).batIn.color,anchor:"start",config:se(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),se(Pt).active?(ae(),Re(Pn,{key:4,x:Ts/2+ti/4-10,y:se(e)/2-ti+15,value:g.value,labeltext:se(Pt).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:se(_e)},null,8,["x","y","value","labeltext","config"])):Me("",!0),xe(Pn,{x:0,y:0,labeltext:a.value,labelcolor:"var(--color-fg)",anchor:"middle",config:se(_e)},null,8,["labeltext","config"]),se(_e).showRelativeArcs?(ae(),Ee("text",{key:5,x:Ts/2-44,y:"2","text-anchor":"middle",fill:"var(--color-axis)","font-size":"12"}," Peak: "+ke(o.value),9,S$)):Me("",!0),z("text",{x:0,y:se(e)/2*3.8/5,"text-anchor":"middle",fill:"var(--color-menu)","font-size":"28",class:"fas",type:"button",onClick:b},ke(""),8,x$)],8,E$)],8,_$))])]),_:1}))}}),A$=["origin","origin2","transform"],C$=je({__name:"PgSourceGraph",props:{width:{},height:{},margin:{}},setup(t){const e=t,r={house:"var(--color-house)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",pv:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)"};var n,s;const i=_e.showAnimations?_e.animationDuration:0,a=_e.showAnimations?_e.animationDelay:0,o=we(()=>{const x=Ct("g#pgSourceGraph");if(Ae.data.length>0){Ae.graphMode=="month"||Ae.graphMode=="year"?_(x,Xi.value):w(x,En.value),x.selectAll(".axis").remove();const T=x.append("g").attr("class","axis");T.call(g.value),T.selectAll(".tick").attr("font-size",12),T.selectAll(".tick line").attr("stroke",v.value).attr("stroke-width",b.value),T.select(".domain").attr("stroke","var(--color-bg)")}return"pgSourceGraph.vue"}),l=we(()=>E1().value((x,T)=>x[T]??0).keys(f.value)),u=we(()=>l.value(Ae.data)),c=we(()=>Xn().range([e.height-10,0]).domain(Ae.graphMode=="year"?[0,Math.ceil(d.value[1]*10)/10]:[0,Math.ceil(d.value[1])])),f=we(()=>{let x=[];const T=["batOut","evuIn"];if(_e.showInverters){const A=/pv\d+/;Ae.data.length>0&&(x=Object.keys(Ae.data[0]).reduce((C,L)=>(L.match(A)&&C.push(L),C),[]))}switch(Ae.graphMode){case"live":return _e.showInverters?["pv","batOut","evuIn"]:["selfUsage","evuOut","batOut","evuIn"];case"today":case"day":return x.forEach(A=>{var C;r[A]=((C=ar.value.get(+A.slice(2)))==null?void 0:C.color)??"var(--color-pv)"}),_e.showInverters?[...x,...T]:["selfUsage","evuOut","batOut","evuIn"];default:return["evuIn","batOut","selfUsage","evuOut"]}}),d=we(()=>{let x=Tn(Ae.data,T=>Math.max(T.pv+T.evuIn+T.batOut,T.selfUsage+T.evuOut));return x[0]!=null&&x[1]!=null?(Ae.graphMode=="year"&&(x[0]=x[0]/1e3,x[1]=x[1]/1e3),x):[0,0]}),p=we(()=>Ae.graphMode=="month"||Ae.graphMode=="year"?-e.width-e.margin.right-22:-e.width),g=we(()=>Al(c.value).tickSizeInner(p.value).ticks(4).tickFormat(x=>(x==0?"":Math.round(x*10)/10).toLocaleString(void 0))),b=we(()=>_e.showGrid?"0.5":"1"),v=we(()=>_e.showGrid?"var(--color-grid)":"var(--color-bg)");function w(x,T){const A=Do().x((L,j)=>T(Ae.data[j].date)).y(c.value(0)).curve(Uo),C=Do().x((L,j)=>T(Ae.data[j].date)).y0(L=>c.value(Ae.graphMode=="year"?L[0]/1e3:L[0])).y1(L=>c.value(Ae.graphMode=="year"?L[1]/1e3:L[1])).curve(Uo);yl?(x.selectAll("*").remove(),n=x.append("svg").attr("x",0).attr("width",e.width).selectAll(".sourceareas").data(u.value).enter().append("path").attr("fill",(j,R)=>r[f.value[R]]).attr("d",j=>A(j)),n.transition().duration(i).delay(a).ease(el).attr("d",j=>C(j)),yv()):n.data(u.value).transition().duration(0).ease(el).attr("d",L=>C(L))}function _(x,T){Ae.data.length>0&&(yl?(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(u.value).enter().append("g").attr("fill",(A,C)=>r[f.value[C]]).selectAll("rect").data(A=>A).enter().append("rect").attr("x",(A,C)=>T(Ae.data[C].date)??0).attr("y",()=>c.value(0)).attr("height",0).attr("width",T.bandwidth()),s.transition().duration(i).delay(a).ease(el).attr("height",A=>Ae.graphMode=="year"?c.value(A[0]/1e3)-c.value(A[1]/1e3):c.value(A[0])-c.value(A[1])).attr("y",A=>Ae.graphMode=="year"?c.value(A[1]/1e3):c.value(A[1])),yv()):(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(u.value).enter().append("g").attr("fill",(A,C)=>r[f.value[C]]).selectAll("rect").data(A=>A).enter().append("rect").attr("x",(A,C)=>T(Ae.data[C].date)??0).attr("y",A=>Ae.graphMode=="year"?c.value(A[1]/1e3):c.value(A[1])).attr("width",T.bandwidth()).attr("height",A=>Ae.graphMode=="year"?c.value(A[0]/1e3)-c.value(A[1]/1e3):c.value(A[0])-c.value(A[1]))))}const y=we(()=>{const x=Ct("g#pgSourceGraph");if(Ae.graphMode!="month"&&Ae.graphMode!="year"&&Ae.data.length>0){En.value.range(Zi.value);const T=Do().x((A,C)=>En.value(Ae.data[C].date)).y0(A=>c.value(A[0])).y1(A=>c.value(A[1])).curve(Uo);x.selectAll("path").attr("d",A=>A?T(A):""),x.selectAll("g#sourceToolTips").select("rect").attr("x",A=>En.value(A.date)).attr("width",e.width/Ae.data.length)}return"zoomed"});return(x,T)=>(ae(),Ee("g",{id:"pgSourceGraph",origin:o.value,origin2:y.value,transform:"translate("+x.margin.left+","+x.margin.top+")"},null,8,A$))}}),I$=["origin","origin2","transform"],M$=je({__name:"PgUsageGraph",props:{width:{},height:{},margin:{},stackOrder:{}},setup(t){const e=t,r=we(()=>_e.showInverters?[["house","charging","devices","batIn","evuOut"],["charging","devices","batIn","house","evuOut"],["devices","batIn","charging","house","evuOut"],["batIn","charging","house","devices","evuOut"]]:[["house","charging","devices","batIn"],["charging","devices","batIn","house"],["devices","batIn","charging","house"],["batIn","charging","house","devices"]]),n={house:"var(--color-house)",charging:"var(--color-charging)",batIn:"var(--color-battery)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)",cp0:"var(--color-cp0)",cp1:"var(--color-cp1)",cp2:"var(--color-cp2)",cp3:"var(--color-cp3)",sh1:"var(--color-sh1)",sh2:"var(--color-sh2)",sh3:"var(--color-sh3)",sh4:"var(--color-sh4)",devices:"var(--color-devices)"};var s,i;const a=_e.showAnimations?_e.animationDuration:0,o=_e.showAnimations?_e.animationDelay:0,l=we(()=>{const y=Ct("g#pgUsageGraph");Ae.graphMode=="month"||Ae.graphMode=="year"?w(y):v(y),y.selectAll(".axis").remove();const x=y.append("g").attr("class","axis");return x.call(b.value),x.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_e.showGrid?x.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):x.selectAll(".tick line").attr("stroke","var(--color-bg)"),x.select(".domain").attr("stroke","var(--color-bg)"),"pgUsageGraph.vue"}),u=we(()=>E1().value((y,x)=>y[x]??0).keys(d.value)),c=we(()=>u.value(Ae.data)),f=we(()=>Xn().range([e.height+10,2*e.height]).domain(Ae.graphMode=="year"?[0,Math.ceil(p.value[1]*10)/10]:[0,Math.ceil(p.value[1])])),d=we(()=>{if(Ae.graphMode!="today"&&Ae.graphMode!="day"&&Ae.graphMode!="live")return r.value[e.stackOrder];{const y=r.value[e.stackOrder].slice(),x=y.indexOf("charging");y.splice(x,1);const T=/cp\d+/;let A=[];return Ae.data.length>0&&(A=Object.keys(Ae.data[0]).reduce((C,L)=>(L.match(T)&&C.push(L),C),[])),A.forEach((C,L)=>{var j;y.splice(x+L,0,C),n[C]=((j=Ge[+C.slice(2)])==null?void 0:j.color)??"black"}),y}}),p=we(()=>{let y=Tn(Ae.data,x=>x.house+x.charging+x.batIn+x.devices+x.evuOut);return y[0]!=null&&y[1]!=null?(Ae.graphMode=="year"&&(y[0]=y[0]/1e3,y[1]=y[1]/1e3),y):[0,0]}),g=we(()=>Ae.graphMode=="month"||Ae.graphMode=="year"?-e.width-e.margin.right-22:-e.width),b=we(()=>Al(f.value).tickSizeInner(g.value).ticks(4).tickFormat(y=>(y==0?"":Math.round(y*10)/10).toLocaleString(void 0)));function v(y){const x=Do().x((A,C)=>En.value(Ae.data[C].date)).y(f.value(0)).curve(Uo),T=Do().x((A,C)=>En.value(Ae.data[C].date)).y0(A=>f.value(A[0])).y1(A=>f.value(A[1])).curve(Uo);_e.showAnimations?Ko?(y.selectAll("*").remove(),s=y.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(c.value).enter().append("path").attr("d",C=>x(C)).attr("fill",(C,L)=>n[d.value[L]]),s.transition().duration(300).delay(100).ease(el).attr("d",C=>T(C)),vv()):(y.selectAll("*").remove(),y.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(c.value).enter().append("path").attr("d",C=>T(C)).attr("fill",(C,L)=>n[d.value[L]])):(y.selectAll("*").remove(),y.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(c.value).enter().append("path").attr("d",C=>T(C)).attr("fill",(C,L)=>n[d.value[L]]))}function w(y){Ko?(y.selectAll("*").remove(),i=y.selectAll(".usagebar").data(c.value).enter().append("g").attr("fill",(x,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,T)=>Xi.value(Ae.data[T].date)??0).attr("y",()=>f.value(0)).attr("height",0).attr("width",Xi.value.bandwidth()),i.transition().duration(a).delay(o).ease(el).attr("y",x=>Ae.graphMode=="year"?f.value(x[0]/1e3):f.value(x[0])).attr("height",x=>Ae.graphMode=="year"?f.value(x[1]/1e3)-f.value(x[0]/1e3):f.value(x[1])-f.value(x[0])),vv()):(y.selectAll("*").remove(),i=y.selectAll(".usagebar").data(c.value).enter().append("g").attr("fill",(x,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,T)=>Xi.value(Ae.data[T].date)??0).attr("y",x=>Ae.graphMode=="year"?f.value(x[0]/1e3):f.value(x[0])).attr("height",x=>Ae.graphMode=="year"?f.value(x[1]/1e3)-f.value(x[0]/1e3):f.value(x[1])-f.value(x[0])).attr("width",Xi.value.bandwidth()))}const _=we(()=>{const y=Ct("g#pgUsageGraph");if(Ae.graphMode!="month"&&Ae.graphMode!="year"){En.value.range(Zi.value);const x=Do().x((T,A)=>En.value(Ae.data[A].date)).y0(T=>f.value(T[0])).y1(T=>f.value(T[1])).curve(Uo);y.selectAll("path").attr("d",T=>T?x(T):"")}return"zoomed"});return(y,x)=>(ae(),Ee("g",{id:"pgUsageGraph",origin:l.value,origin2:_.value,transform:"translate("+y.margin.left+","+y.margin.top+")"},null,8,I$))}}),k$=["width"],P$=["transform"],O$=["width"],L$=["transform"],R$=["origin","origin2","transform"],B$=["origin","transform"],$$={key:0},N$=["width","height"],D$={key:1},U$=["y","width","height"],Nd=12,F$=je({__name:"PgXAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,r=we(()=>Za(En.value).ticks(6).tickSizeInner(a.value).tickFormat(rs("%H:%M"))),n=we(()=>XC(En.value).ticks(6).tickSizeInner(a.value+3).tickFormat(rs(""))),s=we(()=>Za(Xi.value).ticks(4).tickSizeInner(a.value).tickFormat(c=>c.toString())),i=we(()=>Za(Xi.value).ticks(4).tickSizeInner(a.value).tickFormat(()=>"")),a=we(()=>Ae.graphMode!=="month"&&Ae.graphMode!=="year"?_e.showGrid?-(e.height/2-7):-10:0),o=we(()=>{let c=Ct("g#PGXAxis"),f=Ct("g#PgUnit");return c.selectAll("*").remove(),f.selectAll("*").remove(),Ae.graphMode=="month"||Ae.graphMode=="year"?c.call(s.value):c.call(r.value),c.selectAll(".tick > text").attr("fill",(d,p)=>p>=0||Ae.graphMode=="month"||Ae.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",Nd),_e.showGrid?c.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):c.selectAll(".tick line").attr("stroke","var(--color-bg)"),c.select(".domain").attr("stroke","var(--color-bg)"),f.append("text").attr("x",0).attr("y",12).attr("fill","var(--color-axis)").attr("font-size",Nd).text(Ae.graphMode=="year"?"MWh":Ae.graphMode=="month"?"kWh":"kW").attr("text-anchor","start"),"PGXAxis.vue"}),l=we(()=>{let c=Ct("g#PGXAxis2");return c.selectAll("*").remove(),Ae.graphMode=="month"||Ae.graphMode=="year"?c.call(i.value):c.call(n.value),c.selectAll(".tick > text").attr("fill",(f,d)=>d>=0||Ae.graphMode=="month"||Ae.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",Nd),_e.showGrid?(c.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"),c.select(".domain").attr("stroke","var(--color-bg)")):c.selectAll(".tick line").attr("stroke","var(--color-bg)"),c.select(".domain").attr("stroke","var(--color-bg)"),"PGXAxis2.vue"}),u=we(()=>{if(Ae.graphMode!="month"&&Ae.graphMode!="year"){const c=Ct("g#PGXAxis"),f=Ct("g#PGXAxis2");Ae.graphMode=="month"||Ae.graphMode=="year"?(Xi.value.range(Zi.value),c.call(s.value),f.call(i.value)):(En.value.range(Zi.value),c.call(r.value),f.call(n.value))}return"zoomed"});return(c,f)=>(ae(),Ee(Ye,null,[(ae(),Ee("svg",{x:"0",width:e.width},[z("g",{id:"PgUnit",transform:"translate(0,"+(c.height/2+9)+")"},null,8,P$)],8,k$)),(ae(),Ee("svg",{x:0,width:e.width+10},[z("g",{transform:"translate("+c.margin.left+","+c.margin.top+")"},[z("g",{id:"PGXAxis",class:"axis",origin:o.value,origin2:u.value,transform:"translate(0,"+(c.height/2-6)+")"},null,8,R$),z("g",{id:"PGXAxis2",class:"axis",origin:l.value,transform:"translate(0,"+(c.height/2+-6)+")"},null,8,B$),se(_e).showGrid?(ae(),Ee("g",$$,[z("rect",{x:"0",y:"0",width:c.width,height:c.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,N$)])):Me("",!0),se(_e).showGrid?(ae(),Ee("g",D$,[z("rect",{x:"0",y:c.height/2+10,width:c.width,height:c.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,U$)])):Me("",!0)],8,L$)],8,O$))],64))}}),V$=["width"],j$=["id",".origin","d"],W$=["id","d","stroke"],z$=["x","y","text-anchor"],Dd=je({__name:"PgSoc",props:{width:{},height:{},margin:{},order:{}},setup(t){const e=t,r=we(()=>{let d=Tn(Ae.data,p=>p.date);return d[0]&&d[1]?Xs().domain(d).range([0,e.width]):Xs().range([0,0])}),n=we(()=>Xn().range([e.height-10,0]).domain([0,100])),s=we(()=>{let p=Nn().x(g=>r.value(g.date)).y(g=>n.value(e.order==2?g.batSoc:e.order==0?g["soc"+rr.value[0]]:g["soc"+rr.value[1]])??n.value(0))(Ae.data);return p||""}),i=we(()=>e.order),a=we(()=>{switch(e.order){case 2:return"Speicher";case 1:return dt[rr.value[1]]!=null?dt[rr.value[1]].name:"???";default:return dt[rr.value[0]]!=null?dt[rr.value[0]].name:"???"}}),o=we(()=>{switch(e.order){case 0:return"var(--color-cp1)";case 1:return"var(--color-cp2)";case 2:return"var(--color-battery)";default:return"red"}}),l=we(()=>{switch(e.order){case 0:return 3;case 1:return e.width-3;case 2:return e.width/2;default:return 0}}),u=we(()=>{if(Ae.data.length>0){let d;switch(e.order){case 0:return d=0,n.value(Ae.data[d]["soc"+rr.value[0]]+2);case 1:return d=Ae.data.length-1,Math.max(12,n.value(Ae.data[d]["soc"+rr.value[1]]+2));case 2:return d=Math.round(Ae.data.length/2),n.value(Ae.data[d].batSoc+2);default:return 0}}else return 0}),c=we(()=>{switch(e.order){case 0:return"start";case 1:return"end";case 2:return"middle";default:return"middle"}}),f=we(()=>{if(Ae.graphMode!="month"&&Ae.graphMode!="year"){const d=Ct("path#soc-"+i.value),p=Ct("path#socdashes-"+i.value);r.value.range(Zi.value);const g=Nn().x(b=>r.value(b.date)).y(b=>n.value(e.order==2?b.batSoc:e.order==1?b["soc"+rr.value[0]]:b["soc"+rr.value[1]])??n.value(0));d.attr("d",g(Ae.data)),p.attr("d",g(Ae.data))}return"zoomed"});return(d,p)=>(ae(),Ee("svg",{x:"0",width:e.width},[z("g",null,[z("path",{id:"soc-"+i.value,".origin":f.value,class:"soc-baseline",d:s.value,stroke:"var(--color-bg)","stroke-width":"1",fill:"none"},null,40,j$),z("path",{id:"socdashes-"+i.value,class:"soc-dashes",d:s.value,stroke:o.value,"stroke-width":"1",style:{strokeDasharray:"3,3"},fill:"none"},null,8,W$),z("text",{class:"cpname",x:l.value,y:u.value,style:ht({fill:o.value,fontSize:10}),"text-anchor":c.value},ke(a.value),13,z$)])],8,V$))}}),H$=["transform"],q$=je({__name:"PgSocAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,r=we(()=>Xn().range([e.height-10,0]).domain([0,100])),n=we(()=>QC(r.value).ticks(5).tickFormat(i=>i.toString()+"%"));function s(){let i=Ct("g#PGSocAxis");i.call(n.value),i.selectAll(".tick").attr("font-size",12),i.selectAll(".tick line").attr("stroke","var(--color-bg)"),i.select(".domain").attr("stroke","var(--color-bg)")}return dn(()=>{s()}),(i,a)=>(ae(),Ee("g",{id:"PGSocAxis",class:"axis",transform:"translate("+(i.width-20)+",0)"},null,8,H$))}}),G$={class:"d-flex align-self-top justify-content-center align-items-center"},Y$={class:"input-group input-group-xs"},K$={key:0,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},X$={class:"dropdown-menu"},Q$={class:"table optiontable"},J$=["onClick"],Z$={key:1,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},eN={class:"dropdown-menu"},tN={class:"table optiontable"},rN=["onClick"],nN={key:2,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},iN={class:"dropdown-menu"},sN={class:"table optiontable"},oN=["onClick"],aN=je({__name:"DateInput",props:{modelValue:{type:Date,required:!0},mode:{type:String,default:"day"}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=new Date().getFullYear();let s=Array.from({length:10},(p,g)=>n-g);const i=ct(!0),a=e,o=[[0,1,2,3],[4,5,6,7],[8,9,10,11]],l=ct(r.modelValue.getDate()),u=ct(r.modelValue.getMonth()),c=ct(r.modelValue.getFullYear()),f=we(()=>{const g=new Date(c.value,u.value,1).getDay();let b=0;switch(u.value){case 1:case 3:case 5:case 7:case 8:case 10:case 12:b=31;break;case 4:case 6:case 9:case 11:b=30;break;case 2:Math.trunc(c.value/4)*4==c.value?b=29:b=28}let v=[],w=[0,0,0,0,0,0,0],_=g;for(let y=0;y(ae(),Ee("span",G$,[z("div",Y$,[r.mode=="day"||r.mode=="today"?(ae(),Ee("button",K$,ke(l.value),1)):Me("",!0),z("div",X$,[z("table",Q$,[(ae(!0),Ee(Ye,null,ft(f.value,(b,v)=>(ae(),Ee("tr",{key:v,class:""},[(ae(!0),Ee(Ye,null,ft(b,(w,_)=>(ae(),Ee("td",{key:_},[w!=0?(ae(),Ee("span",{key:0,type:"button",class:"btn optionbutton",onClick:y=>l.value=w},ke(w),9,J$)):Me("",!0)]))),128))]))),128))])]),r.mode!="year"&&r.mode!="live"?(ae(),Ee("button",Z$,ke(u.value+1),1)):Me("",!0),z("div",eN,[z("table",tN,[(ae(),Ee(Ye,null,ft(o,(b,v)=>z("tr",{key:v,class:""},[(ae(!0),Ee(Ye,null,ft(b,(w,_)=>(ae(),Ee("td",{key:_,class:"p-0 m-0"},[z("span",{type:"button",class:"btn btn-sm optionbutton",onClick:y=>u.value=w},ke(w+1),9,rN)]))),128))])),64))])]),r.mode!="live"?(ae(),Ee("button",nN,ke(c.value),1)):Me("",!0),z("div",iN,[z("table",sN,[(ae(!0),Ee(Ye,null,ft(se(s),(b,v)=>(ae(),Ee("tr",{key:v,class:""},[z("td",null,[z("span",{type:"button",class:"btn optionbutton",onClick:w=>c.value=b},ke(b),9,oN)])]))),128))])]),r.mode!="live"?(ae(),Ee("button",{key:3,class:"button-outline-secondary",type:"button",onClick:d},g[0]||(g[0]=[z("span",{class:"fa-solid fa-circle-check"},null,-1)]))):Me("",!0)])]))}}),lN=Je(aN,[["__scopeId","data-v-98690e5d"]]),uN={class:"btn-group m-0",role:"group","aria-label":"radiobar"},cN=["id","value"],fN=je({__name:"RadioBarInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=e,s=we({get(){return r.modelValue},set(o){n("update:modelValue",o)}});function i(o){let l=r.options[o].color?r.options[o].color:"var(--color-fg)";return r.options[o].active?{color:"var(--color-bg)",background:l}:{color:l}}function a(o){let l=o.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(s.value=l.value)}return(o,l)=>(ae(),Ee("div",null,[z("div",uN,[(ae(!0),Ee(Ye,null,ft(o.options,(u,c)=>(ae(),Ee("button",{id:"radio-"+u.value,key:c,class:rt(["btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2",u.value==s.value?"active":""]),value:u.value,style:ht(i(c)),onClick:a},[z("span",{style:ht(i(c))},[u.icon?(ae(),Ee("i",{key:0,class:rt(["fa-solid",u.icon])},null,2)):Me("",!0),st(" "+ke(u.text),1)],4)],14,cN))),128))])]))}}),NS=Je(fN,[["__scopeId","data-v-82ab6829"]]),dN=je({__name:"PgSelector",props:{widgetid:{},showLeftButton:{type:Boolean},showRightButton:{type:Boolean},ignoreLive:{type:Boolean}},emits:["shiftLeft","shiftRight","shiftUp","shiftDown"],setup(t){const e=t,r=ct(0),n=we(()=>{if(Ae.waitForData)return"Lädt";switch(Ae.graphMode){case"live":return e.ignoreLive?"heute":`${Jt.duration} min`;case"today":return"heute";case"day":return Ht.date.getDate()+"."+(Ht.date.getMonth()+1)+".";case"month":return zB(Bn.month-1,Bn.year);case"year":return Ki.year.toString();default:return"???"}}),s=["live","today","day","month","year"],i=["Live","Heute","Tag","Monat","Jahr"],a=we({get(){return Ae.graphMode},set(_){switch(_){case"day":f();break;case"today":d();break;case"live":c();break;case"month":p();break;case"year":g()}}}),o=we(()=>{switch(Ae.graphMode){case"live":case"today":return Ht.getDate();case"month":return Bn.getDate();default:return Ht.getDate()}});function l(_){Ev(_)}function u(){r.value+=1,r.value>2&&(r.value=0)}function c(){Ae.graphMode!="live"&&(Ae.graphMode="live",nr())}function f(){Ae.graphMode!="day"&&Ae.graphMode!="today"&&(Ae.graphMode="day",nr())}function d(){Ae.graphMode!="today"&&(Ae.graphMode="today",Ev(new Date),nr())}function p(){Ae.graphMode!="month"&&(Ae.graphMode="month",nr())}function g(){Ae.graphMode!="year"&&(Ae.graphMode="year",nr())}const b=we(()=>r.value>0?{border:"1px solid var(--color-frame)"}:""),v=we(()=>r.value==1?"justify-content-between":"justify-content-end"),w=we(()=>r.value==1?"justify-content-between":"justify-content-center");return(_,y)=>(ae(),Ee("div",{class:"d-flex flex-column justify-content-center pgselector rounded",style:ht(b.value)},[r.value==2?(ae(),Re(NS,{key:0,id:"pgm2",modelValue:a.value,"onUpdate:modelValue":y[0]||(y[0]=x=>a.value=x),class:"m-2",options:s.map((x,T)=>({text:i[T],value:x,color:"var(--color-menu)",active:x==se(Ae).graphMode}))},null,8,["modelValue","options"])):Me("",!0),r.value==1?(ae(),Ee("span",{key:1,type:"button",class:rt(["arrowButton d-flex align-self-center mb-3 mt-3",{disabled:!e.showLeftButton}]),onClick:y[1]||(y[1]=x=>_.$emit("shiftUp"))},y[6]||(y[6]=[z("i",{class:"fa-solid fa-xl fa-chevron-circle-up"},null,-1)]),2)):Me("",!0),z("div",{class:rt(["d-flex align-items-center",w.value])},[r.value==1?(ae(),Ee("span",{key:0,type:"button",class:rt(["p-1",{disabled:!e.showLeftButton}]),onClick:y[2]||(y[2]=x=>_.$emit("shiftLeft"))},y[7]||(y[7]=[z("span",{class:"fa-solid fa-xl fa-chevron-circle-left arrowButton"},null,-1)]),2)):Me("",!0),r.value<2?(ae(),Ee("span",{key:1,type:"button",class:"btn-outline-secondary p-2 px-3 badge rounded-pill datebadge",onClick:u},ke(n.value),1)):Me("",!0),r.value==2?(ae(),Re(lN,{key:2,"model-value":o.value,mode:se(Ae).graphMode,"onUpdate:modelValue":l},null,8,["model-value","mode"])):Me("",!0),r.value==1?(ae(),Ee("span",{key:3,id:"graphRightButton",type:"button",class:rt(["arrowButton fa-solid fa-xl fa-chevron-circle-right p-1",{disabled:!e.showRightButton}]),onClick:y[3]||(y[3]=x=>_.$emit("shiftRight"))},null,2)):Me("",!0)],2),z("div",{class:rt(["d-flex align-items-center",v.value])},[r.value==1?(ae(),Ee("span",{key:0,type:"button",class:"p-1",onClick:u},y[8]||(y[8]=[z("span",{class:"fa-solid fa-xl fa-gear"},null,-1)]))):Me("",!0),r.value==1?(ae(),Ee("span",{key:1,id:"graphLeftButton",type:"button",class:rt(["arrowButton fa-solid fa-xl fa-chevron-circle-down p-1",{disabled:!e.showLeftButton}]),onClick:y[4]||(y[4]=x=>_.$emit("shiftDown"))},null,2)):Me("",!0),r.value>0?(ae(),Ee("span",{key:2,type:"button",class:"p-1",onClick:y[5]||(y[5]=x=>r.value=0)},y[9]||(y[9]=[z("span",{class:"fa-solid fa-xl fa-circle-check"},null,-1)]))):Me("",!0)],2)],4))}}),Vm=Je(dN,[["__scopeId","data-v-d75ec1a4"]]),hN=["x","fill"],pN=["x"],gn=je({__name:"PgToolTipLine",props:{cat:{},name:{},indent:{},power:{},width:{}},setup(t){const e=t;return(r,n)=>(ae(),Ee(Ye,null,[r.power>0?(ae(),Ee("tspan",{key:0,x:r.indent,dy:"1.3em",class:rt(r.name?"":"fas"),fill:se(Vt)[r.cat].color},ke(r.name?r.name:se(Vt)[r.cat].icon)+"   ",11,hN)):Me("",!0),z("tspan",{"text-anchor":"end",x:r.width-r.indent},[e.power>0?(ae(),Re(Ll,{key:0,watt:r.power*1e3},null,8,["watt"])):Me("",!0)],8,pN)],64))}}),gN=["transform"],mN=["width","height"],bN={"text-anchor":"start",x:"5",y:"20","font-size":"16",fill:"var(--color-fg)"},yN=["x"],wN=je({__name:"PgToolTipItem",props:{entry:{},boxwidth:{},xScale:{type:[Function,Object]}},setup(t){const e=t,r=we(()=>Object.values(e.entry).filter(l=>l>0).length),n=we(()=>r.value*16),s=we(()=>Object.entries(e.entry).filter(([l,u])=>l.startsWith("pv")&&l.length>2&&u>0).map(([l,u])=>({power:u,name:li.value.get(l)?o(li.value.get(l)):"Wechselr.",id:l}))),i=we(()=>Object.entries(e.entry).filter(([l,u])=>l.startsWith("cp")&&l.length>2&&u>0).map(([l,u])=>({power:u,name:li.value.get(l)?o(li.value.get(l)):"Ladep.",id:l}))),a=we(()=>Object.entries(e.entry).filter(([l,u])=>l.startsWith("sh")&&l.length>2&&u>0).map(([l,u])=>({power:u,name:li.value.get(l)?o(li.value.get(l)):"Gerät",id:l})));function o(l){return l.length>6?l.slice(0,6)+"...":l}return(l,u)=>(ae(),Ee("g",{class:"ttmessage",transform:"translate("+l.xScale(l.entry.date)+",0)"},[z("rect",{rx:"5",width:l.boxwidth,height:n.value,fill:"var(--color-bg)",opacity:"80%",stroke:"var(--color-menu)"},null,8,mN),z("text",bN,[z("tspan",{"text-anchor":"middle",x:l.boxwidth/2,dy:"0em"},ke(se(rs)("%H:%M")(new Date(l.entry.date))),9,yN),u[0]||(u[0]=z("line",{y:"120",x1:"5",x2:"100",stroke:"var(--color-fg)","stroke-width":"1"},null,-1)),xe(gn,{cat:"evuIn",indent:5,power:l.entry.evuIn,width:l.boxwidth},null,8,["power","width"]),xe(gn,{cat:"batOut",indent:5,power:l.entry.batOut,width:l.boxwidth},null,8,["power","width"]),xe(gn,{cat:"pv",indent:5,power:l.entry.pv,width:l.boxwidth},null,8,["power","width"]),(ae(!0),Ee(Ye,null,ft(s.value,c=>(ae(),Re(gn,{key:c.id,cat:"pv",name:c.name,power:c.power,indent:10,width:l.boxwidth},null,8,["name","power","width"]))),128)),xe(gn,{cat:"house",indent:5,power:l.entry.house,width:l.boxwidth},null,8,["power","width"]),xe(gn,{cat:"charging",indent:5,power:l.entry.charging,width:l.boxwidth},null,8,["power","width"]),(ae(!0),Ee(Ye,null,ft(i.value,c=>(ae(),Re(gn,{key:c.id,cat:"charging",name:c.name,power:c.power,indent:10,width:l.boxwidth},null,8,["name","power","width"]))),128)),xe(gn,{cat:"devices",indent:5,power:l.entry.devices,width:l.boxwidth},null,8,["power","width"]),(ae(!0),Ee(Ye,null,ft(a.value,c=>(ae(),Re(gn,{key:c.id,cat:"devices",name:c.name,power:c.power,indent:10,width:l.boxwidth},null,8,["name","power","width"]))),128)),xe(gn,{cat:"batIn",indent:5,power:l.entry.batIn,width:l.boxwidth},null,8,["power","width"]),xe(gn,{cat:"evuOut",indent:5,power:l.entry.evuOut,width:l.boxwidth},null,8,["power","width"])])],8,gN))}}),vN=["origin","transform"],_N=["x","height","width"],Tv=140,EN=je({__name:"PgToolTips",props:{width:{},height:{},margin:{},data:{}},setup(t){const e=t,r=we(()=>{const i=Tn(e.data,a=>new Date(a.date));return i[0]&&i[1]?Hh().domain(i).range([0,e.width-e.margin.right]):Xs().range([0,0])}),n=we(()=>{const i=Tn(e.data,a=>new Date(a.date));return i[0]&&i[1]?Hh().domain(i).range([0,e.width-e.margin.right-Tv]):Xs().range([0,0])}),s=we(()=>((Ae.graphMode=="day"||Ae.graphMode=="today")&&(r.value.range(Zi.value),Ct("g#pgToolTips").selectAll("g.ttarea").select("rect").attr("x",(i,a)=>e.data.length>a?r.value(e.data[a].date):0).attr("width",e.data.length>0?(Zi.value[1]-Zi.value[0])/e.data.length:0)),"PgToolTips.vue:autozoom"));return(i,a)=>(ae(),Ee("g",{id:"pgToolTips",origin:s.value,transform:"translate("+i.margin.left+","+i.margin.top+")"},[(ae(!0),Ee(Ye,null,ft(i.data,o=>(ae(),Ee("g",{key:o.date,class:"ttarea"},[z("rect",{x:r.value(o.date),y:"0",height:i.height,class:"ttrect",width:se(Ae).data.length>0?i.width/se(Ae).data.length:0,opacity:"1%",fill:"var(--color-charging)"},null,8,_N),xe(wN,{entry:o,boxwidth:Tv,"x-scale":n.value},null,8,["entry","x-scale"])]))),128))],8,vN))}}),SN={class:"d-flex justify-content-end"},xN={id:"powergraphFigure",class:"p-0 m-0"},TN=["viewBox"],AN=["transform"],CN=["x","y"],IN=2,MN=je({__name:"PowerGraph",setup(t){const e=we(()=>{switch(Ae.graphMode){case"year":return"Jahresübersicht";case"month":return"Monatsübersicht";default:return"Leistung / Ladestand"}});function r(){let o=_e.usageStackOrder+1;o>IN&&(o=0),_e.usageStackOrder=o,xB(!0)}function n(o){const l=[[0,it.top],[Tr,tn-it.top]];o.call(I2().scaleExtent([1,8]).translateExtent([[0,0],[Tr,tn]]).extent(l).filter(i).on("zoom",s))}function s(o){PS.value=o.transform}function i(o){return o.preventDefault(),(!o.ctrlKey||o.type==="wheel")&&!o.button}function a(){_e.zoomedWidget=1,_e.zoomGraph=!_e.zoomGraph}return dn(()=>{const o=Ct("svg#powergraph");n(o)}),(o,l)=>(ae(),Re(Rl,{"full-width":!0},{title:Ie(()=>[st(ke(e.value),1)]),buttons:Ie(()=>[z("div",SN,[xe(Vm,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!1,onShiftLeft:se(af),onShiftRight:se(Nm),onShiftUp:se(Dm),onShiftDown:se(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),se(jn)?(ae(),Ee("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:a},l[0]||(l[0]=[z("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):Me("",!0)])]),default:Ie(()=>[xl(z("figure",xN,[(ae(),Ee("svg",{id:"powergraph",class:"powergraphSvg",viewBox:"0 0 "+se(Tr)+" "+se(tn)},[xe(C$,{width:se(Tr)-se(it).left-2*se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it)},null,8,["width","height","margin"]),xe(M$,{width:se(Tr)-se(it).left-2*se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it),"stack-order":se(_e).usageStackOrder},null,8,["width","height","margin","stack-order"]),xe(F$,{width:se(Tr)-se(it).left-se(it).right,height:se(tn)-se(it).top-se(it).bottom,margin:se(it)},null,8,["width","height","margin"]),z("g",{transform:"translate("+se(it).left+","+se(it).top+")"},[(se(Ae).graphMode=="day"||se(Ae).graphMode=="today"||se(Ae).graphMode=="live")&&Object.values(se(dt)).filter(u=>u.visible).length>0?(ae(),Re(Dd,{key:0,width:se(Tr)-se(it).left-2*se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it),order:0},null,8,["width","height","margin"])):Me("",!0),(se(Ae).graphMode=="day"||se(Ae).graphMode=="today"||se(Ae).graphMode=="live")&&Object.values(se(dt)).filter(u=>u.visible).length>1?(ae(),Re(Dd,{key:1,width:se(Tr)-se(it).left-2*se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it),order:1},null,8,["width","height","margin"])):Me("",!0),(se(Ae).graphMode=="day"||se(Ae).graphMode=="today"||se(Ae).graphMode=="live")&&se(Yt).isBatteryConfigured?(ae(),Re(Dd,{key:2,width:se(Tr)-se(it).left-2*se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it),order:2},null,8,["width","height","margin"])):Me("",!0),se(Ae).graphMode=="day"||se(Ae).graphMode=="today"||se(Ae).graphMode=="live"?(ae(),Re(q$,{key:3,width:se(Tr)-se(it).left-se(it).right,height:(se(tn)-se(it).top-se(it).bottom)/2,margin:se(it)},null,8,["width","height","margin"])):Me("",!0)],8,AN),se(Ae).graphMode=="day"||se(Ae).graphMode=="today"?(ae(),Re(EN,{key:0,width:se(Tr)-se(it).left-se(it).right,height:se(tn)-se(it).top-se(it).bottom,margin:se(it),data:se(Ae).data},null,8,["width","height","margin","data"])):Me("",!0),z("g",{id:"button",type:"button",onClick:r},[z("text",{x:se(Tr)-10,y:se(tn)-10,color:"var(--color-menu)","text-anchor":"end"},l[1]||(l[1]=[z("tspan",{fill:"var(--color-menu)",class:"fas fa-lg"},ke(""),-1)]),8,CN)])],8,TN))],512),[[uC,se(Ae).data.length>0]])]),_:1}))}}),kN=Je(MN,[["__scopeId","data-v-d40bf528"]]),PN=["id"],ON=["x","width","height","fill"],LN=["x","width","height"],RN=["x","y","width","height"],BN=je({__name:"EmBar",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,r=we(()=>e.height-e.yScale(e.item.energy)-e.margin.top-e.margin.bottom),n=we(()=>{let i=0;return e.item.energyPv>0&&(i=e.height-e.yScale(e.item.energyPv)-e.margin.top-e.margin.bottom),i>r.value&&(i=r.value),i}),s=we(()=>{let i=0;return e.item.energyBat>0&&(i=e.height-e.yScale(e.item.energyBat)-e.margin.top-e.margin.bottom),i>r.value&&(i=r.value),i});return(i,a)=>(ae(),Ee("g",{id:"bar-"+e.item.name,transform:"scale(1,-1) translate (0,-445)"},[z("rect",{class:"bar",x:e.xScale(i.item.name),y:"0",width:e.xScale.bandwidth(),height:r.value,fill:i.item.color},null,8,ON),z("rect",{class:"bar",x:e.xScale(i.item.name)+e.xScale.bandwidth()/6,y:"0",width:e.xScale.bandwidth()*2/3,height:n.value,fill:"var(--color-pv)","fill-opacity":"66%"},null,8,LN),z("rect",{class:"bar",x:e.xScale(i.item.name)+e.xScale.bandwidth()/6,y:n.value,width:e.xScale.bandwidth()*2/3,height:s.value,fill:"var(--color-battery)","fill-opacity":"66%"},null,8,RN)],8,PN))}}),$N={id:"emBargraph"},NN=je({__name:"EMBarGraph",props:{plotdata:{},xScale:{},yScale:{},margin:{},height:{}},setup(t){const e=t;function r(s){if(s.name=="PV"){const i=Ae.graphMode=="live"||Ae.graphMode=="day"?ot:qe.items,o=(Ae.graphMode=="live"||Ae.graphMode=="day"?tt:qe.items).evuOut.energy,l=i.pv.energy;return Math.round((l-o)/l*100)}else if(s.name=="Netz"){const i=Ae.graphMode=="live"||Ae.graphMode=="day"?ot:qe.items,a=Ae.graphMode=="live"||Ae.graphMode=="day"?tt:qe.items,o=a.evuOut.energy,l=i.evuIn.energy,u=i.pv.energy,c=i.batOut.energy,f=a.batIn.energy;return Math.round((u+c-o-f)/(u+c+l-o-f)*100)}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(ae(),Ee("g",$N,[(ae(!0),Ee(Ye,null,ft(e.plotdata,(a,o)=>(ae(),Ee("g",{key:o},[xe(BN,{item:a,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(a),autarchy:r(a)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128)),i[0]||(i[0]=z("animateTransform",{"attribute-name":"transform",type:"scale",from:"1 0",to:"1 1",begin:"0s",dur:"2s"},null,-1))]))}}),DN=["origin"],UN=je({__name:"EMYAxis",props:{yScale:{type:[Function,Object]},width:{},fontsize:{}},setup(t){const e=t,r=we(()=>Al(e.yScale).tickFormat(i=>s(i)).ticks(6).tickSizeInner(-e.width)),n=we(()=>{const i=Ct("g#emYAxis");return i.attr("class","axis").call(r.value),i.append("text").attr("y",6).attr("dy","0.71em").attr("text-anchor","end").text("energy"),i.selectAll(".tick").attr("font-size",e.fontsize),_e.showGrid?i.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):i.selectAll(".tick line").attr("stroke","var(--color-bg)"),i.select(".domain").attr("stroke","var(--color-bg)"),"emYAxis.vue"});function s(i){return i>0?Ae.graphMode=="year"?(i/1e6).toString():(i/1e3).toString():""}return(i,a)=>(ae(),Ee("g",{id:"emYAxis",class:"axis",origin:n.value},null,8,DN))}}),FN=["id"],VN=["x","y","font-size"],jN=["x","y","font-size","fill"],WN=["x","y","font-size","fill"],zN=je({__name:"EmLabel",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,r=we(()=>e.autarchy?e.yScale(e.item.energy)-25:e.yScale(e.item.energy)-10),n=we(()=>{let l=16,u=e.barcount;return u<=5?l=16:u==6?l=14:u>6&&u<=8?l=13:u==9?l=11:u==10?l=10:l=9,l}),s=we(()=>{let l=12,u=e.barcount;return u<=5?l=12:u==6?l=11:u>6&&u<=8||u==9?l=8:u==10?l=7:l=6,l});function i(l,u){return u.length>s.value?u.substring(0,s.value)+".":u}function a(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function o(){return"var(--color-pv)"}return(l,u)=>(ae(),Ee("g",{id:"barlabel-"+e.item.name},[z("text",{x:e.xScale(l.item.name)+e.xScale.bandwidth()/2,y:r.value,"font-size":n.value,"text-anchor":"middle",fill:"var(--color-menu)"},ke(se(Mi)(l.item.energy,se(_e).decimalPlaces,!1)),9,VN),z("text",{x:e.xScale(l.item.name)+e.xScale.bandwidth()/2,y:e.yScale(l.item.energy)-10,"font-size":n.value-2,"text-anchor":"middle",fill:o()},ke(a()),9,jN),z("text",{x:e.xScale(l.item.name)+e.xScale.bandwidth()/2,y:e.height-e.margin.bottom-5,"font-size":n.value,"text-anchor":"middle",fill:l.item.color,class:rt(l.item.icon.length<=2?"fas":"")},ke(i(l.item.name,l.item.icon)),11,WN)],8,FN))}}),HN={id:"emBarLabels"},qN=je({__name:"EMLabels",props:{plotdata:{},xScale:{},yScale:{},height:{},margin:{}},setup(t){const e=t;function r(s){if(s.name=="PV"){const i=Ae.graphMode=="live"||Ae.graphMode=="today"?ot:qe.items,o=(Ae.graphMode=="live"||Ae.graphMode=="today"?tt:qe.items).evuOut.energy,l=i.pv.energy;return Math.round((l-o)/l*100)}else if(s.name=="Netz"){const i=Ae.graphMode=="live"||Ae.graphMode=="today"?ot:qe.items,a=Ae.graphMode=="live"||Ae.graphMode=="today"?tt:qe.items,o=a.evuOut.energy,l=i.evuIn.energy,u=i.pv.energy,c=i.batOut.energy,f=a.batIn.energy;return u+c-o-f>0?Math.round((u+c-o-f)/(u+c+l-o-f)*100):0}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(ae(),Ee("g",HN,[(ae(!0),Ee(Ye,null,ft(e.plotdata,(a,o)=>(ae(),Ee("g",{key:o},[xe(zN,{item:a,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(a),autarchy:r(a)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128))]))}}),GN={class:"d-flex justify-content-end"},YN={id:"energymeter",class:"p-0 m-0"},KN={viewBox:"0 0 500 500"},XN=["transform"],QN=["x"],JN={key:0},Av=500,Ud=500,Cv=12,ZN="Energie",eD=je({__name:"EnergyMeter",setup(t){const e={top:25,bottom:30,left:25,right:0},r=we(()=>{let l=Object.values(ot),u=i.value;const c=qe.items;let f=[];switch(_e.debug&&a(),Xo.value==!0&&(Xo.value=!1),Ae.graphMode){default:case"live":case"today":f=l.concat(u);break;case"day":case"month":case"year":Object.values(c).length==0?es.value=!0:(es.value=!1,f=[c.evuIn,c.pv,c.evuOut,c.batOut,c.charging],Object.values(Ge).length>1&&Object.keys(Ge).forEach(d=>{c["cp"+d]&&f.push(c["cp"+d])}),f.push(c.devices),St.forEach((d,p)=>{d.showInGraph&&c["sh"+p]&&f.push(c["sh"+p])}),f=f.concat([c.batIn,c.house]))}return f.filter(d=>d.energy&&d.energy>0)}),n=we(()=>gl().range([0,Av-e.left-e.right]).domain(r.value.map(l=>l.name)).padding(.4)),s=we(()=>Xn().range([Ud-e.bottom-e.top,15]).domain([0,P_(r.value,l=>l.energy)])),i=we(()=>{const l=Object.values(Ge).length,u=[...St.values()].filter(f=>f.configured).length;let c=tt;return[...[c.evuOut,c.charging].concat(l>1?Object.values(Ge).map(f=>f.toPowerItem()):[]),...[c.devices].concat(u>1?[...St.values()].filter(f=>f.configured&&f.showInGraph):[]).concat([tt.batIn,tt.house])]});function a(){console.debug(["source summary:",ot]),console.debug(["usage details:",i.value]),console.debug(["historic summary:",qe])}function o(){_e.zoomedWidget=2,_e.zoomGraph=!_e.zoomGraph}return(l,u)=>(ae(),Re(Rl,{"full-width":!0},{title:Ie(()=>[st(ke(ZN))]),buttons:Ie(()=>[z("div",GN,[xe(Vm,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:se(af),onShiftRight:se(Nm),onShiftUp:se(Dm),onShiftDown:se(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),se(jn)?(ae(),Ee("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:o},u[0]||(u[0]=[z("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):Me("",!0)])]),default:Ie(()=>[z("figure",YN,[(ae(),Ee("svg",KN,[z("g",{transform:"translate("+e.left+","+e.top+")"},[xe(NN,{plotdata:r.value,"x-scale":n.value,"y-scale":s.value,height:Ud,margin:e},null,8,["plotdata","x-scale","y-scale"]),xe(UN,{"y-scale":s.value,width:Av,fontsize:Cv,config:se(_e)},null,8,["y-scale","config"]),z("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":Cv},ke(se(Ae).graphMode=="year"?"MWh":"kWh"),9,QN),xe(qN,{plotdata:r.value,"x-scale":n.value,"y-scale":s.value,height:Ud,margin:e,config:se(_e)},null,8,["plotdata","x-scale","y-scale","config"])],8,XN)]))]),se(es)?(ae(),Ee("p",JN,"No data")):Me("",!0)]),_:1}))}}),tD=Je(eD,[["__scopeId","data-v-32c82102"]]),rD=["id"],nD=["y","width","fill"],iD=["y","width"],sD=["y","x","width"],oD=je({__name:"EnergyBar",props:{id:{},item:{},yScale:{},xScale:{},itemHeight:{}},setup(t){const e=t,r=we(()=>e.xScale(e.item.energy)),n=we(()=>{let i=0;return e.item.energyPv>0&&(i=e.xScale(e.item.energyPv)),i>r.value&&(i=r.value),i}),s=we(()=>{let i=0;return e.item.energyBat>0&&(i=e.xScale(e.item.energyBat)),i>r.value&&(i=r.value),i});return(i,a)=>(ae(),Ee("g",{id:`bar-${e.item.name}`},[z("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2-4,x:"0",rx:"6",ry:"6",height:"12",width:r.value,fill:i.item.color},null,8,nD),z("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2+10,x:"0",rx:"3",ry:"3",height:"7",width:n.value,fill:"var(--color-pv)","fill-opacity":"100%"},null,8,iD),z("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2+10,x:n.value,rx:"3",ry:"3",height:"7",width:s.value,fill:"var(--color-battery)","fill-opacity":"100%"},null,8,sD)],8,rD))}}),aD={id:"emBargraph"},lD=je({__name:"BarGraph",props:{plotdata:{},yscale:{},xscale:{},itemHeight:{}},setup(t){const e=t;return(r,n)=>(ae(),Ee("g",aD,[(ae(!0),Ee(Ye,null,ft(e.plotdata,(s,i)=>(ae(),Ee("g",{key:i},[xe(oD,{id:i.toString(),item:s,"x-scale":e.xscale,"y-scale":e.yscale,"item-height":r.itemHeight},null,8,["id","item","x-scale","y-scale","item-height"])]))),128))]))}}),uD=["id"],cD=["y","x","fill"],fD=["y","x"],dD=["y","x","font-size"],Fd=24,hD=je({__name:"EnergyLabel",props:{id:{},item:{},yscale:{},margin:{},width:{},itemHeight:{},autarchy:{},autText:{}},setup(t){const e=t,r=we(()=>e.yscale(e.id)+e.itemHeight/3);function n(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function s(i){return i.length>14?i.slice(0,13)+"...":i}return(i,a)=>(ae(),Ee("g",{id:"barlabel-"+e.id},[z("text",{y:r.value,x:e.margin.left,"font-size":Fd,"text-anchor":"start",fill:i.item.color,class:rt(i.item.icon.length<=2?"fas":"")},ke(s(e.item.icon)),11,cD),z("text",{y:r.value,x:e.width/2+e.margin.left,"font-size":Fd,"text-anchor":"middle",fill:"var(--color-menu)"},ke(se(Mi)(i.item.energy,se(_e).decimalPlaces,!1)),9,fD),z("text",{y:r.value,x:e.width-e.margin.right,"font-size":Fd-2,"text-anchor":"end",fill:"var(--color-pv)"},ke(n()),9,dD)],8,uD))}}),pD={id:"emBarLabels"},gD=je({__name:"EnergyLabels",props:{plotdata:{},yscale:{},width:{},itemHeight:{},margin:{}},setup(t){const e=t;function r(s){if(s.name=="PV"){const i=Ae.graphMode=="live"||Ae.graphMode=="today"?ot:qe.items,o=(Ae.graphMode=="live"||Ae.graphMode=="today"?tt:qe.items).evuOut.energy,l=i.pv.energy;return Math.round((l-o)/l*100)}else if(s.name=="Netz"){const i=Ae.graphMode=="live"||Ae.graphMode=="today"?ot:qe.items,a=Ae.graphMode=="live"||Ae.graphMode=="today"?tt:qe.items,o=a.evuOut.energy,l=i.evuIn.energy,u=i.pv.energy,c=i.batOut.energy,f=a.batIn.energy;return u+c-o-f>0?Math.round((u+c-o-f)/(u+c+l-o-f)*100):0}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(ae(),Ee("g",pD,[(ae(!0),Ee(Ye,null,ft(e.plotdata,(a,o)=>(ae(),Ee("g",{key:o},[xe(hD,{id:o.toString(),item:a,yscale:e.yscale,margin:e.margin,width:e.width,"item-height":s.itemHeight,"aut-text":n(a),autarchy:r(a)},null,8,["id","item","yscale","margin","width","item-height","aut-text","autarchy"])]))),128))]))}}),mD={class:"d-flex justify-content-end"},bD={id:"energymeter",class:"p-0 m-0"},yD=["viewBox"],wD=["transform"],vD=["x"],_D={key:0},Iv=500,Vd=60,ED=12,SD="Energie",xD=je({__name:"EnergyMeter2",setup(t){const e={top:0,bottom:30,left:0,right:0},r=we(()=>n.value.length*Vd+e.top+e.bottom),n=we(()=>{let c=Object.values(ot),f=a.value;const d=qe.items;let p=[];switch(_e.debug&&l(),Xo.value==!0&&(Xo.value=!1),Ae.graphMode){default:case"live":case"today":p=o(c).concat(f);break;case"day":case"month":case"year":Object.values(d).length==0?es.value=!0:(es.value=!1,p=[d.evuIn,d.pv,d.evuOut,d.batOut,d.charging],Object.values(Ge).length>1&&Object.keys(Ge).forEach(g=>{d["cp"+g]&&p.push(d["cp"+g])}),p.push(d.devices),St.forEach((g,b)=>{g.showInGraph&&d["sh"+b]&&p.push(d["sh"+b])}),p=p.concat([d.batIn,d.house]))}return p.filter(g=>g.energy&&g.energy>0)}),s=we(()=>Xn().range([0,Iv-e.left-e.right]).domain([0,P_(n.value,c=>c.energy)])),i=we(()=>gl().range([e.top,r.value-e.bottom]).domain(n.value.map((c,f)=>f.toString())).padding(.1)),a=we(()=>{const c=Object.values(Ge).length,f=[...St.values()].filter(p=>p.configured).length;let d=tt;return[...[d.evuOut,d.charging].concat(c>1?Object.values(Ge).map(p=>p.toPowerItem()):[]),...[d.devices].concat(f>1?[...St.values()].filter(p=>p.configured&&p.showInGraph):[]).concat([tt.batIn,tt.house])]});function o(c){let f=0;return ar.value.size>1&&ar.value.forEach(d=>{c.splice(2+f++,0,{name:d.name,type:pt.inverter,power:d.power,energy:d.energy,energyPv:0,energyBat:0,pvPercentage:0,color:d.color,icon:d.name,showInGraph:!0})}),kt.value.size>1&&kt.value.forEach(d=>{c.splice(3+f++,0,{name:d.name,type:pt.battery,power:d.power,energy:d.dailyYieldExport,energyPv:0,energyBat:0,pvPercentage:0,color:d.color,icon:d.name,showInGraph:!0})}),c}function l(){console.debug(["source summary:",ot]),console.debug(["usage details:",a.value]),console.debug(["historic summary:",qe])}function u(){_e.zoomedWidget=2,_e.zoomGraph=!_e.zoomGraph}return(c,f)=>(ae(),Re(Rl,{"full-width":!0},{title:Ie(()=>[st(ke(SD))]),buttons:Ie(()=>[z("div",mD,[xe(Vm,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:se(af),onShiftRight:se(Nm),onShiftUp:se(Dm),onShiftDown:se(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),se(jn)?(ae(),Ee("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:u},f[0]||(f[0]=[z("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):Me("",!0)])]),default:Ie(()=>[z("figure",bD,[(ae(),Ee("svg",{viewBox:"0 0 500 "+r.value},[z("g",{transform:"translate("+e.left+","+e.top+")"},[xe(lD,{plotdata:n.value,xscale:s.value,yscale:i.value,"item-height":Vd},null,8,["plotdata","xscale","yscale"]),z("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":ED},ke(se(Ae).graphMode=="year"?"MWh":"kWh"),9,vD),xe(gD,{plotdata:n.value,yscale:i.value,width:Iv,"item-height":Vd,margin:e},null,8,["plotdata","yscale"])],8,wD)],8,yD))]),se(es)?(ae(),Ee("p",_D,"No data")):Me("",!0)]),_:1}))}}),TD=Je(xD,[["__scopeId","data-v-dc8e49b2"]]),AD={class:"d-flex flex-column align-items-center justify-content-start infoitem"},CD=je({__name:"InfoItem",props:{heading:{},small:{type:Boolean}},setup(t){const e=t,r=we(()=>e.small?{"font-size":"var(--font-small)"}:{"font-size":"var(--font-small)"}),n=we(()=>e.small?{"font-size":"var(--font-small)"}:{"font-size":"var(--font-normal)"}),s=we(()=>e.small?"mt-0":"mt-1");return(i,a)=>(ae(),Ee("span",AD,[z("span",{class:rt(["d-flex heading",s.value]),style:ht(r.value)},ke(e.heading),7),z("span",{class:"d-flex my-0 me-0 align-items-center content",style:ht(n.value)},[Gt(i.$slots,"default",{},void 0,!0)],4)]))}}),mt=Je(CD,[["__scopeId","data-v-f6af00e8"]]),ID={class:"d-flex justify-content-between align-items-center titlerow"},MD={class:"buttonarea d-flex float-right justify-content-end align-items-center"},kD={class:"contentrow grid-col-12"},PD=je({__name:"WbSubwidget",props:{titlecolor:{},fullwidth:{type:Boolean},small:{type:Boolean}},setup(t){const e=t,r=we(()=>{let s={"font-weight":"bold",color:"var(--color-fg)","font-size":"var(--font-normal)"};return e.titlecolor&&(s.color=e.titlecolor),e.small&&(s["font-size"]="var(--font-verysmall)"),s}),n=we(()=>e.fullwidth?"grid-col-12":"grid-col-4");return(s,i)=>(ae(),Ee("div",{class:rt(["wb-subwidget-noborder px-0 pe-1 my-0 pb-2",n.value])},[z("div",ID,[z("div",{class:"d-flex widgetname p-0 m-0",style:ht(r.value)},[Gt(s.$slots,"title",{},void 0,!0)],4),z("div",MD,[Gt(s.$slots,"buttons",{},void 0,!0)])]),z("div",kD,[Gt(s.$slots,"default",{},void 0,!0)])],2))}}),uo=Je(PD,[["__scopeId","data-v-2aa2b95f"]]),OD={class:"grid-col-12 mt-0 mb-0 px-0 py-0 configitem"},LD={class:"titlecolumn m-0 p-0 d-flex justify-content-between align-items-baseline"},RD={class:"d-flex justify-content-end align-items-baseline"},BD={class:"d-flex align-items-center"},$D={class:"d-flex"},ND={class:"d-flex justify-content-end m-0 p-0"},DD={class:"ms-1 mb-2 p-0 pt-2 d-flex justify-content-stretch align-items-center contentrow"},UD=je({__name:"ConfigItem",props:{title:{},infotext:{},icon:{},fullwidth:{type:Boolean}},setup(t){const e=t,r=ct(!1);function n(){r.value=!r.value}const s=we(()=>{let i={color:"var(--color-charging)"};return r.value&&(i.color="var(--color-battery)"),i});return(i,a)=>(ae(),Re(uo,{fullwidth:!!i.fullwidth},{default:Ie(()=>[z("div",OD,[z("div",LD,[z("span",RD,[z("span",{class:"d-flex align-items-baseline m-0 p-0",onClick:n},[e.icon?(ae(),Ee("i",{key:0,class:rt(["fa-solid fa-sm m-0 p-0 me-2 item-icon",e.icon])},null,2)):Me("",!0),st(" "+ke(i.title),1)])]),z("span",BD,[z("span",$D,[e.infotext?(ae(),Ee("i",{key:0,class:"fa-solid fa-sm fa-circle-question ms-4 me-2",style:ht(s.value),onClick:n},null,4)):Me("",!0)]),z("span",ND,[Gt(i.$slots,"inline-item",{},void 0,!0)])])]),r.value?(ae(),Ee("p",{key:0,class:"infotext shadow m-0 ps-2 mb-1 p-1",onClick:n},[a[0]||(a[0]=z("i",{class:"me-1 fa-solid fa-sm fa-circle-info"},null,-1)),st(" "+ke(i.infotext),1)])):Me("",!0),z("div",DD,[Gt(i.$slots,"default",{},void 0,!0)])])]),_:3},8,["fullwidth"]))}}),et=Je(UD,[["__scopeId","data-v-25ab3fbb"]]),FD={class:"d-flex flex-column rangeinput"},VD={class:"d-flex flex-fill justify-content-between align-items-center"},jD={class:"d-flex flex-fill flex-column justify-content-center m-0 p-0"},WD={key:0,id:"rangeIndicator",class:"rangeIndicator"},zD={viewBox:"0 0 100 2"},HD=["width"],qD=["x","width"],GD=["x","width"],YD=["id","min","max","step"],KD={class:"d-flex justify-content-between align-items-center"},XD={class:"minlabel ps-4"},QD={class:"valuelabel"},JD={class:"maxlabel pe-4"},ZD=je({__name:"RangeInput",props:{id:{},min:{},max:{},step:{},unit:{},decimals:{},showSubrange:{type:Boolean},subrangeMin:{},subrangeMax:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=r.decimals??0,s=e,i=we({get(){return Math.round(r.modelValue*Math.pow(10,n))/Math.pow(10,n)},set(f){s("update:modelValue",f)}});function a(){i.value>r.min&&(i.value=Math.round((i.value-r.step)*Math.pow(10,n))/Math.pow(10,n))}function o(){i.valueXn().domain([r.min,r.max]).range([0,100])),u=we(()=>l.value(r.subrangeMin?r.subrangeMin:0)),c=we(()=>r.subrangeMin&&r.subrangeMax?l.value(r.subrangeMax)-l.value(r.subrangeMin):0);return(f,d)=>(ae(),Ee("span",FD,[z("span",VD,[z("span",{type:"button",class:"minusButton",onClick:a},d[1]||(d[1]=[z("i",{class:"fa fa-xl fa-minus-square me-2"},null,-1)])),z("div",jD,[r.showSubrange?(ae(),Ee("figure",WD,[(ae(),Ee("svg",zD,[z("g",null,[z("rect",{class:"below",x:0,y:"0",width:u.value,height:"2",rx:"1",ry:"1",fill:"var(--color-evu)"},null,8,HD),z("rect",{class:"bar",x:u.value,y:"0",width:c.value,height:"2",rx:"1",ry:"1",fill:"var(--color-charging)"},null,8,qD),z("rect",{class:"above",x:u.value+c.value,y:"0",width:u.value,height:"2",rx:"1",ry:"1",fill:"var(--color-pv)"},null,8,GD)])]))])):Me("",!0),xl(z("input",{id:f.id,"onUpdate:modelValue":d[0]||(d[0]=p=>i.value=p),type:"range",class:"form-range flex-fill",min:f.min,max:f.max,step:f.step},null,8,YD),[[xC,i.value,void 0,{number:!0}]])]),z("span",{type:"button",class:"plusButton",onClick:o},d[2]||(d[2]=[z("i",{class:"fa fa-xl fa-plus-square ms-2"},null,-1)]))]),z("span",KD,[z("span",XD,ke(f.min),1),z("span",QD,ke(i.value)+" "+ke(f.unit),1),z("span",JD,ke(f.max),1)])]))}}),_r=Je(ZD,[["__scopeId","data-v-af945965"]]),e3=["id","value"],t3=je({__name:"RadioInput2",props:{options:{},modelValue:{},columns:{}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=e,s=we({get(){return r.modelValue},set(o){n("update:modelValue",o)}});function i(o){const l=r.options[o][2]||"var(--color-fg)",u="var(--color-bg)";return r.options[o][1]==s.value?{color:u,background:r.options[o][2]||"var(--color-menu)"}:{color:l,background:u}}function a(o){let l=o.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(typeof r.options[0][1]=="number"?s.value=Number(l.value):s.value=l.value)}return(o,l)=>(ae(),Ee("div",{class:"buttongrid",style:ht({"grid-template-columns":"repeat("+(r.columns||3)+", 1fr)"})},[(ae(!0),Ee(Ye,null,ft(r.options,(u,c)=>(ae(),Ee("button",{id:"radio-"+u[1],key:c,class:rt(["btn btn-outline-secondary radiobutton me-0 mb-0 px-2",u[1]==s.value?"active":""]),value:u[1],style:ht(i(c)),onClick:a},[z("span",{style:ht(i(c))},[u[3]?(ae(),Ee("i",{key:0,class:rt(["fa-solid",u[3]])},null,2)):Me("",!0),st(" "+ke(u[0]),1)],4)],14,e3))),128))],4))}}),Ir=Je(t3,[["__scopeId","data-v-88c9ea7a"]]),r3={class:"mt-2"},n3={key:0},i3=je({__name:"ConfigInstant",props:{chargepoint:{}},setup(t){const r=ct(t.chargepoint),n=we({get(){return r.value.instantMaxEnergy/1e3},set(s){r.value.instantMaxEnergy=s*1e3}});return(s,i)=>(ae(),Ee("div",r3,[i[5]||(i[5]=z("p",{class:"heading ms-1"},"Sofortladen:",-1)),xe(et,{title:"Stromstärke",icon:"fa-bolt",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"targetCurrent",modelValue:r.value.instantTargetCurrent,"onUpdate:modelValue":i[0]||(i[0]=a=>r.value.instantTargetCurrent=a),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),xe(et,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.instantTargetPhases,"onUpdate:modelValue":i[1]||(i[1]=a=>r.value.instantTargetPhases=a),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),r.value.instantChargeLimitMode!="none"?(ae(),Ee("hr",n3)):Me("",!0),xe(et,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.instantChargeLimitMode,"onUpdate:modelValue":i[2]||(i[2]=a=>r.value.instantChargeLimitMode=a),options:se(Lm).map(a=>[a.name,a.id])},null,8,["modelValue","options"])]),_:1}),r.value.instantChargeLimitMode=="soc"?(ae(),Re(et,{key:1,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxSoc",modelValue:r.value.instantTargetSoc,"onUpdate:modelValue":i[3]||(i[3]=a=>r.value.instantTargetSoc=a),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):Me("",!0),r.value.instantChargeLimitMode=="amount"?(ae(),Re(et,{key:2,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxEnergy",modelValue:n.value,"onUpdate:modelValue":i[4]||(i[4]=a=>n.value=a),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):Me("",!0)]))}}),s3=Je(i3,[["__scopeId","data-v-de6b86dd"]]),o3={class:"form-check form-switch"},zt=je({__name:"SwitchInput",props:{modelValue:{type:Boolean},onColor:{},offColor:{}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=e,s=we({get(){return r.modelValue},set(a){n("update:modelValue",a)}}),i=we(()=>s.value?{"background-color":"green"}:{"background-color":"white"});return(a,o)=>(ae(),Ee("div",o3,[xl(z("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l),class:"form-check-input",type:"checkbox",role:"switch",style:ht(i.value)},null,4),[[M_,s.value]])]))}}),a3={class:"pt-2 d-flex flex-column"},l3={class:"subconfigstack grid-col-12"},u3={key:0,class:"subconfig subgrid"},c3={key:0,class:"subconfigstack"},f3={class:"subconfig subgrid"},d3={class:"subconfig subgrid"},h3={class:"subconfig subgrid"},p3=je({__name:"ConfigPv",props:{chargepoint:{}},setup(t){const r=ct(t.chargepoint),n=we({get(){return r.value.pvMaxEnergy/1e3},set(a){r.value.pvMaxEnergy=a*1e3}}),s=we({get(){return r.value.pvMinCurrent>5},set(a){a?r.value.pvMinCurrent=6:r.value.pvMinCurrent=0}}),i=we({get(){return r.value.pvMinSoc>0},set(a){a?r.value.pvMinSoc=50:r.value.pvMinSoc=0}});return(a,o)=>(ae(),Ee("div",a3,[o[16]||(o[16]=z("div",{class:"heading ms-1"},"PV-Laden:",-1)),xe(et,{title:"Minimaler Ladestrom",icon:"fa-bolt",infotext:se(Gi).minpv,fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l)},null,8,["modelValue"])]),default:Ie(()=>[z("div",l3,[s.value?(ae(),Ee("div",u3,[o[11]||(o[11]=z("span",{class:"subconfigtitle grid-col-1"},"Stärke:",-1)),xe(_r,{id:"minCurrent",modelValue:r.value.pvMinCurrent,"onUpdate:modelValue":o[1]||(o[1]=l=>r.value.pvMinCurrent=l),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])])):Me("",!0)])]),_:1},8,["infotext"]),xe(et,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.pvTargetPhases,"onUpdate:modelValue":o[2]||(o[2]=l=>r.value.pvTargetPhases=l),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),xe(et,{title:"Mindest-Ladestand",icon:"fa-battery-half",infotext:se(Gi).minsoc,fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:i.value,"onUpdate:modelValue":o[3]||(o[3]=l=>i.value=l),class:"grid-col-3"},null,8,["modelValue"])]),default:Ie(()=>[i.value?(ae(),Ee("div",c3,[z("div",f3,[o[12]||(o[12]=z("span",{class:"subconfigtitle grid-col-1"},"SoC:",-1)),xe(_r,{id:"minSoc",modelValue:r.value.pvMinSoc,"onUpdate:modelValue":o[4]||(o[4]=l=>r.value.pvMinSoc=l),class:"grid-col-2",min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),z("div",d3,[o[13]||(o[13]=z("span",{class:"subconfigtitle grid-col-1"},"Ladestrom:",-1)),xe(_r,{id:"minSocCurrent",modelValue:r.value.pvMinSocCurrent,"onUpdate:modelValue":o[5]||(o[5]=l=>r.value.pvMinSocCurrent=l),class:"grid-col-2",min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),z("div",h3,[o[14]||(o[14]=z("span",{class:"subconfigtitle grid-col-1"},"Phasen:",-1)),xe(Ir,{modelValue:r.value.pvMinSocPhases,"onUpdate:modelValue":o[6]||(o[6]=l=>r.value.pvMinSocPhases=l),class:"grid-col-1",columns:2,options:[["1",1],["Maximum",3]]},null,8,["modelValue"])]),o[15]||(o[15]=z("hr",{class:"grid-col-3"},null,-1))])):Me("",!0)]),_:1},8,["infotext"]),xe(et,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.pvChargeLimitMode,"onUpdate:modelValue":o[7]||(o[7]=l=>r.value.pvChargeLimitMode=l),options:se(Lm).map(l=>[l.name,l.id])},null,8,["modelValue","options"])]),_:1}),r.value.pvChargeLimitMode=="soc"?(ae(),Re(et,{key:0,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxSoc",modelValue:r.value.pvTargetSoc,"onUpdate:modelValue":o[8]||(o[8]=l=>r.value.pvTargetSoc=l),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):Me("",!0),r.value.pvChargeLimitMode=="amount"?(ae(),Re(et,{key:1,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxEnergy",modelValue:n.value,"onUpdate:modelValue":o[9]||(o[9]=l=>n.value=l),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):Me("",!0),xe(et,{title:"Einspeisegrenze beachten",icon:"fa-hand",fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:r.value.pvFeedInLimit,"onUpdate:modelValue":o[10]||(o[10]=l=>r.value.pvFeedInLimit=l)},null,8,["modelValue"])]),_:1})]))}}),g3=Je(p3,[["__scopeId","data-v-d7ee4d2a"]]),m3={class:"plandetails d-flex flex-cloumn"},b3={class:"heading"},y3={key:0},w3=je({__name:"ScheduleDetails",props:{plan:{}},emits:["close"],setup(t){const e=t,r=we(()=>e.plan.limit.selected=="soc"?`Lade bis ${e.plan.time} auf ${e.plan.limit.soc_scheduled}% (maximal ${e.plan.limit.soc_limit}% mit PV)`:e.plan.limit.selected=="amount"?`Energiemenge: ${Mi(e.plan.limit.amount)}`:"Keine Begrenzung"),n=we(()=>{let i="Wiederholung ";switch(e.plan.frequency.selected){case"daily":i+="täglich";break;case"once":i+=`einmal (${e.plan.frequency.once})`;break;case"weekly":i+="wöchentlich "+s.value;break;default:i+="unbekannt"}return i}),s=we(()=>{const i=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"];let a="(";return e.plan.frequency.weekly.forEach((o,l)=>{o&&(a+=`${i[l]} `)}),a=a.trim(),a+=")",a});return(i,a)=>(ae(),Ee("div",m3,[a[1]||(a[1]=z("hr",null,null,-1)),z("span",b3,"Details für "+ke(e.plan.name)+":",1),z("ul",null,[z("li",null,ke(r.value),1),z("li",null,ke(n.value),1),e.plan.et_active?(ae(),Ee("li",y3,"Preisbasiert laden")):Me("",!0)]),z("button",{class:"btn btn-outline-secondary btn-sm",onClick:a[0]||(a[0]=o=>i.$emit("close"))}," Ok ")]))}}),v3=Je(w3,[["__scopeId","data-v-2f5cb5c1"]]),_3={key:0,class:"table table-borderless"},E3={class:"tablecell left"},S3=["onClick"],x3={class:"tablecell left"},T3={class:"tablecell"},A3={class:"tablecell"},C3={class:"tablecell"},I3={class:"tablecell right"},M3={key:1,class:"ms-1"},k3={key:2},P3=je({__name:"ConfigScheduled",props:{chargePoint:{}},setup(t){const e=ct(!1),r={daily:"Täglich",once:"Einmal",weekly:"Woche"},n=t,s=we(()=>{var l,u;return((u=(l=n.chargePoint)==null?void 0:l.chargeTemplate)==null?void 0:u.chargemode.scheduled_charging.plans)??[]});function i(l){return s.value[l].time}function a(l){return{color:s.value[l].active?"var(--color-switchGreen)":"var(--color-switchRed)"}}function o(l){n.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[l].active=!s.value[l].active,Ft(n.chargePoint.id)}return(l,u)=>(ae(),Ee(Ye,null,[u[3]||(u[3]=z("p",{class:"heading ms-1 pt-2"},"Pläne für Zielladen:",-1)),s.value.length>0?(ae(),Ee("table",_3,[u[2]||(u[2]=z("thead",null,[z("tr",null,[z("th",{class:"tableheader left"}),z("th",{class:"tableheader left"},"Plan"),z("th",{class:"tableheader"},"Zeit"),z("th",{class:"tableheader"},"Ziel"),z("th",{class:"tableheader"},"Wiederh."),z("th",{class:"tableheader right"})])],-1)),z("tbody",null,[(ae(!0),Ee(Ye,null,ft(s.value,(c,f)=>{var d;return ae(),Ee("tr",{key:f,class:rt(c.active?"text-bold":"text-normal")},[z("td",E3,[((d=n.chargePoint.chargeTemplate)==null?void 0:d.id)!=null?(ae(),Ee("a",{key:0,onClick:p=>o(f)},[z("span",{class:rt([c.active?"fa-toggle-on":"fa-toggle-off","fa"]),style:ht(a(f)),type:"button"},null,6)],8,S3)):Me("",!0)]),z("td",x3,ke(c.name),1),z("td",T3,ke(i(f)),1),z("td",A3,ke(c.limit.selected=="soc"?c.limit.soc_scheduled+"%":se(Mi)(c.limit.amount,0)),1),z("td",C3,ke(r[c.frequency.selected]),1),z("td",I3,[z("i",{class:"me-1 fa-solid fa-sm fa-circle-info",onClick:u[0]||(u[0]=p=>e.value=!e.value)})])],2)}),128))])])):(ae(),Ee("p",M3," Pläne für das Zielladen können in den Einstellungen des Ladeprofils angelegt werden . ")),e.value?(ae(),Ee("div",k3,[(ae(!0),Ee(Ye,null,ft(s.value,c=>(ae(),Re(v3,{key:c.id,plan:c,onClose:u[1]||(u[1]=f=>e.value=!1)},null,8,["plan"]))),128))])):Me("",!0)],64))}}),O3=Je(P3,[["__scopeId","data-v-08df44d8"]]),L3={class:"plandetails d-flex flex-cloumn"},R3={class:"heading"},B3=je({__name:"TimePlanDetails",props:{plan:{}},emits:["close"],setup(t){const e=t,r=we(()=>`Lade von ${e.plan.time[0]} bis ${e.plan.time[1]} mit ${e.plan.current}A`),n=we(()=>e.plan.limit.selected=="soc"?`Lade bis maximal ${e.plan.limit.soc}%`:e.plan.limit.selected=="amount"?`Lade maximal ${Mi(e.plan.limit.amount)}`:"Keine Begrenzung"),s=we(()=>{let a="Wiederholung ";switch(e.plan.frequency.selected){case"daily":a+="täglich";break;case"once":a+=`einmal (${e.plan.frequency.once})`;break;case"weekly":a+="wöchentlich "+i.value;break;default:a+="unbekannt"}return a}),i=we(()=>{const a=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"];let o="(";return e.plan.frequency.weekly.forEach((l,u)=>{l&&(o+=`${a[u]} `)}),o=o.trim(),o+=")",o});return(a,o)=>(ae(),Ee("div",L3,[o[1]||(o[1]=z("hr",null,null,-1)),z("span",R3,"Details für "+ke(e.plan.name)+":",1),z("ul",null,[z("li",null,ke(r.value),1),z("li",null,ke(n.value),1),z("li",null,ke(s.value),1)]),z("button",{class:"btn btn-outline-secondary btn-sm",onClick:o[0]||(o[0]=l=>a.$emit("close"))}," Ok ")]))}}),$3=Je(B3,[["__scopeId","data-v-eaa44cb2"]]),N3={class:"table table-borderless"},D3={class:"tablecell left"},U3=["onClick"],F3={class:"tablecell"},V3={class:"tablecell"},j3={class:"tablecell"},W3={class:"tablecell"},z3={class:"tablecell right"},H3={key:0},q3=je({__name:"ConfigTimed",props:{chargePoint:{}},setup(t){const e=t,r=ct(!1),n=e.chargePoint,s={daily:"Täglich",once:"Einmal",weekly:"Woche"},i=we(()=>{var l,u;return((u=(l=e.chargePoint)==null?void 0:l.chargeTemplate)==null?void 0:u.time_charging.plans)??[]});function a(l){return{color:i.value[l].active?"var(--color-switchGreen)":"var(--color-switchRed)"}}function o(l){e.chargePoint.chargeTemplate.time_charging.plans[l].active=!i.value[l].active,Ft(e.chargePoint.id)}return(l,u)=>(ae(),Ee(Ye,null,[xe(et,{title:"Zeitplan aktiv",icon:"fa-clock",fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(n).timedCharging,"onUpdate:modelValue":u[0]||(u[0]=c=>se(n).timedCharging=c)},null,8,["modelValue"])]),_:1}),u[4]||(u[4]=z("p",{class:"heading ms-1 pt-2"},"Zeitpläne:",-1)),z("table",N3,[u[3]||(u[3]=z("thead",null,[z("tr",null,[z("th",{class:"tableheader left"}),z("th",{class:"tableheader"},"Von"),z("th",{class:"tableheader"},"Bis"),z("th",{class:"tableheader"},"Strom"),z("th",{class:"tableheader"},"Wiederh."),z("th",{class:"tableheader right"})])],-1)),z("tbody",null,[(ae(!0),Ee(Ye,null,ft(i.value,(c,f)=>{var d;return ae(),Ee("tr",{key:f,class:rt(c.active?"text-bold":"text-normal")},[z("td",D3,[((d=e.chargePoint.chargeTemplate)==null?void 0:d.id)!=null?(ae(),Ee("span",{key:0,onClick:p=>o(f)},[z("span",{class:rt([c.active?"fa-toggle-on":"fa-toggle-off","fa"]),style:ht(a(f)),type:"button"},null,6)],8,U3)):Me("",!0)]),z("td",F3,ke(c.time[0]),1),z("td",V3,ke(c.time[1]),1),z("td",j3,ke(c.current)+" A",1),z("td",W3,ke(s[c.frequency.selected]),1),z("td",z3,[z("i",{class:"me-1 fa-solid fa-sm fa-circle-info",onClick:u[1]||(u[1]=p=>r.value=!r.value)})])],2)}),128))])]),r.value?(ae(),Ee("div",H3,[(ae(!0),Ee(Ye,null,ft(i.value,c=>(ae(),Re($3,{key:c.id,plan:c,onClose:u[2]||(u[2]=f=>r.value=!1)},null,8,["plan"]))),128))])):Me("",!0)],64))}}),G3=Je(q3,[["__scopeId","data-v-543e8ca2"]]),Y3={class:"providername ms-1"},K3={class:"container"},X3={id:"pricechart",class:"p-0 m-0"},Q3={viewBox:"0 0 400 300"},J3=["id","origin","transform"],Z3={key:0,class:"p-3"},e8={key:1,class:"d-flex justify-content-end"},t8=["disabled"],yo=400,Mv=250,kv=12,r8=je({__name:"PriceChart",props:{chargepoint:{},globalview:{type:Boolean}},setup(t){const e=t;let r=e.chargepoint?ct(e.chargepoint.etMaxPrice):ct(0);const n=ct(!1),s=ct(e.chargepoint),i=we({get(){return r.value},set(R){r.value=R,n.value=!0}});function a(){s.value&&(Ge[s.value.id].etMaxPrice=i.value),n.value=!1}const o=ct(!1),l={top:0,bottom:15,left:20,right:5},u=we(()=>{let R=[];return Pt.etPriceList.size>0&&Pt.etPriceList.forEach((U,I)=>{R.push([I,U])}),R}),c=we(()=>u.value.length>1?(yo-l.left-l.right)/u.value.length-1:0),f=we(()=>n.value?{background:"var(--color-charging)"}:{background:"var(--color-menu)"}),d=we(()=>{let R=Tn(u.value,U=>U[0]);return R[1]&&(R[1]=new Date(R[1]),R[1].setTime(R[1].getTime()+36e5)),Xs().range([l.left,yo-l.right]).domain(R)}),p=we(()=>{let R=[0,0];return u.value.length>0?(R=Tn(u.value,U=>U[1]),R[0]=Math.floor(R[0]-1),R[1]=Math.floor(R[1]+1)):R=[0,0],R}),g=we(()=>Xn().range([Mv-l.bottom,0]).domain(p.value)),b=we(()=>{const R=Nn(),U=[[l.left,g.value(i.value)],[yo-l.right,g.value(i.value)]];return R(U)}),v=we(()=>{const R=Nn(),U=[[l.left,g.value(_e.lowerPriceBound)],[yo-l.right,g.value(_e.lowerPriceBound)]];return R(U)}),w=we(()=>{const R=Nn(),U=[[l.left,g.value(_e.upperPriceBound)],[yo-l.right,g.value(_e.upperPriceBound)]];return R(U)}),_=we(()=>{const R=Nn(),U=[[l.left,g.value(0)],[yo-l.right,g.value(0)]];return R(U)}),y=we(()=>Za(d.value).ticks(6).tickSize(5).tickFormat(rs("%H:%M"))),x=we(()=>Al(g.value).ticks(p.value[1]-p.value[0]).tickSizeInner(-375).tickFormat(R=>R%5!=0?"":R.toString())),T=we(()=>{o.value==!0;const R=Ct("g#"+A.value);R.selectAll("*").remove(),R.selectAll("bar").data(u.value).enter().append("g").append("rect").attr("class","bar").attr("x",$=>d.value($[0])).attr("y",$=>g.value($[1])).attr("width",c.value).attr("height",$=>g.value(p.value[0])-g.value($[1])).attr("fill",$=>$[1]<=i.value?"var(--color-charging)":"var(--color-axis)");const I=R.append("g").attr("class","axis").call(y.value);I.attr("transform","translate(0,"+(Mv-l.bottom)+")"),I.selectAll(".tick").attr("font-size",kv).attr("color","var(--color-bg)"),I.selectAll(".tick line").attr("stroke","var(--color-fg)").attr("stroke-width","0.5"),I.select(".domain").attr("stroke","var(--color-bg");const M=R.append("g").attr("class","axis").call(x.value);return M.attr("transform","translate("+l.left+",0)"),M.selectAll(".tick").attr("font-size",kv).attr("color","var(--color-bg)"),M.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",$=>$%5==0?"2":"0.5"),M.select(".domain").attr("stroke","var(--color-bg)"),p.value[0]<0&&R.append("path").attr("d",_.value).attr("stroke","var(--color-fg)"),R.append("path").attr("d",v.value).attr("stroke","green"),R.append("path").attr("d",w.value).attr("stroke","red"),R.append("path").attr("d",b.value).attr("stroke","yellow"),"PriceChart.vue"}),A=we(()=>e.chargepoint?"priceChartCanvas"+e.chargepoint.id:"priceChartCanvasGlobal"),C=we(()=>{let R=[];return Pt.etPriceList.forEach(U=>{R.push(U)}),R.sort((U,I)=>U-I)});function L(){let R=C.value[0];for(let U of C.value){if(U>=i.value)break;R=U}i.value=R}function j(){let R=C.value[0];for(let U of C.value)if(U>i.value){R=U;break}else R=U;i.value=R}return dn(()=>{o.value=!o.value}),(R,U)=>(ae(),Ee(Ye,null,[z("p",Y3,"Anbieter: "+ke(se(Pt).etProvider),1),U[3]||(U[3]=z("hr",null,null,-1)),z("div",K3,[z("figure",X3,[(ae(),Ee("svg",Q3,[z("g",{id:A.value,origin:T.value,transform:"translate("+l.top+","+l.right+")"},null,8,J3)]))])]),R.chargepoint!=null?(ae(),Ee("div",Z3,[xe(_r,{id:"pricechart_local",modelValue:i.value,"onUpdate:modelValue":U[0]||(U[0]=I=>i.value=I),min:Math.floor(C.value[0]-1),max:Math.ceil(C.value[C.value.length-1]+1),step:.1,decimals:2,"show-subrange":!0,"subrange-min":C.value[0],"subrange-max":C.value[C.value.length-1],unit:"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max"])])):Me("",!0),z("div",{class:"d-flex justify-content-between px-3 pb-2 pt-0 mt-0"},[z("button",{type:"button",class:"btn btn-sm jumpbutton",onClick:L},U[1]||(U[1]=[z("i",{class:"fa fa-sm fa-arrow-left"},null,-1)])),z("button",{type:"button",class:"btn btn-sm jumpbutton",onClick:j},U[2]||(U[2]=[z("i",{class:"fa fa-sm fa-arrow-right"},null,-1)]))]),R.chargepoint!=null?(ae(),Ee("div",e8,[z("span",{class:"me-3 pt-0",onClick:a},[z("button",{type:"button",class:"btn btn-secondary confirmButton",style:ht(f.value),disabled:!n.value}," Bestätigen ",12,t8)])])):Me("",!0)],64))}}),DS=Je(r8,[["__scopeId","data-v-28b81885"]]),n8={class:"pt-2 d-flex flex-column"},i8={class:"subconfigstack grid-col-12"},s8={class:"subconfig subgrid"},o8=je({__name:"ConfigEco",props:{chargepoint:{}},setup(t){const r=ct(t.chargepoint),n=we({get(){return r.value.ecoMaxEnergy/1e3},set(s){r.value.ecoMaxEnergy=s*1e3}});return(s,i)=>(ae(),Ee("div",n8,[i[6]||(i[6]=z("div",{class:"heading ms-1"},"Eco-Laden:",-1)),se(Pt).active?(ae(),Re(DS,{key:0,chargepoint:r.value},null,8,["chargepoint"])):Me("",!0),se(Pt).active?(ae(),Re(et,{key:1,title:"Minimaler Ladestrom unter der Preisgrenze:",icon:"fa-bolt",fullwidth:!0},{default:Ie(()=>[z("div",i8,[z("div",s8,[i[5]||(i[5]=z("span",{class:"subconfigtitle grid-col-1"},"Stärke:",-1)),xe(_r,{id:"minCurrent",modelValue:r.value.ecoMinCurrent,"onUpdate:modelValue":i[0]||(i[0]=a=>r.value.ecoMinCurrent=a),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])])])]),_:1})):Me("",!0),xe(et,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.ecoTargetPhases,"onUpdate:modelValue":i[1]||(i[1]=a=>r.value.ecoTargetPhases=a),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),xe(et,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:r.value.ecoChargeLimitMode,"onUpdate:modelValue":i[2]||(i[2]=a=>r.value.ecoChargeLimitMode=a),options:se(Lm).map(a=>[a.name,a.id])},null,8,["modelValue","options"])]),_:1}),r.value.ecoChargeLimitMode=="soc"?(ae(),Re(et,{key:2,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxSoc",modelValue:r.value.ecoTargetSoc,"onUpdate:modelValue":i[3]||(i[3]=a=>r.value.ecoTargetSoc=a),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):Me("",!0),r.value.ecoChargeLimitMode=="amount"?(ae(),Re(et,{key:3,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:Ie(()=>[xe(_r,{id:"maxEnergy",modelValue:n.value,"onUpdate:modelValue":i[4]||(i[4]=a=>n.value=a),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):Me("",!0)]))}}),a8=Je(o8,[["__scopeId","data-v-106a9fca"]]),l8={class:"settingsheader mt-2 ms-1"},u8=je({__name:"ConfigGeneral",props:{chargepoint:{}},emits:["closeConfig"],setup(t){const r=t.chargepoint;return(n,s)=>(ae(),Ee(Ye,null,[z("p",l8," Ladeeinstellungen für "+ke(se(r).vehicleName)+": ",1),xe(et,{title:"Lademodus",icon:"fa-charging-station",infotext:se(Gi).chargemode,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:se(r).chargeMode,"onUpdate:modelValue":s[0]||(s[0]=i=>se(r).chargeMode=i),columns:3,options:Object.keys(se(yr)).map(i=>[se(yr)[i].name,i,se(yr)[i].color,se(yr)[i].icon])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),Object.values(se(dt)).filter(i=>i.visible).length>1?(ae(),Re(et,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",infotext:se(Gi).vehicle,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:se(r).connectedVehicle,"onUpdate:modelValue":s[1]||(s[1]=i=>se(r).connectedVehicle=i),modelModifiers:{number:!0},options:Object.values(se(dt)).filter(i=>i.visible).map(i=>[i.name,i.id])},null,8,["modelValue","options"])]),_:1},8,["infotext"])):Me("",!0),xe(et,{title:"Sperren",icon:"fa-lock",infotext:se(Gi).locked,fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(r).isLocked,"onUpdate:modelValue":s[2]||(s[2]=i=>se(r).isLocked=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Priorität",icon:"fa-star",infotext:se(Gi).priority,fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(r).hasPriority,"onUpdate:modelValue":s[3]||(s[3]=i=>se(r).hasPriority=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Zeitplan",icon:"fa-clock",infotext:se(Gi).timeplan,fullwidth:!0},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(r).timedCharging,"onUpdate:modelValue":s[4]||(s[4]=i=>se(r).timedCharging=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),se(Yt).isBatteryConfigured?(ae(),Re(et,{key:1,title:"PV-Priorität",icon:"fa-car-battery",infotext:se(Gi).pvpriority,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:se(Yt).pvBatteryPriority,"onUpdate:modelValue":s[5]||(s[5]=i=>se(Yt).pvBatteryPriority=i),options:se(M2)},null,8,["modelValue","options"])]),_:1},8,["infotext"])):Me("",!0)],64))}}),c8=Je(u8,[["__scopeId","data-v-e6ae9e07"]]),f8={class:"status-string"},d8={style:{color:"red"}},h8={class:"m-0 mt-4 p-0 grid-col-12 tabarea"},p8={class:"nav nav-tabs nav-justified mx-1 mt-1",role:"tablist"},g8=["data-bs-target"],m8=["data-bs-target"],b8=["data-bs-target"],y8=["data-bs-target"],w8=["data-bs-target"],v8=["data-bs-target"],_8={id:"settingsPanes",class:"tab-content mx-1 p-1 pb-3"},E8=["id"],S8=["id"],x8=["id"],T8=["id"],A8=["id"],C8=["id"],I8=je({__name:"ChargeConfigPanel",props:{chargepoint:{}},emits:["closeConfig"],setup(t){const r=t.chargepoint,n=we(()=>{var i;return((i=r.chargeTemplate)==null?void 0:i.id)??0}),s=we(()=>r.id);return dn(()=>{}),(i,a)=>(ae(),Ee(Ye,null,[xe(et,{title:"Status",icon:"fa-info-circle",fullwidth:!0,class:"item"},{default:Ie(()=>[z("span",f8,ke(se(r).stateStr),1)]),_:1}),se(r).faultState!=0?(ae(),Re(et,{key:0,title:"Fehler",class:"grid-col-12",icon:"fa-triangle-exclamation"},{default:Ie(()=>[z("span",d8,ke(se(r).faultStr),1)]),_:1})):Me("",!0),z("div",h8,[z("nav",p8,[z("a",{class:"nav-link active","data-bs-toggle":"tab","data-bs-target":"#chargeSettings"+s.value},a[0]||(a[0]=[z("i",{class:"fa-solid fa-charging-station"},null,-1)]),8,g8),z("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#instantSettings"+s.value},a[1]||(a[1]=[z("i",{class:"fa-solid fa-lg fa-bolt"},null,-1)]),8,m8),z("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pvSettings"+s.value},a[2]||(a[2]=[z("i",{class:"fa-solid fa-solar-panel me-1"},null,-1)]),8,b8),z("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#scheduledSettings"+s.value},a[3]||(a[3]=[z("i",{class:"fa-solid fa-bullseye me-1"},null,-1)]),8,y8),z("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#ecoSettings"+s.value},a[4]||(a[4]=[z("i",{class:"fa-solid fa-coins"},null,-1)]),8,w8),z("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#timedSettings"+s.value},a[5]||(a[5]=[z("i",{class:"fa-solid fa-clock"},null,-1)]),8,v8)]),z("div",_8,[z("div",{id:"chargeSettings"+s.value,class:"tab-pane active",role:"tabpanel","aria-labelledby":"instant-tab"},[xe(c8,{chargepoint:i.chargepoint},null,8,["chargepoint"])],8,E8),z("div",{id:"instantSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"instant-tab"},[xe(s3,{chargepoint:se(r),vehicles:se(dt),"charge-templates":se(pg)},null,8,["chargepoint","vehicles","charge-templates"])],8,S8),z("div",{id:"pvSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"pv-tab"},[xe(g3,{chargepoint:se(r),vehicles:se(dt),"charge-templates":se(pg)},null,8,["chargepoint","vehicles","charge-templates"])],8,x8),z("div",{id:"scheduledSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[n.value!=null?(ae(),Re(O3,{key:0,"charge-point":se(r)},null,8,["charge-point"])):Me("",!0)],8,T8),z("div",{id:"ecoSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"eco-tab"},[n.value!=null?(ae(),Re(a8,{key:0,chargepoint:se(r)},null,8,["chargepoint"])):Me("",!0)],8,A8),z("div",{id:"timedSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[n.value!=null?(ae(),Re(G3,{key:0,"charge-point":se(r)},null,8,["charge-point"])):Me("",!0)],8,C8)])])],64))}}),mg=Je(I8,[["__scopeId","data-v-cd92fe69"]]),Wn=je({__name:"FormatWattH",props:{wattH:{}},setup(t){const e=t,r=we(()=>Mi(e.wattH,_e.decimalPlaces));return(n,s)=>(ae(),Ee("span",null,ke(r.value),1))}}),M8={class:"wb-widget p-0 m-0 shadow widgetWidth"},k8={class:"py-4 px-3 d-flex justify-content-between align-items-center titlerow"},P8={class:"d-flex align-items-center widgetname p-0 m-0"},O8={class:"buttonrea d-flex float-right justify-content-end align-items-center"},L8={class:"grid12 pb-3 px-3"},R8=je({__name:"WbWidgetFlex",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(t){const e=t,r=we(()=>e.fullWidth?"col-12":e.variableWidth&&_e.preferWideBoxes?"col-lg-6":"col-lg-4");return(n,s)=>(ae(),Ee("div",{class:rt(["p-2 m-0",r.value])},[z("div",M8,[z("div",k8,[z("div",P8,[Gt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))],!0),Gt(n.$slots,"subtitle",{},void 0,!0)]),z("div",O8,[Gt(n.$slots,"buttons",{},void 0,!0)])]),z("div",L8,[Gt(n.$slots,"default",{},void 0,!0)])])],2))}}),Gn=Je(R8,[["__scopeId","data-v-fb6ac7a4"]]),B8={class:"d-flex justify-content-center align-items-center"},$8=je({__name:"BatterySymbol",props:{soc:{},color:{}},setup(t){const e=t,r=we(()=>e.soc<=12?"fa-battery-empty":e.soc<38?"fa-battery-quarter":e.soc<62?"fa-battery-half":e.soc<87?"fa-battery-three-quarters":"fa-battery-full"),n=we(()=>({color:e.color??"var(--color-menu)"}));return(s,i)=>(ae(),Ee("span",B8,[z("i",{class:rt(["fa me-1",r.value]),style:ht(n.value)},null,6),st(" "+ke(Math.round(s.soc)+"%"),1)]))}}),lf=Je($8,[["__scopeId","data-v-a68c844a"]]),N8=je({__name:"WbBadge",props:{color:{},bgcolor:{}},setup(t){const e=t,r=we(()=>({color:e.color??"var(--color-bg)","background-color":e.bgcolor??"var(--color-menu)"}));return(n,s)=>(ae(),Ee("span",{class:"pillWbBadge rounded-pill ms-2 px-2",style:ht(r.value)},[Gt(n.$slots,"default",{},void 0,!0)],4))}}),un=Je(N8,[["__scopeId","data-v-36112fa3"]]),D8={style:{color:"var(--color-charging)"}},U8={style:{color:"var(--color-charging)"}},F8={style:{color:"var(--color-charging)"}},V8={class:"targetCurrent"},j8=je({__name:"ChargingState",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(t){const e=t,r=we(()=>(Math.round(e.chargepoint.current*10)/10).toLocaleString(void 0)+" A"),n=we(()=>(Math.round(e.chargepoint.realCurrent*10)/10).toLocaleString(void 0)+" A");return(s,i)=>(ae(),Ee(Ye,null,[e.chargepoint.power>0?(ae(),Re(mt,{key:0,heading:"Leistung:",class:"grid-col-3 grid-left mb-3"},{default:Ie(()=>[z("span",D8,[xe(Ll,{watt:e.chargepoint.power},null,8,["watt"])])]),_:1})):Me("",!0),e.chargepoint.power>0?(ae(),Re(mt,{key:1,heading:"Strom:",class:"grid-col-3"},{default:Ie(()=>[z("span",U8,ke(n.value),1)]),_:1})):Me("",!0),e.chargepoint.power>0?(ae(),Re(mt,{key:2,heading:"Phasen:",class:"grid-col-3"},{default:Ie(()=>[z("span",F8,ke(e.chargepoint.phasesInUse),1)]),_:1})):Me("",!0),e.chargepoint.power>0?(ae(),Re(mt,{key:3,heading:"Sollstrom:",class:"grid-col-3 grid-right"},{default:Ie(()=>[z("span",V8,ke(r.value),1)]),_:1})):Me("",!0)],64))}}),W8=Je(j8,[["__scopeId","data-v-2cc82367"]]),z8={class:"carTitleLine d-flex justify-content-between align-items-center"},H8={key:1,class:"me-1 fa-solid fa-xs fa-star ps-1"},q8={key:2,class:"me-0 fa-solid fa-xs fa-clock ps-1"},G8={key:0,class:"carSelector p-4 m-2"},Y8={class:"grid12"},K8={key:2,class:"socEditor rounded mt-2 d-flex flex-column align-items-center grid-col-12 grid-left"},X8={class:"d-flex justify-content-stretch align-items-center"},Q8={key:0,class:"fa-solid fa-sm fas fa-edit ms-2"},J8=["id"],Z8=je({__name:"VehicleData",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(t){const e=t,r=e.chargepoint,n=ct(!1),s=ct(!1),i=ct(!1),a=we({get(){return r.chargeMode},set(w){r.chargeMode=w}}),o=we(()=>{const w=e.chargepoint.rangeCharged,_=e.chargepoint.chargedSincePlugged,y=e.chargepoint.dailyYield;return _>0?Math.round(w/_*y).toString()+" "+e.chargepoint.rangeUnit:"0 km"}),l=we(()=>e.chargepoint.soc),u=we({get(){return e.chargepoint.soc},set(w){Ge[e.chargepoint.id].soc=w}}),c=we(()=>{const[w]=Pt.etPriceList.values();return(Math.round(w*10)/10).toFixed(1)}),f=we(()=>e.chargepoint.etMaxPrice>=+c.value?{color:"var(--color-charging)"}:{color:"var(--color-menu)"}),d=we(()=>Object.values(dt).filter(w=>w.visible)),p=we(()=>e.chargepoint.soc<20?"var(--color-evu)":e.chargepoint.soc>=80?"var(--color-pv)":"var(--color-battery)"),g=we(()=>{switch(e.chargepoint.chargeMode){case"stop":return{color:"var(--fg)"};default:return{color:yr[e.chargepoint.chargeMode].color}}});function b(){vr("socUpdate",1,e.chargepoint.connectedVehicle),Ge[e.chargepoint.id].waitingForSoc=!0}function v(){vr("setSoc",u.value,e.chargepoint.connectedVehicle),n.value=!1}return(w,_)=>(ae(),Ee(Ye,null,[z("div",z8,[z("h3",{onClick:_[0]||(_[0]=y=>i.value=!i.value)},[_[8]||(_[8]=z("i",{class:"fa-solid fa-sm fa-car me-2"},null,-1)),st(" "+ke(w.chargepoint.vehicleName)+" ",1),d.value.length>1?(ae(),Ee("span",{key:0,class:rt(["fa-solid fa-xs me-2",i.value?"fa-caret-up":"fa-caret-down"])},null,2)):Me("",!0),w.chargepoint.hasPriority?(ae(),Ee("span",H8)):Me("",!0),w.chargepoint.timedCharging?(ae(),Ee("span",q8)):Me("",!0)]),w.chargepoint.isSocConfigured?(ae(),Re(un,{key:0,bgcolor:p.value},{default:Ie(()=>[xe(lf,{soc:l.value??0,color:"var(--color-bg)",class:"me-2"},null,8,["soc"]),w.chargepoint.isSocManual?(ae(),Ee("i",{key:0,class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-bg)"},onClick:_[1]||(_[1]=y=>n.value=!n.value)})):Me("",!0),w.chargepoint.isSocManual?Me("",!0):(ae(),Ee("i",{key:1,type:"button",class:rt(["fa-solid fa-sm",w.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),onClick:b},null,2))]),_:1},8,["bgcolor"])):Me("",!0)]),i.value?(ae(),Ee("div",G8,[_[9]||(_[9]=z("span",{class:"changeCarTitle mb-2"},"Fahrzeug wechseln:",-1)),xe(Ir,{modelValue:se(r).connectedVehicle,"onUpdate:modelValue":[_[2]||(_[2]=y=>se(r).connectedVehicle=y),_[3]||(_[3]=y=>i.value=!1)],modelModifiers:{number:!0},options:d.value.map(y=>[y.name,y.id])},null,8,["modelValue","options"])])):Me("",!0),z("div",Y8,[xe(NS,{id:"chargemode-"+w.chargepoint.name,modelValue:a.value,"onUpdate:modelValue":_[4]||(_[4]=y=>a.value=y),class:"chargemodes mt-3 mb-3",options:Object.keys(se(yr)).map(y=>({text:se(yr)[y].name,value:y,color:se(yr)[y].color,icon:se(yr)[y].icon,active:se(yr)[y].mode==w.chargepoint.chargeMode}))},null,8,["id","modelValue","options"]),w.chargepoint.power>0?(ae(),Re(W8,{key:0,chargepoint:w.chargepoint,"full-width":e.fullWidth},null,8,["chargepoint","full-width"])):Me("",!0),xe(mt,{heading:"letzte Ladung:",class:"grid-col-4 grid-left"},{default:Ie(()=>[xe(Wn,{"watt-h":Math.max(w.chargepoint.chargedSincePlugged,0)},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"gel. Reichw.:",class:"grid-col-4"},{default:Ie(()=>[st(ke(o.value),1)]),_:1}),w.chargepoint.isSocConfigured?(ae(),Re(mt,{key:1,heading:"Reichweite:",class:"grid-col-4 grid-right"},{default:Ie(()=>[st(ke(se(dt)[e.chargepoint.connectedVehicle]?Math.round(se(dt)[e.chargepoint.connectedVehicle].range):0)+" km ",1)]),_:1})):Me("",!0),n.value?(ae(),Ee("div",K8,[_[10]||(_[10]=z("span",{class:"d-flex m-1 p-0 socEditTitle"},"Ladestand einstellen:",-1)),z("span",X8,[z("span",null,[xe(_r,{id:"manualSoc",modelValue:u.value,"onUpdate:modelValue":_[5]||(_[5]=y=>u.value=y),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])])]),z("span",{type:"button",class:"fa-solid d-flex fa-lg me-2 mb-3 align-self-end fa-circle-check",onClick:v})])):Me("",!0),_[12]||(_[12]=z("hr",{class:"divider grid-col-12"},null,-1)),se(Pt).active?(ae(),Re(mt,{key:3,heading:"Strompreis:",class:"grid-col-4 grid-left"},{default:Ie(()=>[z("span",{style:ht(f.value)},ke(c.value)+" ct ",5)]),_:1})):Me("",!0),se(r).etActive?(ae(),Re(mt,{key:4,heading:"max. Preis:",class:"grid-col-4"},{default:Ie(()=>[z("span",{type:"button",onClick:_[6]||(_[6]=y=>s.value=!s.value)},[st(ke(e.chargepoint.etActive?(Math.round(e.chargepoint.etMaxPrice*10)/10).toFixed(1)+" ct":"-")+" ",1),e.chargepoint.etActive?(ae(),Ee("i",Q8)):Me("",!0)])]),_:1})):Me("",!0),s.value?(ae(),Ee("div",{key:5,id:"priceChartInline"+e.chargepoint.id,class:"d-flex flex-column rounded priceEditor grid-col-12"},[se(dt)[e.chargepoint.connectedVehicle]!=null?(ae(),Re(DS,{key:0,chargepoint:e.chargepoint},null,8,["chargepoint"])):Me("",!0),z("span",{class:"d-flex ms-2 my-4 pe-3 pt-1 d-flex align-self-end",style:ht(g.value),onClick:_[7]||(_[7]=y=>s.value=!1)},_[11]||(_[11]=[z("span",{type:"button",class:"d-flex fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]),4)],8,J8)):Me("",!0)])],64))}}),eU=Je(Z8,[["__scopeId","data-v-e3fcbd86"]]),tU={class:"d-flex justify-content-center align-items-center"},rU={key:0,class:"WbBadge rounded-pill errorWbBadge ms-3"},nU={key:0},iU={key:1,class:"row m-0 mt-0 p-0"},sU={class:"col m-0 p-0"},oU=je({__name:"CPChargePoint",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(t){const e=t,r=ct(e.chargepoint),n=ct(!1),s=we(()=>e.chargepoint.isLocked?"Gesperrt":e.chargepoint.isCharging?"Lädt":e.chargepoint.isPluggedIn?"Bereit":"Frei"),i=we(()=>e.chargepoint.isLocked?"var(--color-evu)":e.chargepoint.isCharging?"var(--color-charging)":e.chargepoint.isPluggedIn?"var(--color-battery)":"var(--color-axis)"),a=we(()=>{let l="";return e.chargepoint.isLocked?l="fa-lock":e.chargepoint.isCharging?l=" fa-bolt":e.chargepoint.isPluggedIn&&(l="fa-plug"),"fa "+l}),o=we(()=>({color:e.chargepoint.color}));return(l,u)=>n.value?(ae(),Re(Gn,{key:1,"full-width":e.fullWidth},{title:Ie(()=>[z("span",{style:ht(o.value),onClick:u[3]||(u[3]=c=>n.value=!n.value)},[u[8]||(u[8]=z("span",{class:"fas fa-gear"}," ",-1)),st(" Einstellungen "+ke(e.chargepoint.name),1)],4)]),buttons:Ie(()=>[z("span",{class:"ms-2 pt-1",onClick:u[4]||(u[4]=c=>n.value=!n.value)},u[9]||(u[9]=[z("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]))]),default:Ie(()=>[l.chargepoint!=null?(ae(),Re(mg,{key:0,chargepoint:l.chargepoint},null,8,["chargepoint"])):Me("",!0),z("button",{type:"button",class:"close-config-button btn ms-2 pt-1",onClick:u[5]||(u[5]=c=>n.value=!n.value)}," OK ")]),_:1},8,["full-width"])):(ae(),Re(Rl,{key:0,"variable-width":!0,"full-width":e.fullWidth},{title:Ie(()=>[z("span",tU,[z("span",{style:ht(o.value),onClick:u[0]||(u[0]=c=>n.value=!n.value)},[u[6]||(u[6]=z("span",{class:"fa-solid fa-charging-station"}," ",-1)),st(" "+ke(e.chargepoint.name),1)],4),r.value.faultState==2?(ae(),Ee("span",rU,"Fehler")):Me("",!0)])]),buttons:Ie(()=>[z("span",{type:"button",class:"ms-2 ps-1 pt-1",onClick:u[1]||(u[1]=c=>n.value=!n.value)},u[7]||(u[7]=[z("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)]))]),footer:Ie(()=>[n.value?Me("",!0):(ae(),Re(eU,{key:0,chargepoint:e.chargepoint,"full-width":e.fullWidth},null,8,["chargepoint","full-width"]))]),default:Ie(()=>[n.value?Me("",!0):(ae(),Ee("div",nU,[z("div",{class:"grid12",onClick:u[2]||(u[2]=c=>n.value=!n.value)},[xe(mt,{heading:"Status:",class:"grid-col-4 grid-left"},{default:Ie(()=>[z("span",{style:ht({color:i.value})},[z("i",{class:rt(a.value)},null,2),st(" "+ke(s.value),1)],4)]),_:1}),xe(mt,{heading:"Geladen:",class:"grid-col-4 grid-left"},{default:Ie(()=>[xe(Wn,{"watt-h":l.chargepoint.dailyYield},null,8,["watt-h"])]),_:1})])])),n.value?(ae(),Ee("div",iU,[z("div",sU,[l.chargepoint!=null?(ae(),Re(mg,{key:0,chargepoint:l.chargepoint},null,8,["chargepoint"])):Me("",!0)])])):Me("",!0)]),_:1},8,["full-width"]))}}),aU=Je(oU,[["__scopeId","data-v-b35defc2"]]);function Pv(t){return t!==null&&typeof t=="object"&&"constructor"in t&&t.constructor===Object}function jm(t,e){t===void 0&&(t={}),e===void 0&&(e={}),Object.keys(e).forEach(r=>{typeof t[r]>"u"?t[r]=e[r]:Pv(e[r])&&Pv(t[r])&&Object.keys(e[r]).length>0&&jm(t[r],e[r])})}const US={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function ir(){const t=typeof document<"u"?document:{};return jm(t,US),t}const lU={document:US,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(t){return typeof setTimeout>"u"?(t(),null):setTimeout(t,0)},cancelAnimationFrame(t){typeof setTimeout>"u"||clearTimeout(t)}};function Nt(){const t=typeof window<"u"?window:{};return jm(t,lU),t}function zi(t){return t===void 0&&(t=""),t.trim().split(" ").filter(e=>!!e.trim())}function uU(t){const e=t;Object.keys(e).forEach(r=>{try{e[r]=null}catch{}try{delete e[r]}catch{}})}function Qs(t,e){return e===void 0&&(e=0),setTimeout(t,e)}function nn(){return Date.now()}function cU(t){const e=Nt();let r;return e.getComputedStyle&&(r=e.getComputedStyle(t,null)),!r&&t.currentStyle&&(r=t.currentStyle),r||(r=t.style),r}function bg(t,e){e===void 0&&(e="x");const r=Nt();let n,s,i;const a=cU(t);return r.WebKitCSSMatrix?(s=a.transform||a.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(o=>o.replace(",",".")).join(", ")),i=new r.WebKitCSSMatrix(s==="none"?"":s)):(i=a.MozTransform||a.OTransform||a.MsTransform||a.msTransform||a.transform||a.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),n=i.toString().split(",")),e==="x"&&(r.WebKitCSSMatrix?s=i.m41:n.length===16?s=parseFloat(n[12]):s=parseFloat(n[4])),e==="y"&&(r.WebKitCSSMatrix?s=i.m42:n.length===16?s=parseFloat(n[13]):s=parseFloat(n[5])),s||0}function Ha(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"}function fU(t){return typeof window<"u"&&typeof window.HTMLElement<"u"?t instanceof HTMLElement:t&&(t.nodeType===1||t.nodeType===11)}function zr(){const t=Object(arguments.length<=0?void 0:arguments[0]),e=["__proto__","constructor","prototype"];for(let r=1;re.indexOf(i)<0);for(let i=0,a=s.length;ii?"next":"prev",c=(d,p)=>u==="next"&&d>=p||u==="prev"&&d<=p,f=()=>{o=new Date().getTime(),a===null&&(a=o);const d=Math.max(Math.min((o-a)/l,1),0),p=.5-Math.cos(d*Math.PI)/2;let g=i+p*(r-i);if(c(g,r)&&(g=r),e.wrapperEl.scrollTo({[n]:g}),c(g,r)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[n]:g})}),s.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=s.requestAnimationFrame(f)};f()}function co(t){return t.querySelector(".swiper-slide-transform")||t.shadowRoot&&t.shadowRoot.querySelector(".swiper-slide-transform")||t}function ur(t,e){e===void 0&&(e="");const r=Nt(),n=[...t.children];return r.HTMLSlotElement&&t instanceof HTMLSlotElement&&n.push(...t.assignedElements()),e?n.filter(s=>s.matches(e)):n}function dU(t,e){var n,s;const r=[e];for(;r.length>0;){const i=r.shift();if(t===i)return!0;r.push(...i.children,...((n=i.shadowRoot)==null?void 0:n.children)||[],...((s=i.assignedElements)==null?void 0:s.call(i))||[])}}function hU(t,e){const r=Nt();let n=e.contains(t);return!n&&r.HTMLSlotElement&&e instanceof HTMLSlotElement&&(n=[...e.assignedElements()].includes(t),n||(n=dU(t,e))),n}function Tc(t){try{console.warn(t);return}catch{}}function Gr(t,e){e===void 0&&(e=[]);const r=document.createElement(t);return r.classList.add(...Array.isArray(e)?e:zi(e)),r}function Ac(t){const e=Nt(),r=ir(),n=t.getBoundingClientRect(),s=r.body,i=t.clientTop||s.clientTop||0,a=t.clientLeft||s.clientLeft||0,o=t===e?e.scrollY:t.scrollTop,l=t===e?e.scrollX:t.scrollLeft;return{top:n.top+o-i,left:n.left+l-a}}function pU(t,e){const r=[];for(;t.previousElementSibling;){const n=t.previousElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function gU(t,e){const r=[];for(;t.nextElementSibling;){const n=t.nextElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function Qi(t,e){return Nt().getComputedStyle(t,null).getPropertyValue(e)}function wl(t){let e=t,r;if(e){for(r=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(r+=1);return r}}function Ws(t,e){const r=[];let n=t.parentElement;for(;n;)e?n.matches(e)&&r.push(n):r.push(n),n=n.parentElement;return r}function nl(t,e){function r(n){n.target===t&&(e.call(t,n),t.removeEventListener("transitionend",r))}e&&t.addEventListener("transitionend",r)}function yg(t,e,r){const n=Nt();return t[e==="width"?"offsetWidth":"offsetHeight"]+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-right":"margin-top"))+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-left":"margin-bottom"))}function lt(t){return(Array.isArray(t)?t:[t]).filter(e=>!!e)}function uf(t){return e=>Math.abs(e)>0&&t.browser&&t.browser.need3dFix&&Math.abs(e)%90===0?e+.001:e}let jd;function mU(){const t=Nt(),e=ir();return{smoothScroll:e.documentElement&&e.documentElement.style&&"scrollBehavior"in e.documentElement.style,touch:!!("ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch)}}function VS(){return jd||(jd=mU()),jd}let Wd;function bU(t){let{userAgent:e}=t===void 0?{}:t;const r=VS(),n=Nt(),s=n.navigator.platform,i=e||n.navigator.userAgent,a={ios:!1,android:!1},o=n.screen.width,l=n.screen.height,u=i.match(/(Android);?[\s\/]+([\d.]+)?/);let c=i.match(/(iPad).*OS\s([\d_]+)/);const f=i.match(/(iPod)(.*OS\s([\d_]+))?/),d=!c&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/),p=s==="Win32";let g=s==="MacIntel";const b=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!c&&g&&r.touch&&b.indexOf(`${o}x${l}`)>=0&&(c=i.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),g=!1),u&&!p&&(a.os="android",a.android=!0),(c||d||f)&&(a.os="ios",a.ios=!0),a}function jS(t){return t===void 0&&(t={}),Wd||(Wd=bU(t)),Wd}let zd;function yU(){const t=Nt(),e=jS();let r=!1;function n(){const o=t.navigator.userAgent.toLowerCase();return o.indexOf("safari")>=0&&o.indexOf("chrome")<0&&o.indexOf("android")<0}if(n()){const o=String(t.navigator.userAgent);if(o.includes("Version/")){const[l,u]=o.split("Version/")[1].split(" ")[0].split(".").map(c=>Number(c));r=l<16||l===16&&u<2}}const s=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent),i=n(),a=i||s&&e.ios;return{isSafari:r||i,needPerspectiveFix:r,need3dFix:a,isWebView:s}}function wU(){return zd||(zd=yU()),zd}function vU(t){let{swiper:e,on:r,emit:n}=t;const s=Nt();let i=null,a=null;const o=()=>{!e||e.destroyed||!e.initialized||(n("beforeResize"),n("resize"))},l=()=>{!e||e.destroyed||!e.initialized||(i=new ResizeObserver(f=>{a=s.requestAnimationFrame(()=>{const{width:d,height:p}=e;let g=d,b=p;f.forEach(v=>{let{contentBoxSize:w,contentRect:_,target:y}=v;y&&y!==e.el||(g=_?_.width:(w[0]||w).inlineSize,b=_?_.height:(w[0]||w).blockSize)}),(g!==d||b!==p)&&o()})}),i.observe(e.el))},u=()=>{a&&s.cancelAnimationFrame(a),i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null)},c=()=>{!e||e.destroyed||!e.initialized||n("orientationchange")};r("init",()=>{if(e.params.resizeObserver&&typeof s.ResizeObserver<"u"){l();return}s.addEventListener("resize",o),s.addEventListener("orientationchange",c)}),r("destroy",()=>{u(),s.removeEventListener("resize",o),s.removeEventListener("orientationchange",c)})}function _U(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=[],a=Nt(),o=function(c,f){f===void 0&&(f={});const d=a.MutationObserver||a.WebkitMutationObserver,p=new d(g=>{if(e.__preventObserver__)return;if(g.length===1){s("observerUpdate",g[0]);return}const b=function(){s("observerUpdate",g[0])};a.requestAnimationFrame?a.requestAnimationFrame(b):a.setTimeout(b,0)});p.observe(c,{attributes:typeof f.attributes>"u"?!0:f.attributes,childList:e.isElement||(typeof f.childList>"u"?!0:f).childList,characterData:typeof f.characterData>"u"?!0:f.characterData}),i.push(p)},l=()=>{if(e.params.observer){if(e.params.observeParents){const c=Ws(e.hostEl);for(let f=0;f{i.forEach(c=>{c.disconnect()}),i.splice(0,i.length)};r({observer:!1,observeParents:!1,observeSlideChildren:!1}),n("init",l),n("destroy",u)}var EU={on(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;const s=r?"unshift":"push";return t.split(" ").forEach(i=>{n.eventsListeners[i]||(n.eventsListeners[i]=[]),n.eventsListeners[i][s](e)}),n},once(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;function s(){n.off(t,s),s.__emitterProxy&&delete s.__emitterProxy;for(var i=arguments.length,a=new Array(i),o=0;o=0&&e.eventsAnyListeners.splice(r,1),e},off(t,e){const r=this;return!r.eventsListeners||r.destroyed||!r.eventsListeners||t.split(" ").forEach(n=>{typeof e>"u"?r.eventsListeners[n]=[]:r.eventsListeners[n]&&r.eventsListeners[n].forEach((s,i)=>{(s===e||s.__emitterProxy&&s.__emitterProxy===e)&&r.eventsListeners[n].splice(i,1)})}),r},emit(){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let e,r,n;for(var s=arguments.length,i=new Array(s),a=0;a{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(u=>{u.apply(n,[l,...r])}),t.eventsListeners&&t.eventsListeners[l]&&t.eventsListeners[l].forEach(u=>{u.apply(n,r)})}),t}};function SU(){const t=this;let e,r;const n=t.el;typeof t.params.width<"u"&&t.params.width!==null?e=t.params.width:e=n.clientWidth,typeof t.params.height<"u"&&t.params.height!==null?r=t.params.height:r=n.clientHeight,!(e===0&&t.isHorizontal()||r===0&&t.isVertical())&&(e=e-parseInt(Qi(n,"padding-left")||0,10)-parseInt(Qi(n,"padding-right")||0,10),r=r-parseInt(Qi(n,"padding-top")||0,10)-parseInt(Qi(n,"padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(r)&&(r=0),Object.assign(t,{width:e,height:r,size:t.isHorizontal()?e:r}))}function xU(){const t=this;function e(R,U){return parseFloat(R.getPropertyValue(t.getDirectionLabel(U))||0)}const r=t.params,{wrapperEl:n,slidesEl:s,size:i,rtlTranslate:a,wrongRTL:o}=t,l=t.virtual&&r.virtual.enabled,u=l?t.virtual.slides.length:t.slides.length,c=ur(s,`.${t.params.slideClass}, swiper-slide`),f=l?t.virtual.slides.length:c.length;let d=[];const p=[],g=[];let b=r.slidesOffsetBefore;typeof b=="function"&&(b=r.slidesOffsetBefore.call(t));let v=r.slidesOffsetAfter;typeof v=="function"&&(v=r.slidesOffsetAfter.call(t));const w=t.snapGrid.length,_=t.slidesGrid.length;let y=r.spaceBetween,x=-b,T=0,A=0;if(typeof i>"u")return;typeof y=="string"&&y.indexOf("%")>=0?y=parseFloat(y.replace("%",""))/100*i:typeof y=="string"&&(y=parseFloat(y)),t.virtualSize=-y,c.forEach(R=>{a?R.style.marginLeft="":R.style.marginRight="",R.style.marginBottom="",R.style.marginTop=""}),r.centeredSlides&&r.cssMode&&(qa(n,"--swiper-centered-offset-before",""),qa(n,"--swiper-centered-offset-after",""));const C=r.grid&&r.grid.rows>1&&t.grid;C?t.grid.initSlides(c):t.grid&&t.grid.unsetSlides();let L;const j=r.slidesPerView==="auto"&&r.breakpoints&&Object.keys(r.breakpoints).filter(R=>typeof r.breakpoints[R].slidesPerView<"u").length>0;for(let R=0;R1&&d.push(t.virtualSize-i)}if(l&&r.loop){const R=g[0]+y;if(r.slidesPerGroup>1){const U=Math.ceil((t.virtual.slidesBefore+t.virtual.slidesAfter)/r.slidesPerGroup),I=R*r.slidesPerGroup;for(let M=0;M!r.cssMode||r.loop?!0:I!==c.length-1).forEach(U=>{U.style[R]=`${y}px`})}if(r.centeredSlides&&r.centeredSlidesBounds){let R=0;g.forEach(I=>{R+=I+(y||0)}),R-=y;const U=R>i?R-i:0;d=d.map(I=>I<=0?-b:I>U?U+v:I)}if(r.centerInsufficientSlides){let R=0;g.forEach(I=>{R+=I+(y||0)}),R-=y;const U=(r.slidesOffsetBefore||0)+(r.slidesOffsetAfter||0);if(R+U{d[$]=M-I}),p.forEach((M,$)=>{p[$]=M+I})}}if(Object.assign(t,{slides:c,snapGrid:d,slidesGrid:p,slidesSizesGrid:g}),r.centeredSlides&&r.cssMode&&!r.centeredSlidesBounds){qa(n,"--swiper-centered-offset-before",`${-d[0]}px`),qa(n,"--swiper-centered-offset-after",`${t.size/2-g[g.length-1]/2}px`);const R=-t.snapGrid[0],U=-t.slidesGrid[0];t.snapGrid=t.snapGrid.map(I=>I+R),t.slidesGrid=t.slidesGrid.map(I=>I+U)}if(f!==u&&t.emit("slidesLengthChange"),d.length!==w&&(t.params.watchOverflow&&t.checkOverflow(),t.emit("snapGridLengthChange")),p.length!==_&&t.emit("slidesGridLengthChange"),r.watchSlidesProgress&&t.updateSlidesOffset(),t.emit("slidesUpdated"),!l&&!r.cssMode&&(r.effect==="slide"||r.effect==="fade")){const R=`${r.containerModifierClass}backface-hidden`,U=t.el.classList.contains(R);f<=r.maxBackfaceHiddenSlides?U||t.el.classList.add(R):U&&t.el.classList.remove(R)}}function TU(t){const e=this,r=[],n=e.virtual&&e.params.virtual.enabled;let s=0,i;typeof t=="number"?e.setTransition(t):t===!0&&e.setTransition(e.params.speed);const a=o=>n?e.slides[e.getSlideIndexByData(o)]:e.slides[o];if(e.params.slidesPerView!=="auto"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(o=>{r.push(o)});else for(i=0;ie.slides.length&&!n)break;r.push(a(o))}else r.push(a(e.activeIndex));for(i=0;is?o:s}(s||s===0)&&(e.wrapperEl.style.height=`${s}px`)}function AU(){const t=this,e=t.slides,r=t.isElement?t.isHorizontal()?t.wrapperEl.offsetLeft:t.wrapperEl.offsetTop:0;for(let n=0;n{e&&!t.classList.contains(r)?t.classList.add(r):!e&&t.classList.contains(r)&&t.classList.remove(r)};function CU(t){t===void 0&&(t=this&&this.translate||0);const e=this,r=e.params,{slides:n,rtlTranslate:s,snapGrid:i}=e;if(n.length===0)return;typeof n[0].swiperSlideOffset>"u"&&e.updateSlidesOffset();let a=-t;s&&(a=t),e.visibleSlidesIndexes=[],e.visibleSlides=[];let o=r.spaceBetween;typeof o=="string"&&o.indexOf("%")>=0?o=parseFloat(o.replace("%",""))/100*e.size:typeof o=="string"&&(o=parseFloat(o));for(let l=0;l=0&&p<=e.size-e.slidesSizesGrid[l],v=p>=0&&p1&&g<=e.size||p<=0&&g>=e.size;v&&(e.visibleSlides.push(u),e.visibleSlidesIndexes.push(l)),Ov(u,v,r.slideVisibleClass),Ov(u,b,r.slideFullyVisibleClass),u.progress=s?-f:f,u.originalProgress=s?-d:d}}function IU(t){const e=this;if(typeof t>"u"){const c=e.rtlTranslate?-1:1;t=e&&e.translate&&e.translate*c||0}const r=e.params,n=e.maxTranslate()-e.minTranslate();let{progress:s,isBeginning:i,isEnd:a,progressLoop:o}=e;const l=i,u=a;if(n===0)s=0,i=!0,a=!0;else{s=(t-e.minTranslate())/n;const c=Math.abs(t-e.minTranslate())<1,f=Math.abs(t-e.maxTranslate())<1;i=c||s<=0,a=f||s>=1,c&&(s=0),f&&(s=1)}if(r.loop){const c=e.getSlideIndexByData(0),f=e.getSlideIndexByData(e.slides.length-1),d=e.slidesGrid[c],p=e.slidesGrid[f],g=e.slidesGrid[e.slidesGrid.length-1],b=Math.abs(t);b>=d?o=(b-d)/g:o=(b+g-p)/g,o>1&&(o-=1)}Object.assign(e,{progress:s,progressLoop:o,isBeginning:i,isEnd:a}),(r.watchSlidesProgress||r.centeredSlides&&r.autoHeight)&&e.updateSlidesProgress(t),i&&!l&&e.emit("reachBeginning toEdge"),a&&!u&&e.emit("reachEnd toEdge"),(l&&!i||u&&!a)&&e.emit("fromEdge"),e.emit("progress",s)}const Hd=(t,e,r)=>{e&&!t.classList.contains(r)?t.classList.add(r):!e&&t.classList.contains(r)&&t.classList.remove(r)};function MU(){const t=this,{slides:e,params:r,slidesEl:n,activeIndex:s}=t,i=t.virtual&&r.virtual.enabled,a=t.grid&&r.grid&&r.grid.rows>1,o=f=>ur(n,`.${r.slideClass}${f}, swiper-slide${f}`)[0];let l,u,c;if(i)if(r.loop){let f=s-t.virtual.slidesBefore;f<0&&(f=t.virtual.slides.length+f),f>=t.virtual.slides.length&&(f-=t.virtual.slides.length),l=o(`[data-swiper-slide-index="${f}"]`)}else l=o(`[data-swiper-slide-index="${s}"]`);else a?(l=e.find(f=>f.column===s),c=e.find(f=>f.column===s+1),u=e.find(f=>f.column===s-1)):l=e[s];l&&(a||(c=gU(l,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!c&&(c=e[0]),u=pU(l,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!u===0&&(u=e[e.length-1]))),e.forEach(f=>{Hd(f,f===l,r.slideActiveClass),Hd(f,f===c,r.slideNextClass),Hd(f,f===u,r.slidePrevClass)}),t.emitSlidesClasses()}const zu=(t,e)=>{if(!t||t.destroyed||!t.params)return;const r=()=>t.isElement?"swiper-slide":`.${t.params.slideClass}`,n=e.closest(r());if(n){let s=n.querySelector(`.${t.params.lazyPreloaderClass}`);!s&&t.isElement&&(n.shadowRoot?s=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{n.shadowRoot&&(s=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`),s&&s.remove())})),s&&s.remove()}},qd=(t,e)=>{if(!t.slides[e])return;const r=t.slides[e].querySelector('[loading="lazy"]');r&&r.removeAttribute("loading")},wg=t=>{if(!t||t.destroyed||!t.params)return;let e=t.params.lazyPreloadPrevNext;const r=t.slides.length;if(!r||!e||e<0)return;e=Math.min(e,r);const n=t.params.slidesPerView==="auto"?t.slidesPerViewDynamic():Math.ceil(t.params.slidesPerView),s=t.activeIndex;if(t.params.grid&&t.params.grid.rows>1){const a=s,o=[a-e];o.push(...Array.from({length:e}).map((l,u)=>a+n+u)),t.slides.forEach((l,u)=>{o.includes(l.column)&&qd(t,u)});return}const i=s+n-1;if(t.params.rewind||t.params.loop)for(let a=s-e;a<=i+e;a+=1){const o=(a%r+r)%r;(oi)&&qd(t,o)}else for(let a=Math.max(s-e,0);a<=Math.min(i+e,r-1);a+=1)a!==s&&(a>i||a=e[i]&&n=e[i]&&n=e[i]&&(s=i);return r.normalizeSlideIndex&&(s<0||typeof s>"u")&&(s=0),s}function PU(t){const e=this,r=e.rtlTranslate?e.translate:-e.translate,{snapGrid:n,params:s,activeIndex:i,realIndex:a,snapIndex:o}=e;let l=t,u;const c=p=>{let g=p-e.virtual.slidesBefore;return g<0&&(g=e.virtual.slides.length+g),g>=e.virtual.slides.length&&(g-=e.virtual.slides.length),g};if(typeof l>"u"&&(l=kU(e)),n.indexOf(r)>=0)u=n.indexOf(r);else{const p=Math.min(s.slidesPerGroupSkip,l);u=p+Math.floor((l-p)/s.slidesPerGroup)}if(u>=n.length&&(u=n.length-1),l===i&&!e.params.loop){u!==o&&(e.snapIndex=u,e.emit("snapIndexChange"));return}if(l===i&&e.params.loop&&e.virtual&&e.params.virtual.enabled){e.realIndex=c(l);return}const f=e.grid&&s.grid&&s.grid.rows>1;let d;if(e.virtual&&s.virtual.enabled&&s.loop)d=c(l);else if(f){const p=e.slides.find(b=>b.column===l);let g=parseInt(p.getAttribute("data-swiper-slide-index"),10);Number.isNaN(g)&&(g=Math.max(e.slides.indexOf(p),0)),d=Math.floor(g/s.grid.rows)}else if(e.slides[l]){const p=e.slides[l].getAttribute("data-swiper-slide-index");p?d=parseInt(p,10):d=l}else d=l;Object.assign(e,{previousSnapIndex:o,snapIndex:u,previousRealIndex:a,realIndex:d,previousIndex:i,activeIndex:l}),e.initialized&&wg(e),e.emit("activeIndexChange"),e.emit("snapIndexChange"),(e.initialized||e.params.runCallbacksOnInit)&&(a!==d&&e.emit("realIndexChange"),e.emit("slideChange"))}function OU(t,e){const r=this,n=r.params;let s=t.closest(`.${n.slideClass}, swiper-slide`);!s&&r.isElement&&e&&e.length>1&&e.includes(t)&&[...e.slice(e.indexOf(t)+1,e.length)].forEach(o=>{!s&&o.matches&&o.matches(`.${n.slideClass}, swiper-slide`)&&(s=o)});let i=!1,a;if(s){for(let o=0;ol?c=l:n&&ta?o="next":i"u"&&(e=i.params.speed);const b=Math.min(i.params.slidesPerGroupSkip,a);let v=b+Math.floor((a-b)/i.params.slidesPerGroup);v>=l.length&&(v=l.length-1);const w=-l[v];if(o.normalizeSlideIndex)for(let T=0;T=C&&A=C&&A=C&&(a=T)}if(i.initialized&&a!==f&&(!i.allowSlideNext&&(d?w>i.translate&&w>i.minTranslate():wi.translate&&w>i.maxTranslate()&&(f||0)!==a))return!1;a!==(c||0)&&r&&i.emit("beforeSlideChangeStart"),i.updateProgress(w);let _;a>f?_="next":a0?(i._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{p[T?"scrollLeft":"scrollTop"]=A})):p[T?"scrollLeft":"scrollTop"]=A,y&&requestAnimationFrame(()=>{i.wrapperEl.style.scrollSnapType="",i._immediateVirtual=!1});else{if(!i.support.smoothScroll)return FS({swiper:i,targetPosition:A,side:T?"left":"top"}),!0;p.scrollTo({[T?"left":"top"]:A,behavior:"smooth"})}return!0}return i.setTransition(e),i.setTranslate(w),i.updateActiveIndex(a),i.updateSlidesClasses(),i.emit("beforeTransitionStart",e,n),i.transitionStart(r,_),e===0?i.transitionEnd(r,_):i.animating||(i.animating=!0,i.onSlideToWrapperTransitionEnd||(i.onSlideToWrapperTransitionEnd=function(A){!i||i.destroyed||A.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onSlideToWrapperTransitionEnd),i.onSlideToWrapperTransitionEnd=null,delete i.onSlideToWrapperTransitionEnd,i.transitionEnd(r,_))}),i.wrapperEl.addEventListener("transitionend",i.onSlideToWrapperTransitionEnd)),!0}function HU(t,e,r,n){t===void 0&&(t=0),r===void 0&&(r=!0),typeof t=="string"&&(t=parseInt(t,10));const s=this;if(s.destroyed)return;typeof e>"u"&&(e=s.params.speed);const i=s.grid&&s.params.grid&&s.params.grid.rows>1;let a=t;if(s.params.loop)if(s.virtual&&s.params.virtual.enabled)a=a+s.virtual.slidesBefore;else{let o;if(i){const d=a*s.params.grid.rows;o=s.slides.find(p=>p.getAttribute("data-swiper-slide-index")*1===d).column}else o=s.getSlideIndexByData(a);const l=i?Math.ceil(s.slides.length/s.params.grid.rows):s.slides.length,{centeredSlides:u}=s.params;let c=s.params.slidesPerView;c==="auto"?c=s.slidesPerViewDynamic():(c=Math.ceil(parseFloat(s.params.slidesPerView,10)),u&&c%2===0&&(c=c+1));let f=l-op.getAttribute("data-swiper-slide-index")*1===d).column}else a=s.getSlideIndexByData(a)}return requestAnimationFrame(()=>{s.slideTo(a,e,r,n)}),s}function qU(t,e,r){e===void 0&&(e=!0);const n=this,{enabled:s,params:i,animating:a}=n;if(!s||n.destroyed)return n;typeof t>"u"&&(t=n.params.speed);let o=i.slidesPerGroup;i.slidesPerView==="auto"&&i.slidesPerGroup===1&&i.slidesPerGroupAuto&&(o=Math.max(n.slidesPerViewDynamic("current",!0),1));const l=n.activeIndex{n.slideTo(n.activeIndex+l,t,e,r)}),!0}return i.rewind&&n.isEnd?n.slideTo(0,t,e,r):n.slideTo(n.activeIndex+l,t,e,r)}function GU(t,e,r){e===void 0&&(e=!0);const n=this,{params:s,snapGrid:i,slidesGrid:a,rtlTranslate:o,enabled:l,animating:u}=n;if(!l||n.destroyed)return n;typeof t>"u"&&(t=n.params.speed);const c=n.virtual&&s.virtual.enabled;if(s.loop){if(u&&!c&&s.loopPreventsSliding)return!1;n.loopFix({direction:"prev"}),n._clientLeft=n.wrapperEl.clientLeft}const f=o?n.translate:-n.translate;function d(w){return w<0?-Math.floor(Math.abs(w)):Math.floor(w)}const p=d(f),g=i.map(w=>d(w));let b=i[g.indexOf(p)-1];if(typeof b>"u"&&s.cssMode){let w;i.forEach((_,y)=>{p>=_&&(w=y)}),typeof w<"u"&&(b=i[w>0?w-1:w])}let v=0;if(typeof b<"u"&&(v=a.indexOf(b),v<0&&(v=n.activeIndex-1),s.slidesPerView==="auto"&&s.slidesPerGroup===1&&s.slidesPerGroupAuto&&(v=v-n.slidesPerViewDynamic("previous",!0)+1,v=Math.max(v,0))),s.rewind&&n.isBeginning){const w=n.params.virtual&&n.params.virtual.enabled&&n.virtual?n.virtual.slides.length-1:n.slides.length-1;return n.slideTo(w,t,e,r)}else if(s.loop&&n.activeIndex===0&&s.cssMode)return requestAnimationFrame(()=>{n.slideTo(v,t,e,r)}),!0;return n.slideTo(v,t,e,r)}function YU(t,e,r){e===void 0&&(e=!0);const n=this;if(!n.destroyed)return typeof t>"u"&&(t=n.params.speed),n.slideTo(n.activeIndex,t,e,r)}function KU(t,e,r,n){e===void 0&&(e=!0),n===void 0&&(n=.5);const s=this;if(s.destroyed)return;typeof t>"u"&&(t=s.params.speed);let i=s.activeIndex;const a=Math.min(s.params.slidesPerGroupSkip,i),o=a+Math.floor((i-a)/s.params.slidesPerGroup),l=s.rtlTranslate?s.translate:-s.translate;if(l>=s.snapGrid[o]){const u=s.snapGrid[o],c=s.snapGrid[o+1];l-u>(c-u)*n&&(i+=s.params.slidesPerGroup)}else{const u=s.snapGrid[o-1],c=s.snapGrid[o];l-u<=(c-u)*n&&(i-=s.params.slidesPerGroup)}return i=Math.max(i,0),i=Math.min(i,s.slidesGrid.length-1),s.slideTo(i,t,e,r)}function XU(){const t=this;if(t.destroyed)return;const{params:e,slidesEl:r}=t,n=e.slidesPerView==="auto"?t.slidesPerViewDynamic():e.slidesPerView;let s=t.clickedIndex,i;const a=t.isElement?"swiper-slide":`.${e.slideClass}`;if(e.loop){if(t.animating)return;i=parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"),10),e.centeredSlides?st.slides.length-t.loopedSlides+n/2?(t.loopFix(),s=t.getSlideIndex(ur(r,`${a}[data-swiper-slide-index="${i}"]`)[0]),Qs(()=>{t.slideTo(s)})):t.slideTo(s):s>t.slides.length-n?(t.loopFix(),s=t.getSlideIndex(ur(r,`${a}[data-swiper-slide-index="${i}"]`)[0]),Qs(()=>{t.slideTo(s)})):t.slideTo(s)}else t.slideTo(s)}var QU={slideTo:zU,slideToLoop:HU,slideNext:qU,slidePrev:GU,slideReset:YU,slideToClosest:KU,slideToClickedSlide:XU};function JU(t){const e=this,{params:r,slidesEl:n}=e;if(!r.loop||e.virtual&&e.params.virtual.enabled)return;const s=()=>{ur(n,`.${r.slideClass}, swiper-slide`).forEach((f,d)=>{f.setAttribute("data-swiper-slide-index",d)})},i=e.grid&&r.grid&&r.grid.rows>1,a=r.slidesPerGroup*(i?r.grid.rows:1),o=e.slides.length%a!==0,l=i&&e.slides.length%r.grid.rows!==0,u=c=>{for(let f=0;f1;u.length"u"?i=l.getSlideIndex(u.find(M=>M.classList.contains(p.slideActiveClass))):T=i;const A=n==="next"||!n,C=n==="prev"||!n;let L=0,j=0;const R=_?Math.ceil(u.length/p.grid.rows):u.length,I=(_?u[i].column:i)+(g&&typeof s>"u"?-b/2+.5:0);if(I=0;ne-=1)u[ne].column===Z&&y.push(ne)}else y.push(R-$-1)}}else if(I+b>R-w){j=Math.max(I-(R-w*2),v);for(let M=0;M{Z.column===$&&x.push(ne)}):x.push($)}}if(l.__preventObserver__=!0,requestAnimationFrame(()=>{l.__preventObserver__=!1}),C&&y.forEach(M=>{u[M].swiperLoopMoveDOM=!0,d.prepend(u[M]),u[M].swiperLoopMoveDOM=!1}),A&&x.forEach(M=>{u[M].swiperLoopMoveDOM=!0,d.append(u[M]),u[M].swiperLoopMoveDOM=!1}),l.recalcSlides(),p.slidesPerView==="auto"?l.updateSlides():_&&(y.length>0&&C||x.length>0&&A)&&l.slides.forEach((M,$)=>{l.grid.updateSlide($,M,l.slides)}),p.watchSlidesProgress&&l.updateSlidesOffset(),r){if(y.length>0&&C){if(typeof e>"u"){const M=l.slidesGrid[T],Z=l.slidesGrid[T+L]-M;o?l.setTranslate(l.translate-Z):(l.slideTo(T+Math.ceil(L),0,!1,!0),s&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-Z,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-Z))}else if(s){const M=_?y.length/p.grid.rows:y.length;l.slideTo(l.activeIndex+M,0,!1,!0),l.touchEventsData.currentTranslate=l.translate}}else if(x.length>0&&A)if(typeof e>"u"){const M=l.slidesGrid[T],Z=l.slidesGrid[T-j]-M;o?l.setTranslate(l.translate-Z):(l.slideTo(T-j,0,!1,!0),s&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-Z,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-Z))}else{const M=_?x.length/p.grid.rows:x.length;l.slideTo(l.activeIndex-M,0,!1,!0)}}if(l.allowSlidePrev=c,l.allowSlideNext=f,l.controller&&l.controller.control&&!a){const M={slideRealIndex:e,direction:n,setTranslate:s,activeSlideIndex:i,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach($=>{!$.destroyed&&$.params.loop&&$.loopFix({...M,slideTo:$.params.slidesPerView===p.slidesPerView?r:!1})}):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix({...M,slideTo:l.controller.control.params.slidesPerView===p.slidesPerView?r:!1})}l.emit("loopFix")}function eF(){const t=this,{params:e,slidesEl:r}=t;if(!e.loop||t.virtual&&t.params.virtual.enabled)return;t.recalcSlides();const n=[];t.slides.forEach(s=>{const i=typeof s.swiperSlideIndex>"u"?s.getAttribute("data-swiper-slide-index")*1:s.swiperSlideIndex;n[i]=s}),t.slides.forEach(s=>{s.removeAttribute("data-swiper-slide-index")}),n.forEach(s=>{r.append(s)}),t.recalcSlides(),t.slideTo(t.realIndex,0)}var tF={loopCreate:JU,loopFix:ZU,loopDestroy:eF};function rF(t){const e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;const r=e.params.touchEventsTarget==="container"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),r.style.cursor="move",r.style.cursor=t?"grabbing":"grab",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function nF(){const t=this;t.params.watchOverflow&&t.isLocked||t.params.cssMode||(t.isElement&&(t.__preventObserver__=!0),t[t.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1}))}var iF={setGrabCursor:rF,unsetGrabCursor:nF};function sF(t,e){e===void 0&&(e=this);function r(n){if(!n||n===ir()||n===Nt())return null;n.assignedSlot&&(n=n.assignedSlot);const s=n.closest(t);return!s&&!n.getRootNode?null:s||r(n.getRootNode().host)}return r(e)}function Lv(t,e,r){const n=Nt(),{params:s}=t,i=s.edgeSwipeDetection,a=s.edgeSwipeThreshold;return i&&(r<=a||r>=n.innerWidth-a)?i==="prevent"?(e.preventDefault(),!0):!1:!0}function oF(t){const e=this,r=ir();let n=t;n.originalEvent&&(n=n.originalEvent);const s=e.touchEventsData;if(n.type==="pointerdown"){if(s.pointerId!==null&&s.pointerId!==n.pointerId)return;s.pointerId=n.pointerId}else n.type==="touchstart"&&n.targetTouches.length===1&&(s.touchId=n.targetTouches[0].identifier);if(n.type==="touchstart"){Lv(e,n,n.targetTouches[0].pageX);return}const{params:i,touches:a,enabled:o}=e;if(!o||!i.simulateTouch&&n.pointerType==="mouse"||e.animating&&i.preventInteractionOnTransition)return;!e.animating&&i.cssMode&&i.loop&&e.loopFix();let l=n.target;if(i.touchEventsTarget==="wrapper"&&!hU(l,e.wrapperEl)||"which"in n&&n.which===3||"button"in n&&n.button>0||s.isTouched&&s.isMoved)return;const u=!!i.noSwipingClass&&i.noSwipingClass!=="",c=n.composedPath?n.composedPath():n.path;u&&n.target&&n.target.shadowRoot&&c&&(l=c[0]);const f=i.noSwipingSelector?i.noSwipingSelector:`.${i.noSwipingClass}`,d=!!(n.target&&n.target.shadowRoot);if(i.noSwiping&&(d?sF(f,l):l.closest(f))){e.allowClick=!0;return}if(i.swipeHandler&&!l.closest(i.swipeHandler))return;a.currentX=n.pageX,a.currentY=n.pageY;const p=a.currentX,g=a.currentY;if(!Lv(e,n,p))return;Object.assign(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),a.startX=p,a.startY=g,s.touchStartTime=nn(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,i.threshold>0&&(s.allowThresholdMove=!1);let b=!0;l.matches(s.focusableElements)&&(b=!1,l.nodeName==="SELECT"&&(s.isTouched=!1)),r.activeElement&&r.activeElement.matches(s.focusableElements)&&r.activeElement!==l&&(n.pointerType==="mouse"||n.pointerType!=="mouse"&&!l.matches(s.focusableElements))&&r.activeElement.blur();const v=b&&e.allowTouchMove&&i.touchStartPreventDefault;(i.touchStartForcePreventDefault||v)&&!l.isContentEditable&&n.preventDefault(),i.freeMode&&i.freeMode.enabled&&e.freeMode&&e.animating&&!i.cssMode&&e.freeMode.onTouchStart(),e.emit("touchStart",n)}function aF(t){const e=ir(),r=this,n=r.touchEventsData,{params:s,touches:i,rtlTranslate:a,enabled:o}=r;if(!o||!s.simulateTouch&&t.pointerType==="mouse")return;let l=t;if(l.originalEvent&&(l=l.originalEvent),l.type==="pointermove"&&(n.touchId!==null||l.pointerId!==n.pointerId))return;let u;if(l.type==="touchmove"){if(u=[...l.changedTouches].find(T=>T.identifier===n.touchId),!u||u.identifier!==n.touchId)return}else u=l;if(!n.isTouched){n.startMoving&&n.isScrolling&&r.emit("touchMoveOpposite",l);return}const c=u.pageX,f=u.pageY;if(l.preventedByNestedSwiper){i.startX=c,i.startY=f;return}if(!r.allowTouchMove){l.target.matches(n.focusableElements)||(r.allowClick=!1),n.isTouched&&(Object.assign(i,{startX:c,startY:f,currentX:c,currentY:f}),n.touchStartTime=nn());return}if(s.touchReleaseOnEdges&&!s.loop){if(r.isVertical()){if(fi.startY&&r.translate>=r.minTranslate()){n.isTouched=!1,n.isMoved=!1;return}}else if(ci.startX&&r.translate>=r.minTranslate())return}if(e.activeElement&&e.activeElement.matches(n.focusableElements)&&e.activeElement!==l.target&&l.pointerType!=="mouse"&&e.activeElement.blur(),e.activeElement&&l.target===e.activeElement&&l.target.matches(n.focusableElements)){n.isMoved=!0,r.allowClick=!1;return}n.allowTouchCallbacks&&r.emit("touchMove",l),i.previousX=i.currentX,i.previousY=i.currentY,i.currentX=c,i.currentY=f;const d=i.currentX-i.startX,p=i.currentY-i.startY;if(r.params.threshold&&Math.sqrt(d**2+p**2)"u"){let T;r.isHorizontal()&&i.currentY===i.startY||r.isVertical()&&i.currentX===i.startX?n.isScrolling=!1:d*d+p*p>=25&&(T=Math.atan2(Math.abs(p),Math.abs(d))*180/Math.PI,n.isScrolling=r.isHorizontal()?T>s.touchAngle:90-T>s.touchAngle)}if(n.isScrolling&&r.emit("touchMoveOpposite",l),typeof n.startMoving>"u"&&(i.currentX!==i.startX||i.currentY!==i.startY)&&(n.startMoving=!0),n.isScrolling||l.type==="touchmove"&&n.preventTouchMoveFromPointerMove){n.isTouched=!1;return}if(!n.startMoving)return;r.allowClick=!1,!s.cssMode&&l.cancelable&&l.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&l.stopPropagation();let g=r.isHorizontal()?d:p,b=r.isHorizontal()?i.currentX-i.previousX:i.currentY-i.previousY;s.oneWayMovement&&(g=Math.abs(g)*(a?1:-1),b=Math.abs(b)*(a?1:-1)),i.diff=g,g*=s.touchRatio,a&&(g=-g,b=-b);const v=r.touchesDirection;r.swipeDirection=g>0?"prev":"next",r.touchesDirection=b>0?"prev":"next";const w=r.params.loop&&!s.cssMode,_=r.touchesDirection==="next"&&r.allowSlideNext||r.touchesDirection==="prev"&&r.allowSlidePrev;if(!n.isMoved){if(w&&_&&r.loopFix({direction:r.swipeDirection}),n.startTranslate=r.getTranslate(),r.setTransition(0),r.animating){const T=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});r.wrapperEl.dispatchEvent(T)}n.allowMomentumBounce=!1,s.grabCursor&&(r.allowSlideNext===!0||r.allowSlidePrev===!0)&&r.setGrabCursor(!0),r.emit("sliderFirstMove",l)}if(new Date().getTime(),n.isMoved&&n.allowThresholdMove&&v!==r.touchesDirection&&w&&_&&Math.abs(g)>=1){Object.assign(i,{startX:c,startY:f,currentX:c,currentY:f,startTranslate:n.currentTranslate}),n.loopSwapReset=!0,n.startTranslate=n.currentTranslate;return}r.emit("sliderMove",l),n.isMoved=!0,n.currentTranslate=g+n.startTranslate;let y=!0,x=s.resistanceRatio;if(s.touchReleaseOnEdges&&(x=0),g>0?(w&&_&&n.allowThresholdMove&&n.currentTranslate>(s.centeredSlides?r.minTranslate()-r.slidesSizesGrid[r.activeIndex+1]-(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.activeIndex+1]+r.params.spaceBetween:0)-r.params.spaceBetween:r.minTranslate())&&r.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),n.currentTranslate>r.minTranslate()&&(y=!1,s.resistance&&(n.currentTranslate=r.minTranslate()-1+(-r.minTranslate()+n.startTranslate+g)**x))):g<0&&(w&&_&&n.allowThresholdMove&&n.currentTranslate<(s.centeredSlides?r.maxTranslate()+r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween+(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween:0):r.maxTranslate())&&r.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:r.slides.length-(s.slidesPerView==="auto"?r.slidesPerViewDynamic():Math.ceil(parseFloat(s.slidesPerView,10)))}),n.currentTranslaten.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&!r.allowSlideNext&&(n.currentTranslate=n.startTranslate),s.threshold>0)if(Math.abs(g)>s.threshold||n.allowThresholdMove){if(!n.allowThresholdMove){n.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,n.currentTranslate=n.startTranslate,i.diff=r.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY;return}}else{n.currentTranslate=n.startTranslate;return}!s.followFinger||s.cssMode||((s.freeMode&&s.freeMode.enabled&&r.freeMode||s.watchSlidesProgress)&&(r.updateActiveIndex(),r.updateSlidesClasses()),s.freeMode&&s.freeMode.enabled&&r.freeMode&&r.freeMode.onTouchMove(),r.updateProgress(n.currentTranslate),r.setTranslate(n.currentTranslate))}function lF(t){const e=this,r=e.touchEventsData;let n=t;n.originalEvent&&(n=n.originalEvent);let s;if(n.type==="touchend"||n.type==="touchcancel"){if(s=[...n.changedTouches].find(T=>T.identifier===r.touchId),!s||s.identifier!==r.touchId)return}else{if(r.touchId!==null||n.pointerId!==r.pointerId)return;s=n}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(n.type)&&!(["pointercancel","contextmenu"].includes(n.type)&&(e.browser.isSafari||e.browser.isWebView)))return;r.pointerId=null,r.touchId=null;const{params:a,touches:o,rtlTranslate:l,slidesGrid:u,enabled:c}=e;if(!c||!a.simulateTouch&&n.pointerType==="mouse")return;if(r.allowTouchCallbacks&&e.emit("touchEnd",n),r.allowTouchCallbacks=!1,!r.isTouched){r.isMoved&&a.grabCursor&&e.setGrabCursor(!1),r.isMoved=!1,r.startMoving=!1;return}a.grabCursor&&r.isMoved&&r.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);const f=nn(),d=f-r.touchStartTime;if(e.allowClick){const T=n.path||n.composedPath&&n.composedPath();e.updateClickedSlide(T&&T[0]||n.target,T),e.emit("tap click",n),d<300&&f-r.lastClickTime<300&&e.emit("doubleTap doubleClick",n)}if(r.lastClickTime=nn(),Qs(()=>{e.destroyed||(e.allowClick=!0)}),!r.isTouched||!r.isMoved||!e.swipeDirection||o.diff===0&&!r.loopSwapReset||r.currentTranslate===r.startTranslate&&!r.loopSwapReset){r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;return}r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;let p;if(a.followFinger?p=l?e.translate:-e.translate:p=-r.currentTranslate,a.cssMode)return;if(a.freeMode&&a.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:p});return}const g=p>=-e.maxTranslate()&&!e.params.loop;let b=0,v=e.slidesSizesGrid[0];for(let T=0;T=u[T]&&p=u[T])&&(b=T,v=u[u.length-1]-u[u.length-2])}let w=null,_=null;a.rewind&&(e.isBeginning?_=a.virtual&&a.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(w=0));const y=(p-u[b])/v,x=ba.longSwipesMs){if(!a.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(y>=a.longSwipesRatio?e.slideTo(a.rewind&&e.isEnd?w:b+x):e.slideTo(b)),e.swipeDirection==="prev"&&(y>1-a.longSwipesRatio?e.slideTo(b+x):_!==null&&y<0&&Math.abs(y)>a.longSwipesRatio?e.slideTo(_):e.slideTo(b))}else{if(!a.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(n.target===e.navigation.nextEl||n.target===e.navigation.prevEl)?n.target===e.navigation.nextEl?e.slideTo(b+x):e.slideTo(b):(e.swipeDirection==="next"&&e.slideTo(w!==null?w:b+x),e.swipeDirection==="prev"&&e.slideTo(_!==null?_:b))}}function Rv(){const t=this,{params:e,el:r}=t;if(r&&r.offsetWidth===0)return;e.breakpoints&&t.setBreakpoint();const{allowSlideNext:n,allowSlidePrev:s,snapGrid:i}=t,a=t.virtual&&t.params.virtual.enabled;t.allowSlideNext=!0,t.allowSlidePrev=!0,t.updateSize(),t.updateSlides(),t.updateSlidesClasses();const o=a&&e.loop;(e.slidesPerView==="auto"||e.slidesPerView>1)&&t.isEnd&&!t.isBeginning&&!t.params.centeredSlides&&!o?t.slideTo(t.slides.length-1,0,!1,!0):t.params.loop&&!a?t.slideToLoop(t.realIndex,0,!1,!0):t.slideTo(t.activeIndex,0,!1,!0),t.autoplay&&t.autoplay.running&&t.autoplay.paused&&(clearTimeout(t.autoplay.resizeTimeout),t.autoplay.resizeTimeout=setTimeout(()=>{t.autoplay&&t.autoplay.running&&t.autoplay.paused&&t.autoplay.resume()},500)),t.allowSlidePrev=s,t.allowSlideNext=n,t.params.watchOverflow&&i!==t.snapGrid&&t.checkOverflow()}function uF(t){const e=this;e.enabled&&(e.allowClick||(e.params.preventClicks&&t.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(t.stopPropagation(),t.stopImmediatePropagation())))}function cF(){const t=this,{wrapperEl:e,rtlTranslate:r,enabled:n}=t;if(!n)return;t.previousTranslate=t.translate,t.isHorizontal()?t.translate=-e.scrollLeft:t.translate=-e.scrollTop,t.translate===0&&(t.translate=0),t.updateActiveIndex(),t.updateSlidesClasses();let s;const i=t.maxTranslate()-t.minTranslate();i===0?s=0:s=(t.translate-t.minTranslate())/i,s!==t.progress&&t.updateProgress(r?-t.translate:t.translate),t.emit("setTranslate",t.translate,!1)}function fF(t){const e=this;zu(e,t.target),!(e.params.cssMode||e.params.slidesPerView!=="auto"&&!e.params.autoHeight)&&e.update()}function dF(){const t=this;t.documentTouchHandlerProceeded||(t.documentTouchHandlerProceeded=!0,t.params.touchReleaseOnEdges&&(t.el.style.touchAction="auto"))}const zS=(t,e)=>{const r=ir(),{params:n,el:s,wrapperEl:i,device:a}=t,o=!!n.nested,l=e==="on"?"addEventListener":"removeEventListener",u=e;!s||typeof s=="string"||(r[l]("touchstart",t.onDocumentTouchStart,{passive:!1,capture:o}),s[l]("touchstart",t.onTouchStart,{passive:!1}),s[l]("pointerdown",t.onTouchStart,{passive:!1}),r[l]("touchmove",t.onTouchMove,{passive:!1,capture:o}),r[l]("pointermove",t.onTouchMove,{passive:!1,capture:o}),r[l]("touchend",t.onTouchEnd,{passive:!0}),r[l]("pointerup",t.onTouchEnd,{passive:!0}),r[l]("pointercancel",t.onTouchEnd,{passive:!0}),r[l]("touchcancel",t.onTouchEnd,{passive:!0}),r[l]("pointerout",t.onTouchEnd,{passive:!0}),r[l]("pointerleave",t.onTouchEnd,{passive:!0}),r[l]("contextmenu",t.onTouchEnd,{passive:!0}),(n.preventClicks||n.preventClicksPropagation)&&s[l]("click",t.onClick,!0),n.cssMode&&i[l]("scroll",t.onScroll),n.updateOnWindowResize?t[u](a.ios||a.android?"resize orientationchange observerUpdate":"resize observerUpdate",Rv,!0):t[u]("observerUpdate",Rv,!0),s[l]("load",t.onLoad,{capture:!0}))};function hF(){const t=this,{params:e}=t;t.onTouchStart=oF.bind(t),t.onTouchMove=aF.bind(t),t.onTouchEnd=lF.bind(t),t.onDocumentTouchStart=dF.bind(t),e.cssMode&&(t.onScroll=cF.bind(t)),t.onClick=uF.bind(t),t.onLoad=fF.bind(t),zS(t,"on")}function pF(){zS(this,"off")}var gF={attachEvents:hF,detachEvents:pF};const Bv=(t,e)=>t.grid&&e.grid&&e.grid.rows>1;function mF(){const t=this,{realIndex:e,initialized:r,params:n,el:s}=t,i=n.breakpoints;if(!i||i&&Object.keys(i).length===0)return;const a=ir(),o=n.breakpointsBase==="window"||!n.breakpointsBase?n.breakpointsBase:"container",l=["window","container"].includes(n.breakpointsBase)||!n.breakpointsBase?t.el:a.querySelector(n.breakpointsBase),u=t.getBreakpoint(i,o,l);if(!u||t.currentBreakpoint===u)return;const f=(u in i?i[u]:void 0)||t.originalParams,d=Bv(t,n),p=Bv(t,f),g=t.params.grabCursor,b=f.grabCursor,v=n.enabled;d&&!p?(s.classList.remove(`${n.containerModifierClass}grid`,`${n.containerModifierClass}grid-column`),t.emitContainerClasses()):!d&&p&&(s.classList.add(`${n.containerModifierClass}grid`),(f.grid.fill&&f.grid.fill==="column"||!f.grid.fill&&n.grid.fill==="column")&&s.classList.add(`${n.containerModifierClass}grid-column`),t.emitContainerClasses()),g&&!b?t.unsetGrabCursor():!g&&b&&t.setGrabCursor(),["navigation","pagination","scrollbar"].forEach(A=>{if(typeof f[A]>"u")return;const C=n[A]&&n[A].enabled,L=f[A]&&f[A].enabled;C&&!L&&t[A].disable(),!C&&L&&t[A].enable()});const w=f.direction&&f.direction!==n.direction,_=n.loop&&(f.slidesPerView!==n.slidesPerView||w),y=n.loop;w&&r&&t.changeDirection(),zr(t.params,f);const x=t.params.enabled,T=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),v&&!x?t.disable():!v&&x&&t.enable(),t.currentBreakpoint=u,t.emit("_beforeBreakpoint",f),r&&(_?(t.loopDestroy(),t.loopCreate(e),t.updateSlides()):!y&&T?(t.loopCreate(e),t.updateSlides()):y&&!T&&t.loopDestroy()),t.emit("breakpoint",f)}function bF(t,e,r){if(e===void 0&&(e="window"),!t||e==="container"&&!r)return;let n=!1;const s=Nt(),i=e==="window"?s.innerHeight:r.clientHeight,a=Object.keys(t).map(o=>{if(typeof o=="string"&&o.indexOf("@")===0){const l=parseFloat(o.substr(1));return{value:i*l,point:o}}return{value:o,point:o}});a.sort((o,l)=>parseInt(o.value,10)-parseInt(l.value,10));for(let o=0;o{typeof n=="object"?Object.keys(n).forEach(s=>{n[s]&&r.push(e+s)}):typeof n=="string"&&r.push(e+n)}),r}function vF(){const t=this,{classNames:e,params:r,rtl:n,el:s,device:i}=t,a=wF(["initialized",r.direction,{"free-mode":t.params.freeMode&&r.freeMode.enabled},{autoheight:r.autoHeight},{rtl:n},{grid:r.grid&&r.grid.rows>1},{"grid-column":r.grid&&r.grid.rows>1&&r.grid.fill==="column"},{android:i.android},{ios:i.ios},{"css-mode":r.cssMode},{centered:r.cssMode&&r.centeredSlides},{"watch-progress":r.watchSlidesProgress}],r.containerModifierClass);e.push(...a),s.classList.add(...e),t.emitContainerClasses()}function _F(){const t=this,{el:e,classNames:r}=t;!e||typeof e=="string"||(e.classList.remove(...r),t.emitContainerClasses())}var EF={addClasses:vF,removeClasses:_F};function SF(){const t=this,{isLocked:e,params:r}=t,{slidesOffsetBefore:n}=r;if(n){const s=t.slides.length-1,i=t.slidesGrid[s]+t.slidesSizesGrid[s]+n*2;t.isLocked=t.size>i}else t.isLocked=t.snapGrid.length===1;r.allowSlideNext===!0&&(t.allowSlideNext=!t.isLocked),r.allowSlidePrev===!0&&(t.allowSlidePrev=!t.isLocked),e&&e!==t.isLocked&&(t.isEnd=!1),e!==t.isLocked&&t.emit(t.isLocked?"lock":"unlock")}var xF={checkOverflow:SF},vg={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function TF(t,e){return function(n){n===void 0&&(n={});const s=Object.keys(n)[0],i=n[s];if(typeof i!="object"||i===null){zr(e,n);return}if(t[s]===!0&&(t[s]={enabled:!0}),s==="navigation"&&t[s]&&t[s].enabled&&!t[s].prevEl&&!t[s].nextEl&&(t[s].auto=!0),["pagination","scrollbar"].indexOf(s)>=0&&t[s]&&t[s].enabled&&!t[s].el&&(t[s].auto=!0),!(s in t&&"enabled"in i)){zr(e,n);return}typeof t[s]=="object"&&!("enabled"in t[s])&&(t[s].enabled=!0),t[s]||(t[s]={enabled:!1}),zr(e,n)}}const Gd={eventsEmitter:EU,update:LU,translate:UU,transition:WU,slide:QU,loop:tF,grabCursor:iF,events:gF,breakpoints:yF,checkOverflow:xF,classes:EF},Yd={};class Wr{constructor(){let e,r;for(var n=arguments.length,s=new Array(n),i=0;i1){const c=[];return a.querySelectorAll(r.el).forEach(f=>{const d=zr({},r,{el:f});c.push(new Wr(d))}),c}const o=this;o.__swiper__=!0,o.support=VS(),o.device=jS({userAgent:r.userAgent}),o.browser=wU(),o.eventsListeners={},o.eventsAnyListeners=[],o.modules=[...o.__modules__],r.modules&&Array.isArray(r.modules)&&o.modules.push(...r.modules);const l={};o.modules.forEach(c=>{c({params:r,swiper:o,extendParams:TF(r,l),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:o.emit.bind(o)})});const u=zr({},vg,l);return o.params=zr({},u,Yd,r),o.originalParams=zr({},o.params),o.passedParams=zr({},r),o.params&&o.params.on&&Object.keys(o.params.on).forEach(c=>{o.on(c,o.params.on[c])}),o.params&&o.params.onAny&&o.onAny(o.params.onAny),Object.assign(o,{enabled:o.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return o.params.direction==="horizontal"},isVertical(){return o.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.emit("_swiper"),o.params.init&&o.init(),o}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:r,params:n}=this,s=ur(r,`.${n.slideClass}, swiper-slide`),i=wl(s[0]);return wl(e)-i}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find(r=>r.getAttribute("data-swiper-slide-index")*1===e))}recalcSlides(){const e=this,{slidesEl:r,params:n}=e;e.slides=ur(r,`.${n.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,r){const n=this;e=Math.min(Math.max(e,0),1);const s=n.minTranslate(),a=(n.maxTranslate()-s)*e+s;n.translateTo(a,typeof r>"u"?0:r),n.updateActiveIndex(),n.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=e.el.className.split(" ").filter(n=>n.indexOf("swiper")===0||n.indexOf(e.params.containerModifierClass)===0);e.emit("_containerClasses",r.join(" "))}getSlideClasses(e){const r=this;return r.destroyed?"":e.className.split(" ").filter(n=>n.indexOf("swiper-slide")===0||n.indexOf(r.params.slideClass)===0).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=[];e.slides.forEach(n=>{const s=e.getSlideClasses(n);r.push({slideEl:n,classNames:s}),e.emit("_slideClass",n,s)}),e.emit("_slideClasses",r)}slidesPerViewDynamic(e,r){e===void 0&&(e="current"),r===void 0&&(r=!1);const n=this,{params:s,slides:i,slidesGrid:a,slidesSizesGrid:o,size:l,activeIndex:u}=n;let c=1;if(typeof s.slidesPerView=="number")return s.slidesPerView;if(s.centeredSlides){let f=i[u]?Math.ceil(i[u].swiperSlideSize):0,d;for(let p=u+1;pl&&(d=!0));for(let p=u-1;p>=0;p-=1)i[p]&&!d&&(f+=i[p].swiperSlideSize,c+=1,f>l&&(d=!0))}else if(e==="current")for(let f=u+1;f=0;f-=1)a[u]-a[f]{a.complete&&zu(e,a)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function s(){const a=e.rtlTranslate?e.translate*-1:e.translate,o=Math.min(Math.max(a,e.maxTranslate()),e.minTranslate());e.setTranslate(o),e.updateActiveIndex(),e.updateSlidesClasses()}let i;if(n.freeMode&&n.freeMode.enabled&&!n.cssMode)s(),n.autoHeight&&e.updateAutoHeight();else{if((n.slidesPerView==="auto"||n.slidesPerView>1)&&e.isEnd&&!n.centeredSlides){const a=e.virtual&&n.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(a.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||s()}n.watchOverflow&&r!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,r){r===void 0&&(r=!0);const n=this,s=n.params.direction;return e||(e=s==="horizontal"?"vertical":"horizontal"),e===s||e!=="horizontal"&&e!=="vertical"||(n.el.classList.remove(`${n.params.containerModifierClass}${s}`),n.el.classList.add(`${n.params.containerModifierClass}${e}`),n.emitContainerClasses(),n.params.direction=e,n.slides.forEach(i=>{e==="vertical"?i.style.width="":i.style.height=""}),n.emit("changeDirection"),r&&n.update()),n}changeLanguageDirection(e){const r=this;r.rtl&&e==="rtl"||!r.rtl&&e==="ltr"||(r.rtl=e==="rtl",r.rtlTranslate=r.params.direction==="horizontal"&&r.rtl,r.rtl?(r.el.classList.add(`${r.params.containerModifierClass}rtl`),r.el.dir="rtl"):(r.el.classList.remove(`${r.params.containerModifierClass}rtl`),r.el.dir="ltr"),r.update())}mount(e){const r=this;if(r.mounted)return!0;let n=e||r.params.el;if(typeof n=="string"&&(n=document.querySelector(n)),!n)return!1;n.swiper=r,n.parentNode&&n.parentNode.host&&n.parentNode.host.nodeName===r.params.swiperElementNodeName.toUpperCase()&&(r.isElement=!0);const s=()=>`.${(r.params.wrapperClass||"").trim().split(" ").join(".")}`;let a=n&&n.shadowRoot&&n.shadowRoot.querySelector?n.shadowRoot.querySelector(s()):ur(n,s())[0];return!a&&r.params.createElements&&(a=Gr("div",r.params.wrapperClass),n.append(a),ur(n,`.${r.params.slideClass}`).forEach(o=>{a.append(o)})),Object.assign(r,{el:n,wrapperEl:a,slidesEl:r.isElement&&!n.parentNode.host.slideSlots?n.parentNode.host:a,hostEl:r.isElement?n.parentNode.host:n,mounted:!0,rtl:n.dir.toLowerCase()==="rtl"||Qi(n,"direction")==="rtl",rtlTranslate:r.params.direction==="horizontal"&&(n.dir.toLowerCase()==="rtl"||Qi(n,"direction")==="rtl"),wrongRTL:Qi(a,"display")==="-webkit-box"}),!0}init(e){const r=this;if(r.initialized||r.mount(e)===!1)return r;r.emit("beforeInit"),r.params.breakpoints&&r.setBreakpoint(),r.addClasses(),r.updateSize(),r.updateSlides(),r.params.watchOverflow&&r.checkOverflow(),r.params.grabCursor&&r.enabled&&r.setGrabCursor(),r.params.loop&&r.virtual&&r.params.virtual.enabled?r.slideTo(r.params.initialSlide+r.virtual.slidesBefore,0,r.params.runCallbacksOnInit,!1,!0):r.slideTo(r.params.initialSlide,0,r.params.runCallbacksOnInit,!1,!0),r.params.loop&&r.loopCreate(),r.attachEvents();const s=[...r.el.querySelectorAll('[loading="lazy"]')];return r.isElement&&s.push(...r.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach(i=>{i.complete?zu(r,i):i.addEventListener("load",a=>{zu(r,a.target)})}),wg(r),r.initialized=!0,wg(r),r.emit("init"),r.emit("afterInit"),r}destroy(e,r){e===void 0&&(e=!0),r===void 0&&(r=!0);const n=this,{params:s,el:i,wrapperEl:a,slides:o}=n;return typeof n.params>"u"||n.destroyed||(n.emit("beforeDestroy"),n.initialized=!1,n.detachEvents(),s.loop&&n.loopDestroy(),r&&(n.removeClasses(),i&&typeof i!="string"&&i.removeAttribute("style"),a&&a.removeAttribute("style"),o&&o.length&&o.forEach(l=>{l.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass),l.removeAttribute("style"),l.removeAttribute("data-swiper-slide-index")})),n.emit("destroy"),Object.keys(n.eventsListeners).forEach(l=>{n.off(l)}),e!==!1&&(n.el&&typeof n.el!="string"&&(n.el.swiper=null),uU(n)),n.destroyed=!0),null}static extendDefaults(e){zr(Yd,e)}static get extendedDefaults(){return Yd}static get defaults(){return vg}static installModule(e){Wr.prototype.__modules__||(Wr.prototype.__modules__=[]);const r=Wr.prototype.__modules__;typeof e=="function"&&r.indexOf(e)<0&&r.push(e)}static use(e){return Array.isArray(e)?(e.forEach(r=>Wr.installModule(r)),Wr):(Wr.installModule(e),Wr)}}Object.keys(Gd).forEach(t=>{Object.keys(Gd[t]).forEach(e=>{Wr.prototype[e]=Gd[t][e]})});Wr.use([vU,_U]);const AF=["id"],CF={class:"modal-dialog modal-lg modal-fullscreen-lg-down"},IF={class:"modal-content"},MF={class:"modal-header"},kF={class:"modal-title"},PF={class:"modal-body",style:{"background-color":"var(--color-bg)"}},OF=je({__name:"ModalComponent",props:{modalId:{}},setup(t){const e=t;return dn(()=>{}),(r,n)=>(ae(),Ee("div",{id:e.modalId,class:"modal fade"},[z("div",CF,[z("div",IF,[z("div",MF,[z("h3",kF,[Gt(r.$slots,"title",{},void 0,!0)]),n[0]||(n[0]=z("button",{type:"button",class:"btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0","data-bs-dismiss":"modal"},[z("i",{class:"fa-solid fa-lg fa-rectangle-xmark m-0 p-0"})],-1))]),z("div",PF,[Gt(r.$slots,"default",{},void 0,!0),n[1]||(n[1]=z("button",{class:"btn btn-secondary float-end mt-3 ms-1","data-bs-dismiss":"modal"}," Schließen ",-1))])])])],8,AF))}}),HS=Je(OF,[["__scopeId","data-v-eaefae30"]]),LF={class:"d-flex align-items-center"},RF={class:"cpname"},BF={class:"d-flex float-right justify-content-end align-items-center"},$F=["data-bs-target"],NF=["data-bs-target"],DF={class:"subgrid"},UF={key:0,class:"d-flex justify-content-center align-items-center vehiclestatus"},FF={class:"d-flex flex-column align-items-center px-0"},VF={class:"d-flex justify-content-center flex-wrap"},jF={class:"d-flex align-items-center"},WF={class:"badge phasesInUse rounded-pill"},zF={class:"d-flex flex-wrap justify-content-center chargeinfo"},HF={class:"me-1"},qF={key:0,class:"subgrid socEditRow m-0 p-0"},GF={class:"socEditor rounded mt-2 d-flex flex-column align-items-center grid-col-12"},YF={class:"d-flex justify-content-stretch align-items-center"},KF=je({__name:"CpsListItem2",props:{chargepoint:{}},setup(t){const e=t,r=ct(!1),n=we(()=>yr[e.chargepoint.chargeMode].icon),s=we(()=>{let w="";return e.chargepoint.isLocked?w="fa-lock":e.chargepoint.isCharging?w=" fa-bolt":e.chargepoint.isPluggedIn&&(w="fa-plug"),"fa "+w}),i=we(()=>{let w="var(--color-axis)";return e.chargepoint.isLocked?w="var(--color-evu)":e.chargepoint.isCharging?w="var(--color-charging)":e.chargepoint.isPluggedIn&&(w="var(--color-battery)"),{color:w,border:`0.5px solid ${w} `}}),a=we(()=>{switch(e.chargepoint.chargeMode){case"stop":return{"background-color":"var(--color-input)"};default:return{"background-color":yr[e.chargepoint.chargeMode].color}}}),o=we(()=>Yr(e.chargepoint.power,_e.decimalPlaces)),l=we(()=>e.chargepoint.current+" A"),u=we(()=>e.chargepoint.phasesInUse),c=we(()=>e.chargepoint.dailyYield>0?Mi(e.chargepoint.dailyYield,_e.decimalPlaces):"0 Wh"),f=we(()=>"("+Math.round(e.chargepoint.rangeCharged).toString()+" "+e.chargepoint.rangeUnit+")"),d=we(()=>yr[e.chargepoint.chargeMode].name);function p(){vr("socUpdate",1,e.chargepoint.connectedVehicle),Ge[e.chargepoint.id].waitingForSoc=!0}function g(){vr("setSoc",b.value,e.chargepoint.connectedVehicle),r.value=!1}const b=we({get(){return e.chargepoint.soc},set(w){Ge[e.chargepoint.id].soc=w}}),v=we(()=>e.chargepoint.isLocked?"Gesperrt":e.chargepoint.isCharging?"Lädt":e.chargepoint.isPluggedIn?"Bereit":"Frei");return(w,_)=>(ae(),Ee(Ye,null,[xe(uo,{titlecolor:w.chargepoint.color,fullwidth:!0,small:!0},{title:Ie(()=>[z("div",LF,[z("span",RF,ke(w.chargepoint.name),1),z("span",{class:"badge rounded-pill statusbadge mx-2",style:ht(i.value)},[z("i",{class:rt([s.value,"me-1"])},null,2),st(" "+ke(v.value),1)],4)])]),buttons:Ie(()=>[z("div",BF,[z("span",{class:"badge rounded-pill modebadge mx-2",type:"button",style:ht(a.value),"data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+w.chargepoint.id},[z("i",{class:rt(["fa me-1",n.value])},null,2),st(" "+ke(d.value),1)],12,$F),z("span",{class:"fa-solid ms-2 fa-lg fa-edit ps-1",type:"button","data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+w.chargepoint.id},null,8,NF)])]),default:Ie(()=>[z("div",DF,[xe(mt,{heading:w.chargepoint.vehicleName,small:!0,class:"grid-left grid-col-4"},{default:Ie(()=>[w.chargepoint.isSocConfigured?(ae(),Ee("span",UF,[w.chargepoint.soc?(ae(),Re(lf,{key:0,class:"me-1",soc:w.chargepoint.soc},null,8,["soc"])):Me("",!0),w.chargepoint.isSocConfigured&&w.chargepoint.isSocManual?(ae(),Ee("i",{key:1,type:"button",class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-menu)"},onClick:_[0]||(_[0]=y=>r.value=!r.value)})):Me("",!0),w.chargepoint.isSocConfigured&&!w.chargepoint.isSocManual?(ae(),Ee("i",{key:2,type:"button",class:rt(["fa-solid fa-sm me-2",w.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),style:{color:"var(--color-menu)"},onClick:p},null,2)):Me("",!0)])):Me("",!0)]),_:1},8,["heading"]),xe(mt,{heading:"Parameter:",small:!0,class:"grid-col-4"},{default:Ie(()=>[z("div",FF,[z("span",VF,[z("span",null,ke(o.value),1),z("span",jF,[z("span",WF,ke(u.value),1),z("span",null,ke(l.value),1)])])])]),_:1}),xe(mt,{heading:"Geladen:",small:!0,class:"grid-right grid-col-4"},{default:Ie(()=>[z("div",zF,[z("span",HF,ke(c.value),1),z("span",null,ke(f.value),1)])]),_:1})]),r.value?(ae(),Ee("div",qF,[z("div",GF,[_[2]||(_[2]=z("span",{class:"d-flex m-1 p-0 socEditTitle"},"Ladestand einstellen:",-1)),z("span",YF,[z("span",null,[xe(_r,{id:"manualSoc",modelValue:b.value,"onUpdate:modelValue":_[1]||(_[1]=y=>b.value=y),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])])]),z("span",{type:"button",class:"fa-solid d-flex fa-lg me-2 mb-3 align-self-end fa-circle-check",onClick:g})])])):Me("",!0)]),_:1},8,["titlecolor"]),(ae(),Re(QT,{to:"body"},[(ae(),Re(HS,{key:w.chargepoint.id,"modal-id":"cpsconfig-"+w.chargepoint.id},{title:Ie(()=>[st(" Konfiguration: "+ke(w.chargepoint.name),1)]),default:Ie(()=>[w.chargepoint!=null?(ae(),Re(mg,{key:0,chargepoint:w.chargepoint},null,8,["chargepoint"])):Me("",!0)]),_:1},8,["modal-id"]))]))],64))}}),XF=Je(KF,[["__scopeId","data-v-9260919a"]]),QF=je({__name:"CpSimpleList2",setup(t){const e=we(()=>Object.values(Ge));return(r,n)=>(ae(),Re(Gn,{"variable-width":!0},{title:Ie(()=>n[0]||(n[0]=[z("span",{class:"fa-solid fa-charging-station"}," ",-1),st(" Ladepunkte ")])),buttons:Ie(()=>[se(Pt).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st("Strompreis: "+ke(se(Pt).etCurrentPriceString),1)]),_:1})):Me("",!0)]),default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(e.value,(s,i)=>(ae(),Ee("div",{key:i,class:"subgrid pb-2"},[xe(XF,{chargepoint:s},null,8,["chargepoint"])]))),128))]),_:1}))}}),JF=Je(QF,[["__scopeId","data-v-b8c6b557"]]),Kd=je({__name:"ChargePointList",props:{id:{},compact:{type:Boolean}},setup(t){let e,r;const n=t,s=we(()=>{let u=Object.values(Ge);return l(),u}),i=we(()=>a.value+" "+o.value),a=we(()=>{switch(Object.values(Ge).length){case 0:return _e.preferWideBoxes?"col-lg-6":"col-lg-4";case 1:return _e.preferWideBoxes?"col-lg-6":"col-lg-4";case 2:return _e.preferWideBoxes?"col-lg-12":"col-lg-8 ";default:return"col-lg-12"}}),o=we(()=>"swiper-chargepoints-"+n.id);function l(){let u=document.querySelector("."+o.value);if(u&&(r=u,e=r.swiper),e){let c="1";if(jn.value)switch(Object.values(Ge).length){case 0:case 1:c="1";break;case 2:c="2";break;default:c="3"}r.setAttribute("slides-per-view",c),e.update()}}return dn(()=>{let u=document.querySelector("."+o.value);u&&(r=u,e=r.swiper),window.addEventListener("resize",l),window.document.addEventListener("visibilitychange",l)}),(u,c)=>(ae(),Ee(Ye,null,[n.compact?Me("",!0):(ae(),Ee("swiper-container",{key:0,"space-between":0,"slides-per-view":1,pagination:{clickable:!0},class:rt(["cplist m-0 p-0 d-flex align-items-stretch",i.value])},[(ae(!0),Ee(Ye,null,ft(s.value,f=>(ae(),Ee("swiper-slide",{key:f.id},[z("div",{class:rt([se(jn)?"mb-0":"mb-5","d-flex align-items-stretch flex-fill"])},[xe(aU,{chargepoint:f,"full-width":!0},null,8,["chargepoint"])],2)]))),128))],2)),n.compact?(ae(),Re(JF,{key:1})):Me("",!0)],64))}}),ZF={class:"container-fluid p-0 m-0"},e4={class:"row p-0 m-0"},t4={class:"d-grid gap-2"},r4=["onClick"],n4={class:"col-md-4 p-1"},i4={class:"d-grid gap-2"},s4={key:0},o4={class:"row justify-content-center m-1 p-0"},a4={class:"col-lg-4 p-1 m-0"},l4={class:"d-grid gap-2"},u4={class:"col-lg-4 p-1 m-0"},c4={class:"d-grid gap-2"},f4={class:"col-lg-4 p-1 m-0"},d4={class:"d-grid gap-2"},h4=je({__name:"BBSelect",props:{cpId:{}},setup(t){const e=t,r=[{mode:"instant_charging",name:"Sofort",color:"var(--color-charging)"},{mode:"pv_charging",name:"PV",color:"var(--color-pv)"},{mode:"scheduled_charging",name:"Zielladen",color:"var(--color-battery)"},{mode:"eco_charging",name:"Eco",color:"var(--color-devices)"},{mode:"stop",name:"Stop",color:"var(--color-axis)"}],n=we(()=>Ge[e.cpId]);function s(u){return u==n.value.chargeMode?"btn btn-success buttonTextSize":"btn btn-secondary buttonTextSize"}function i(u){return Yt.pvBatteryPriority==u?"btn-success":"btn-secondary"}function a(u){n.value.chargeMode=u}function o(u){n.value.isLocked=u}function l(u){Yt.pvBatteryPriority=u}return(u,c)=>(ae(),Ee("div",ZF,[z("div",e4,[(ae(),Ee(Ye,null,ft(r,(f,d)=>z("div",{key:d,class:"col-md-4 p-1"},[z("div",t4,[z("button",{type:"button",class:rt(s(f.mode)),style:{},onClick:p=>a(f.mode)},ke(f.name),11,r4)])])),64)),z("div",n4,[z("div",i4,[n.value.isLocked?(ae(),Ee("button",{key:0,type:"button",class:"btn btn-outline-success buttonTextSize","data-bs-dismiss":"modal",onClick:c[0]||(c[0]=f=>o(!1))}," Entsperren ")):Me("",!0),n.value.isLocked?Me("",!0):(ae(),Ee("button",{key:1,type:"button",class:"btn btn-outline-danger buttonTextSize","data-bs-dismiss":"modal",onClick:c[1]||(c[1]=f=>o(!0))}," Sperren "))])])]),se(Yt).isBatteryConfigured?(ae(),Ee("div",s4,[c[8]||(c[8]=z("hr",null,null,-1)),c[9]||(c[9]=z("div",{class:"row"},[z("div",{class:"col text-center"},"Vorrang im Lademodus PV-Laden:")],-1)),z("div",o4,[z("div",a4,[z("div",l4,[z("button",{id:"evPriorityBtn",type:"button",class:rt(["priorityModeBtn btn btn-secondary buttonTextSize",i("ev_mode")]),"data-dismiss":"modal",priority:"1",onClick:c[2]||(c[2]=f=>l("ev_mode"))},c[5]||(c[5]=[st(" EV "),z("span",{class:"fas fa-car ms-2"}," ",-1)]),2)])]),z("div",u4,[z("div",c4,[z("button",{id:"batteryPriorityBtn",type:"button",class:rt(["priorityModeBtn btn btn-secondary buttonTextSize",i("bat_mode")]),"data-dismiss":"modal",priority:"0",onClick:c[3]||(c[3]=f=>l("bat_mode"))},c[6]||(c[6]=[st(" Speicher "),z("span",{class:"fas fa-car-battery ms-2"}," ",-1)]),2)])]),z("div",f4,[z("div",d4,[z("button",{id:"minsocPriorityBtn",type:"button",class:rt(["priorityModeBtn btn btn-secondary buttonTextSize",i("min_soc_bat_mode")]),"data-dismiss":"modal",priority:"0",onClick:c[4]||(c[4]=f=>l("min_soc_bat_mode"))},c[7]||(c[7]=[st(" MinSoc "),z("span",{class:"fas fa-battery-half"}," ",-1)]),2)])])])])):Me("",!0)]))}}),p4={class:"col-lg-4 p-0 m-0 mt-1"},g4={class:"d-grid gap-2"},m4=["data-bs-target"],b4={class:"m-0 p-0 d-flex justify-content-between align-items-center"},y4={class:"mx-1 badge rounded-pill smallTextSize plugIndicator"},w4={key:0,class:"ms-2"},v4={class:"m-0 p-0"},_4={key:0,class:"ps-1"},E4=je({__name:"BbChargeButton",props:{chargepoint:{}},setup(t){const e=t,r="chargeSelectModal"+e.chargepoint.id,n=we(()=>yr[e.chargepoint.chargeMode].name),s=we(()=>{let c={background:"var(--color-menu)"};return e.chargepoint.isLocked?c.background="var(--color-evu)":e.chargepoint.isCharging?c.background="var(--color-charging)":e.chargepoint.isPluggedIn&&(c.background="var(--color-battery)"),c}),i=we(()=>{{let c={background:yr[e.chargepoint.chargeMode].color,color:"white"};switch(e.chargepoint.chargeMode){case Hr.instant_charging:e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(c=u(c));break;case Hr.stop:c.background="darkgrey",c.color="black";break;case Hr.scheduled_charging:e.chargepoint.isPluggedIn&&!e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(c=u(c));break}return c}}),a=we(()=>yr[e.chargepoint.chargeMode].icon),o=we(()=>{switch(Yt.pvBatteryPriority){case"ev_mode":return"fa-car";case"bat_mode":return"fa-car-battery";case"min_soc_bat_mode":return"fa-battery-half";default:return console.log("default"),""}}),l=we(()=>{let c="fa-ellipsis";return e.chargepoint.isLocked?c="fa-lock":e.chargepoint.isCharging?c=" fa-bolt":e.chargepoint.isPluggedIn&&(c="fa-plug"),"fa "+c});function u(c){let f=c.color;return c.color=c.background,c.background=f,c}return(c,f)=>(ae(),Ee("div",p4,[z("div",g4,[z("button",{type:"button",class:"btn mx-1 mb-0 p-1 mediumTextSize chargeButton shadow",style:ht(s.value),"data-bs-toggle":"modal","data-bs-target":"#"+r},[z("div",b4,[z("span",y4,[z("i",{class:rt(l.value)},null,2),c.chargepoint.isCharging?(ae(),Ee("span",w4,ke(se(Yr)(c.chargepoint.power)),1)):Me("",!0)]),z("span",v4,ke(c.chargepoint.name),1),z("span",{class:"mx-2 m-0 badge rounded-pill smallTextSize modeIndicator",style:ht(i.value)},[z("i",{class:rt(["fa me-1",a.value])},null,2),st(" "+ke(n.value)+" ",1),c.chargepoint.chargeMode==se(Hr).pv_charging&&se(Yt).isBatteryConfigured?(ae(),Ee("span",_4,[f[0]||(f[0]=st(" ( ")),z("i",{class:rt(["fa m-0",o.value])},null,2),f[1]||(f[1]=st(") "))])):Me("",!0)],4)])],12,m4)]),xe(HS,{"modal-id":r},{title:Ie(()=>[st(" Lademodus für "+ke(c.chargepoint.vehicleName),1)]),default:Ie(()=>[xe(h4,{"cp-id":c.chargepoint.id},null,8,["cp-id"])]),_:1})]))}}),S4=Je(E4,[["__scopeId","data-v-71bb7e5f"]]),x4={class:"row p-0 mt-0 mb-1 m-0"},T4={class:"col p-0 m-0"},A4={class:"container-fluid p-0 m-0"},C4={class:"row p-0 m-0 d-flex justify-content-center align-items-center"},I4={key:0,class:"col time-display"},M4=je({__name:"ButtonBar",setup(t){return(e,r)=>(ae(),Ee("div",x4,[z("div",T4,[z("div",A4,[z("div",C4,[se(_e).showClock=="buttonbar"?(ae(),Ee("span",I4,ke(se(BS)(se(gg))),1)):Me("",!0),(ae(!0),Ee(Ye,null,ft(se(Ge),(n,s)=>(ae(),Re(S4,{key:s,chargepoint:n,"charge-point-count":Object.values(se(Ge)).length},null,8,["chargepoint","charge-point-count"]))),128))])])])]))}}),k4=Je(M4,[["__scopeId","data-v-791e4be0"]]),P4={class:"battery-title"},O4={class:"subgrid pt-1"},L4=je({__name:"BLBattery",props:{bat:{}},setup(t){const e=t,r=we(()=>e.bat.power<0?`Liefert (${Yr(-e.bat.power)})`:e.bat.power>0?`Lädt (${Yr(e.bat.power)})`:"Bereit"),n=we(()=>e.bat.power<0?"var(--color-pv)":e.bat.power>0?"var(--color-battery)":"var(--color-menu)");return(s,i)=>(ae(),Re(uo,{titlecolor:"var(--color-title)",fullwidth:!0},{title:Ie(()=>[z("span",P4,ke(s.bat.name),1)]),buttons:Ie(()=>[xe(un,{bgcolor:n.value},{default:Ie(()=>[st(ke(r.value),1)]),_:1},8,["bgcolor"])]),default:Ie(()=>[z("div",O4,[xe(mt,{heading:"Ladestand:",small:!0,class:"grid-left grid-col-4"},{default:Ie(()=>[xe(lf,{soc:e.bat.soc},null,8,["soc"])]),_:1}),xe(mt,{heading:"Geladen:",small:!0,class:"grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.bat.dailyYieldImport},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"Geliefert:",small:!0,class:"grid-right grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.bat.dailyYieldExport},null,8,["watt-h"])]),_:1})])]),_:1}))}}),R4=Je(L4,[["__scopeId","data-v-f7f825f7"]]),B4={class:"subgrid grid-12"},$4={key:0,class:"subgrid"},N4=je({__name:"BatteryList",setup(t){const e=we(()=>ot.batOut.power>0?`Liefert (${Yr(ot.batOut.power)})`:tt.batIn.power>0?`Lädt (${Yr(tt.batIn.power)})`:"Bereit:"),r=we(()=>ot.batOut.power>0?"var(--color-pv)":tt.batIn.power>0?"var(--color-battery)":"var(--color-menu)"),n=we(()=>{let s=0;return kt.value.forEach(i=>{s+=i.dailyYieldImport}),s});return(s,i)=>se(Yt).isBatteryConfigured?(ae(),Re(Gn,{key:0,"variable-width":!0,"full-width":!1},{title:Ie(()=>i[0]||(i[0]=[z("span",{class:"fas fa-car-battery me-2",style:{color:"var(--color-battery)"}}," ",-1),z("span",null,"Speicher",-1)])),buttons:Ie(()=>[xe(un,{bgcolor:r.value},{default:Ie(()=>[st(ke(e.value),1)]),_:1},8,["bgcolor"])]),default:Ie(()=>[z("div",B4,[xe(mt,{heading:"Ladestand:",class:"grid-left grid-col-4"},{default:Ie(()=>[xe(lf,{color:"var(--color-battery)",soc:se(Yt).batterySoc},null,8,["soc"])]),_:1}),xe(mt,{heading:"Geladen:",class:"grid-col-4"},{default:Ie(()=>[z("span",null,ke(se(Mi)(n.value)),1)]),_:1}),xe(mt,{heading:"Geliefert",class:"grid-right grid-col-4"},{default:Ie(()=>[z("span",null,ke(se(Mi)(se(ot).batOut.energy)),1)]),_:1})]),se(kt).size>1?(ae(),Ee("div",$4,[(ae(!0),Ee(Ye,null,ft(se(kt),([a,o])=>(ae(),Re(R4,{key:a,bat:o,class:"px-0"},null,8,["bat"]))),128))])):Me("",!0)]),_:1})):Me("",!0)}}),Xd=Je(N4,[["__scopeId","data-v-c2a8727a"]]),D4={class:"devicename"},U4={class:"subgrid"},F4=je({__name:"SHListItem",props:{device:{}},setup(t){const e=t,r=we(()=>e.device.status=="on"?"fa-toggle-on fa-xl":e.device.status=="waiting"?"fa-spinner fa-spin":"fa-toggle-off fa-xl"),n=we(()=>{let o="var(--color-switchRed)";switch(e.device.status){case"on":o="var(--color-switchGreen)";break;case"detection":o="var(--color-switchBlue)";break;case"timeout":o="var(--color-switchWhite)";break;case"waiting":o="var(--color-menu)";break;default:o="var(--color-switchRed)"}return{color:o}});function s(){e.device.isAutomatic||(e.device.status=="on"?vr("shSwitchOn",0,e.device.id):vr("shSwitchOn",1,e.device.id),St.get(e.device.id).status="waiting")}function i(){e.device.isAutomatic?vr("shSetManual",1,e.device.id):vr("shSetManual",0,e.device.id)}const a=we(()=>e.device.isAutomatic?"Auto":"Man");return(o,l)=>(ae(),Re(uo,{titlecolor:o.device.color,fullwidth:!0},{title:Ie(()=>[z("span",D4,ke(o.device.name),1)]),buttons:Ie(()=>[(ae(!0),Ee(Ye,null,ft(o.device.temp,(u,c)=>(ae(),Ee("span",{key:c},[u<300?(ae(),Re(un,{key:0,bgcolor:"var(--color-battery)"},{default:Ie(()=>[z("span",null,ke(se(HB)(u)),1)]),_:2},1024)):Me("",!0)]))),128)),e.device.canSwitch?(ae(),Ee("span",{key:0,class:rt([r.value,"fa-solid statusbutton mr-2 ms-2"]),style:ht(n.value),onClick:s},null,6)):Me("",!0),e.device.canSwitch?(ae(),Re(un,{key:1,type:"button",onClick:i},{default:Ie(()=>[st(ke(a.value),1)]),_:1})):Me("",!0)]),default:Ie(()=>[z("div",U4,[xe(mt,{heading:"Leistung:",small:!0,class:"grid-col-4 grid-left"},{default:Ie(()=>[xe(Ll,{watt:o.device.power},null,8,["watt"])]),_:1}),xe(mt,{heading:"Energie:",small:!0,class:"grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":o.device.energy},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"Laufzeit:",small:!0,class:"grid-col-4 grid-right"},{default:Ie(()=>[st(ke(se(WB)(o.device.runningTime)),1)]),_:1})])]),_:1},8,["titlecolor"]))}}),V4=Je(F4,[["__scopeId","data-v-20651ac6"]]),j4={class:"sh-title py-4"},W4=["id","onUpdate:modelValue","value"],z4=["for"],H4=3,q4=je({__name:"SmartHomeList",setup(t){const e=we(()=>jn.value?r.value.reduce((a,o)=>{const l=a;let u=a[a.length-1];return u.length>=H4?a.push([o]):u.push(o),l},[[]]):[r.value]),r=we(()=>[...St.values()].filter(a=>a.configured));function n(a){return"Geräte"+(jn.value&&e.value.length>1?"("+(a+1)+")":"")}function s(){i.value=!i.value}const i=ct(!1);return(a,o)=>(ae(),Ee(Ye,null,[(ae(!0),Ee(Ye,null,ft(e.value,(l,u)=>(ae(),Re(Gn,{key:u,"variable-width":!0},{title:Ie(()=>[z("span",{onClick:s},[o[0]||(o[0]=z("span",{class:"fas fa-plug me-2",style:{color:"var(--color-devices)"}}," ",-1)),z("span",j4,ke(n(u)),1)])]),buttons:Ie(()=>[z("span",{class:"ms-2 pt-1",onClick:s},o[1]||(o[1]=[z("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)]))]),default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(l,c=>(ae(),Re(V4,{key:c.id,device:c,class:"subgrid pb-2"},null,8,["device"]))),128))]),_:2},1024))),128)),i.value?(ae(),Re(Gn,{key:0},{title:Ie(()=>[z("span",{class:"smarthome",onClick:s},o[2]||(o[2]=[z("span",{class:"fas fa-gear"}," ",-1),st(" Einstellungen")]))]),buttons:Ie(()=>[z("span",{class:"ms-2 pt-1",onClick:s},o[3]||(o[3]=[z("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]))]),default:Ie(()=>[xe(et,{title:"Im Energie-Graph anzeigen:",icon:"fa-chart-column",fullwidth:!0},{default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(r.value,(l,u)=>(ae(),Ee("div",{key:u},[xl(z("input",{id:"check"+u,"onUpdate:modelValue":c=>l.showInGraph=c,class:"form-check-input",type:"checkbox",value:l},null,8,W4),[[M_,l.showInGraph]]),z("label",{class:"form-check-label px-2",for:"check"+u},ke(l.name),9,z4)]))),128))]),_:1}),z("div",{class:"row p-0 m-0",onClick:s},o[4]||(o[4]=[z("div",{class:"col-12 mb-3 pe-3 mt-0"},[z("button",{class:"btn btn-sm btn-secondary float-end"},"Schließen")],-1)]))]),_:1})):Me("",!0)],64))}}),Qd=Je(q4,[["__scopeId","data-v-5b5cf6b3"]]),G4={class:"countername"},Y4={class:"subgrid pt-1"},K4=je({__name:"ClCounter",props:{counter:{}},setup(t){const e=t,r=we(()=>e.counter.power>0?"Bezug":"Export"),n=we(()=>e.counter.power>0?"var(--color-evu)":"var(--color-pv)");return(s,i)=>(ae(),Re(uo,{titlecolor:"var(--color-title)",fullwidth:!0},{title:Ie(()=>[z("span",G4,ke(s.counter.name),1)]),buttons:Ie(()=>[e.counter.power!=0?(ae(),Re(un,{key:0,bgcolor:n.value},{default:Ie(()=>[st(ke(r.value),1)]),_:1},8,["bgcolor"])):Me("",!0),xe(un,{color:"var(--color-bg)"},{default:Ie(()=>[st(" ID: "+ke(e.counter.id),1)]),_:1})]),default:Ie(()=>[z("div",Y4,[xe(mt,{heading:"Leistung:",small:!0,class:"grid-left grid-col-4"},{default:Ie(()=>[xe(Ll,{watt:Math.abs(e.counter.power)},null,8,["watt"])]),_:1}),xe(mt,{heading:"Bezogen:",small:!0,class:"grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.counter.energy_imported},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"Exportiert:",small:!0,class:"grid-right grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.counter.energy_exported},null,8,["watt-h"])]),_:1})])]),_:1}))}}),X4=Je(K4,[["__scopeId","data-v-01dd8c4d"]]);class Q4{constructor(e){ve(this,"id");ve(this,"name","Zähler");ve(this,"power",0);ve(this,"energy_imported",0);ve(this,"energy_exported",0);ve(this,"grid",!1);ve(this,"counterType","counter");ve(this,"type",pt.counter);ve(this,"color","var(--color-evu)");ve(this,"energy",0);ve(this,"energyPv",0);ve(this,"energyBat",0);ve(this,"pvPercentage",0);ve(this,"icon","");ve(this,"showInGraph",!0);this.id=e}}const Rr=Dt({});function J4(t,e){if(t in Rr)console.info("Duplicate counter message: "+t);else switch(Rr[t]=new Q4(t),Rr[t].counterType=e,e){case"counter":Rr[t].color="var(--color-evu)";break;case"inverter":Rr[t].color="var(--color-pv)";break;case"cp":Rr[t].color="var(--color-charging)";break;case"bat":Rr[t].color="var(--color-bat)";break}}const Z4=je({__name:"CounterList",setup(t){return(e,r)=>(ae(),Re(Gn,{"variable-width":!0},{title:Ie(()=>r[0]||(r[0]=[z("span",{class:"fas fa-bolt me-2",style:{color:"var(--color-evu)"}}," ",-1),z("span",null,"Zähler",-1)])),default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(se(Rr),(n,s)=>(ae(),Ee("div",{key:s,class:"subgrid pb-2"},[xe(X4,{counter:n},null,8,["counter"])]))),128))]),_:1}))}}),Jd=Je(Z4,[["__scopeId","data-v-5f059284"]]),e6={class:"vehiclename"},t6={class:"subgrid"},r6=je({__name:"VlVehicle",props:{vehicle:{}},setup(t){const e=t,r=we(()=>{let s="Unterwegs",i=e.vehicle.chargepoint;return i!=null&&(i.isCharging?s="Lädt ("+i.name+")":i.isPluggedIn&&(s="Bereit ("+i.name+")")),s}),n=we(()=>{let s=e.vehicle.chargepoint;return s!=null?s.isLocked?"var(--color-evu)":s.isCharging?"var(--color-charging)":s.isPluggedIn?"var(--color-battery)":"var(--color-axis)":"var(--color-axis)"});return(s,i)=>(ae(),Re(uo,{titlecolor:"var(--color-title)",fullwidth:!0},{title:Ie(()=>[z("span",e6,ke(e.vehicle.name),1)]),default:Ie(()=>[z("div",t6,[xe(mt,{heading:"Status:",small:!0,class:"grid-left grid-col-4"},{default:Ie(()=>[z("span",{style:ht({color:n.value}),class:"d-flex justify-content-center align-items-center status-string"},ke(r.value),5)]),_:1}),xe(mt,{heading:"Ladestand:",small:!0,class:"grid-col-4"},{default:Ie(()=>[st(ke(Math.round(e.vehicle.soc))+" % ",1)]),_:1}),xe(mt,{heading:"Reichweite:",small:!0,class:"grid-right grid-col-4"},{default:Ie(()=>[st(ke(Math.round(e.vehicle.range))+" km ",1)]),_:1})])]),_:1}))}}),n6=Je(r6,[["__scopeId","data-v-9e2cb63e"]]),i6=je({__name:"VehicleList",setup(t){return(e,r)=>(ae(),Re(Gn,{"variable-width":!0},{title:Ie(()=>r[0]||(r[0]=[z("span",{class:"fas fa-car me-2",style:{color:"var(--color-charging)"}}," ",-1),z("span",null,"Fahrzeuge",-1)])),default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(Object.values(se(dt)).filter(n=>n.visible),(n,s)=>(ae(),Ee("div",{key:s,class:"subgrid px-4"},[xe(n6,{vehicle:n},null,8,["vehicle"])]))),128))]),_:1}))}}),Zd=Je(i6,[["__scopeId","data-v-716be083"]]),s6={class:"grapharea"},o6={id:"pricechart",class:"p-1 m-0 pricefigure"},a6={viewBox:"0 0 400 280"},l6=["id","origin","transform"],Ba=380,$v=250,eh=12,u6=je({__name:"GlobalPriceChart",props:{id:{}},setup(t){const e=t,r=ct(!1),n={top:0,bottom:15,left:20,right:0},s=we(()=>{let v=[];return Pt.etPriceList.size>0&&Pt.etPriceList.forEach((w,_)=>{v.push([_,w])}),v}),i=we(()=>s.value.length>1?(Ba-n.left-n.right)/s.value.length:0),a=we(()=>{let v=Tn(s.value,w=>w[0]);return v[1]&&(v[1]=new Date(v[1]),v[1].setTime(v[1].getTime()+36e5)),Xs().range([n.left,Ba-n.right]).domain(v)}),o=we(()=>{let v=[0,0];return s.value.length>0&&(v=Tn(s.value,w=>w[1]),v[0]=Math.floor(v[0])-1,v[1]=Math.floor(v[1])+1),v}),l=we(()=>Xn().range([$v-n.bottom,0]).domain(o.value)),u=we(()=>{const v=Nn(),w=[[n.left,l.value(_e.lowerPriceBound)],[Ba-n.right,l.value(_e.lowerPriceBound)]];return v(w)}),c=we(()=>{const v=Nn(),w=[[n.left,l.value(_e.upperPriceBound)],[Ba-n.right,l.value(_e.upperPriceBound)]];return v(w)}),f=we(()=>{const v=Nn(),w=[[n.left,l.value(0)],[Ba-n.right,l.value(0)]];return v(w)}),d=we(()=>Za(a.value).ticks(s.value.length).tickSize(5).tickSizeInner(-250).tickFormat(v=>v.getHours()%6==0?rs("%H:%M")(v):"")),p=we(()=>Al(l.value).ticks(o.value[1]-o.value[0]).tickSize(0).tickSizeInner(-360).tickFormat(v=>v%5!=0?"":v.toString())),g=we(()=>{r.value==!0;const v=Ct("g#"+b.value);v.selectAll("*").remove(),v.selectAll("bar").data(s.value).enter().append("g").append("rect").attr("class","bar").attr("x",C=>a.value(C[0])).attr("y",C=>l.value(C[1])).attr("width",i.value).attr("height",C=>l.value(o.value[0])-l.value(C[1])).attr("fill","var(--color-charging)");const _=v.append("g").attr("class","axis").call(d.value);_.attr("transform","translate(0,"+($v-n.bottom)+")"),_.selectAll(".tick").attr("font-size",eh).attr("color","var(--color-bg)"),_.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",C=>C.getHours()%6==0?"2":"0.5"),_.select(".domain").attr("stroke","var(--color-bg");const y=v.append("g").attr("class","axis").call(p.value);y.attr("transform","translate("+n.left+",0)"),y.selectAll(".tick").attr("font-size",eh).attr("color","var(--color-bg)"),y.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",C=>C%5==0?"2":"0.5"),y.select(".domain").attr("stroke","var(--color-bg)"),o.value[0]<0&&v.append("path").attr("d",f.value).attr("stroke","var(--color-fg)"),v.append("path").attr("d",u.value).attr("stroke","green"),v.append("path").attr("d",c.value).attr("stroke","red");const x=v.selectAll("ttip").data(s.value).enter().append("g").attr("class","ttarea");x.append("rect").attr("x",C=>a.value(C[0])).attr("y",C=>l.value(C[1])).attr("height",C=>l.value(o.value[0])-l.value(C[1])).attr("class","ttrect").attr("width",i.value).attr("opacity","1%").attr("fill","var(--color-charging)");const T=x.append("g").attr("class","ttmessage").attr("transform",C=>"translate("+(a.value(C[0])-30+i.value/2)+","+(l.value(C[1])-16)+")");T.append("rect").attr("rx",5).attr("width","60").attr("height","30").attr("fill","var(--color-menu)");const A=T.append("text").attr("text-anchor","middle").attr("x",30).attr("y",12).attr("font-size",eh).attr("fill","var(--color-bg)");return A.append("tspan").attr("x",30).attr("dy","0em").text(C=>rs("%H:%M")(C[0])),A.append("tspan").attr("x",30).attr("dy","1.1em").text(C=>Math.round(C[1]*10)/10+" ct"),"PriceChart.vue"}),b=we(()=>"priceChartCanvas"+e.id);return dn(()=>{r.value=!r.value}),(v,w)=>(ae(),Re(Gn,{"variable-width":!0},{title:Ie(()=>w[0]||(w[0]=[z("span",{class:"fas fa-coins me-2",style:{color:"var(--color-battery)"}}," ",-1),z("span",null,"Strompreis",-1)])),buttons:Ie(()=>[se(Pt).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-charging)"},{default:Ie(()=>[st(ke(se(Pt).etCurrentPriceString),1)]),_:1})):Me("",!0),se(Pt).active?(ae(),Re(un,{key:1,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st(ke(se(Pt).etProvider),1)]),_:1})):Me("",!0)]),default:Ie(()=>[z("div",s6,[z("figure",o6,[(ae(),Ee("svg",a6,[z("g",{id:b.value,origin:g.value,transform:"translate("+n.top+","+n.left+") "},null,8,l6)]))])])]),_:1}))}}),th=Je(u6,[["__scopeId","data-v-578b98b5"]]),c6={class:"subgrid pt-1"},f6=je({__name:"IlInverter",props:{inverter:{}},setup(t){const e=t,r=we(()=>({color:e.inverter.color}));return(n,s)=>(ae(),Re(uo,{titlecolor:"var(--color-title)",fullwidth:!0},{title:Ie(()=>[z("span",{class:"invertername",style:ht(r.value)},ke(n.inverter.name),5)]),buttons:Ie(()=>[e.inverter.power<0?(ae(),Re(un,{key:0,bgcolor:"var(--color-pv)"},{default:Ie(()=>[st(ke(se(Yr)(-e.inverter.power)),1)]),_:1})):Me("",!0)]),default:Ie(()=>[z("div",c6,[xe(mt,{heading:"Heute:",small:!0,class:"grid-col-4 grid-left"},{default:Ie(()=>[xe(Wn,{"watt-h":e.inverter.energy},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"Monat:",small:!0,class:"grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.inverter.energy_month},null,8,["watt-h"])]),_:1}),xe(mt,{heading:"Jahr:",small:!0,class:"grid-right grid-col-4"},{default:Ie(()=>[xe(Wn,{"watt-h":e.inverter.energy_year},null,8,["watt-h"])]),_:1})])]),_:1}))}}),d6=Je(f6,[["__scopeId","data-v-258d8f17"]]),h6=je({__name:"InverterList",setup(t){const e=we(()=>[...ar.value.values()].sort((r,n)=>r.id-n.id));return(r,n)=>(ae(),Re(Gn,{"variable-width":!0},{title:Ie(()=>n[0]||(n[0]=[z("span",{class:"fas fa-solar-panel me-2",style:{color:"var(--color-pv)"}}," ",-1),z("span",null,"Wechselrichter",-1)])),buttons:Ie(()=>[se(ot).pv.power>0?(ae(),Re(un,{key:0,bgcolor:"var(--color-pv)"},{default:Ie(()=>[st(ke(se(Yr)(se(ot).pv.power)),1)]),_:1})):Me("",!0)]),default:Ie(()=>[(ae(!0),Ee(Ye,null,ft(e.value,s=>(ae(),Ee("div",{key:s.id,class:"subgrid pb-2"},[xe(d6,{inverter:s},null,8,["inverter"])]))),128))]),_:1}))}}),rh=Je(h6,[["__scopeId","data-v-8a9444cf"]]),p6={class:"row py-0 px-0 m-0"},g6=["breakpoints"],m6=je({__name:"CarouselFix",setup(t){let e,r;const n=ct(!1),s=we(()=>n.value?{992:{slidesPerView:1,spaceBetween:0}}:{992:{slidesPerView:3,spaceBetween:0}});return Su(()=>_e.zoomGraph,i=>{if(e){let a=i?"1":"3";r.setAttribute("slides-per-view",a),e.activeIndex=_e.zoomedWidget,e.update()}}),dn(()=>{let i=document.querySelector(".swiper-carousel");i&&(r=i,e=r.swiper)}),(i,a)=>(ae(),Ee("div",p6,[z("swiper-container",{"space-between":0,pagination:{clickable:!0},"slides-per-view":"1",class:"p-0 m-0 swiper-carousel",breakpoints:s.value},[z("swiper-slide",null,[z("div",{class:rt([se(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Gt(i.$slots,"item1",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([se(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Gt(i.$slots,"item2",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([se(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Gt(i.$slots,"item3",{},void 0,!0)],2)])],8,g6)]))}}),b6=Je(m6,[["__scopeId","data-v-17424929"]]);function y6(t,e){t=="openWB/graph/boolDisplayLiveGraph"?Yt.displayLiveGraph=+e==1:t.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)?w6(t,e):t=="openWB/graph/lastlivevaluesJson"?v6(t,e):t=="openWB/graph/config/duration"&&(Jt.duration=JSON.parse(e))}function w6(t,e){if(!Jt.initialized){let r=[];const n=e.toString().split(` +`);n.length>1?r=n.map(a=>JSON.parse(a)):r=[];const s=t.match(/(\d+)$/g),i=s?s[0]:"";i!=""&&typeof Jt.rawDataPacks[+i-1]>"u"&&(Jt.rawDataPacks[+i-1]=r,Jt.initCounter++)}if(Jt.initCounter==16){const r=[];Jt.unsubscribeRefresh(),Jt.initialized=!0,Jt.rawDataPacks.forEach(n=>{n.forEach(s=>{const i=qS(s);r.push(i)})}),Ol(r),Jt.subscribeUpdates()}}function v6(t,e){const r=JSON.parse(e),n=qS(r);Jt.graphRefreshCounter++,Ol(Ae.data.concat(n)),Jt.graphRefreshCounter>60&&Jt.activate()}function qS(t){const e=Object.values(Ge).length>0?Object.values(Ge)[0].connectedVehicle:0,r=Object.values(Ge).length>1?Object.values(Ge)[1].connectedVehicle:1,n="ev"+e+"-soc",s="ev"+r+"-soc",i=/cp(\d+)-power/,a={};return a.date=+t.timestamp*1e3,+t.grid>0?(a.evuIn=+t.grid,a.evuOut=0):+t.grid<=0?(a.evuIn=0,a.evuOut=-t.grid):(a.evuIn=0,a.evuOut=0),+t["pv-all"]>=0?(a.pv=+t["pv-all"],a.inverter=0):(a.pv=0,a.inverter=-t["pv-all"]),a.house=+t["house-power"],+t["bat-all-power"]>0?(a.batOut=0,a.batIn=+t["bat-all-power"]):+t["bat-all-power"]<0?(a.batOut=-t["bat-all-power"],a.batIn=0):(a.batOut=0,a.batIn=0),t["bat-all-soc"]?a.batSoc=+t["bat-all-soc"]:a.batSoc=0,t[n]&&(a["soc"+e]=+t[n]),t[s]&&(a["soc"+r]=+t[s]),a.charging=+t["charging-all"],Object.keys(t).filter(o=>i.test(o)).forEach(o=>{const l=o.match(i);l&&l[1]&&(a["cp"+l[1]]=+(t[o]??0))}),a.selfUsage=a.pv-a.evuOut,a.selfUsage<0&&(a.selfUsage=0),a.devices=0,a}const _6=["evuIn","pv","batOut","evuOut","charging","house"];let Cc=[];function E6(t,e){const{entries:r,names:n,totals:s}=JSON.parse(e);li.value=new Map(Object.entries(n)),Fm(),Cc=[],Bm.forEach(a=>{qe.setEnergyPv(a,0),qe.setEnergyBat(a,0)});const i=S6(r);Ol(i),$m(s,Cc),_e.debug&&T6(r,s,i),Ae.graphMode=="today"&&setTimeout(()=>Ht.activate(),3e5)}function S6(t){const e=[];let r={};return t.forEach(n=>{r=x6(n);const s=r;e.push(s)}),e}function x6(t){const e={};e.date=t.timestamp*1e3,e.evuOut=0,e.evuIn=0,Object.entries(t.counter).forEach(([s,i])=>{i.grid&&(e.evuOut+=i.power_exported,e.evuIn+=i.power_imported,Cc.includes(s)||Cc.push(s))}),e.evuOut==0&&e.evuIn==0&&Object.entries(t.counter).forEach(s=>{e.evuOut+=s[1].power_exported,e.evuIn+=s[1].power_imported}),Object.entries(t.pv).forEach(([s,i])=>{s!="all"?e[s]=i.power_exported:e.pv=i.power_exported}),Object.entries(t.bat).length>0?(e.batIn=t.bat.all.power_imported,e.batOut=t.bat.all.power_exported,e.batSoc=t.bat.all.soc??0):(e.batIn=0,e.batOut=0,e.batSoc=0),Object.entries(t.cp).forEach(([s,i])=>{s!="all"?(e[s]=i.power_imported,qe.keys().includes(s)||qe.addItem(s)):e.charging=i.power_imported}),Object.entries(t.ev).forEach(([s,i])=>{s!="all"&&(e["soc"+s.substring(2)]=i.soc)}),e.devices=0;let r=0;return Object.entries(t.sh).forEach(([s,i])=>{var a;s!="all"&&(e[s]=i.power_imported??0,qe.keys().includes(s)||(qe.addItem(s),qe.items[s].showInGraph=St.get(+s.slice(2)).showInGraph),(a=St.get(+s.slice(2)))!=null&&a.countAsHouse?r+=e[s]:e.devices+=i.power_imported??0)}),e.selfUsage=Math.max(0,e.pv-e.evuOut),t.hc&&t.hc.all?e.house=t.hc.all.power_imported-r:e.house=e.evuIn+e.batOut+e.pv-e.evuOut-e.charging-e.devices-e.batOut,e.evuIn+e.batOut+e.pv>0?qe.keys().filter(s=>!_6.includes(s)&&s!="charging").forEach(s=>{AB(s,e)}):Object.keys(e).forEach(s=>{e[s+"Pv"]=0,e[s+"Bat"]=0}),e}function T6(t,e,r){console.debug("---------------------------------------- Graph Data -"),console.debug(["--- Incoming graph data:",t]),console.debug(["--- Incoming energy data:",e]),console.debug(["--- Data to be displayed:",r]),console.debug("-----------------------------------------------------")}let du={};const Wm=["charging","house","batIn","devices"],A6=["evuIn","pv","batOut","batIn","evuOut","devices","sh1","sh2","sh3","sh4","sh5","sh6","sh7","sh8","sh9"];let zs=[];function C6(t,e){const{entries:r,names:n,totals:s}=JSON.parse(e);li.value=new Map(Object.entries(n)),Fm(),zs=[],Wm.forEach(i=>{qe.items[i].energyPv=0,qe.items[i].energyBat=0}),r.length>0&&Ol(GS(r)),$m(s,zs)}function I6(t,e){const{entries:r,names:n,totals:s}=JSON.parse(e);li.value=new Map(Object.entries(n)),Fm(),zs=[],Wm.forEach(i=>{qe.items[i].energyPv=0,qe.items[i].energyBat=0}),r.length>0&&Ol(GS(r)),$m(s,zs)}function GS(t){const e=[];let r={};return du={},t.forEach(n=>{r=M6(n),e.push(r),Object.keys(r).forEach(s=>{s!="date"&&(r[s]<0&&(console.warn(`Negative energy value for ${s} in row ${r.date}. Ignoring the value.`),r[s]=0),du[s]?du[s]+=r[s]:du[s]=r[s])})}),e}function M6(t){const e={},r=m1("%Y%m%d")(t.date);r&&(e.date=Ae.graphMode=="month"?r.getDate():r.getMonth()+1),e.evuOut=0,e.evuIn=0;let n=0,s=0;return Object.entries(t.counter).forEach(([a,o])=>{n+=o.energy_exported,s+=o.energy_imported,o.grid&&(e.evuOut+=o.energy_exported,e.evuIn+=o.energy_imported,zs.includes(a)||zs.push(a))}),zs.length==0&&(e.evuOut=n,e.evuIn=s),e.pv=t.pv.all.energy_exported,Object.entries(t.bat).length>0?(t.bat.all.energy_imported>=0?e.batIn=t.bat.all.energy_imported:(console.warn("ignoring negative value for batIn on day "+e.date),e.batIn=0),t.bat.all.energy_exported>=0?e.batOut=t.bat.all.energy_exported:(console.warn("ignoring negative value for batOut on day "+e.date),e.batOut=0)):(e.batIn=0,e.batOut=0),Object.entries(t.cp).forEach(([a,o])=>{a!="all"?(qe.keys().includes(a)||qe.addItem(a),e[a]=o.energy_imported):e.charging=o.energy_imported}),Object.entries(t.ev).forEach(([a,o])=>{a!="all"&&(e["soc-"+a]=o.soc)}),e.devices=Object.entries(t.sh).reduce((a,o)=>(qe.keys().includes(o[0])||qe.addItem(o[0]),o[1].energy_imported>=0?a+=o[1].energy_imported:console.warn(`Negative energy value for device ${o[0]} in row ${e.date}. Ignoring this value`),a),0),t.hc&&t.hc.all?e.house=t.hc.all.energy_imported:e.house=e.pv+e.evuIn+e.batOut-e.evuOut-e.batIn-e.charging,e.selfUsage=e.pv-e.evuOut,e.evuIn+e.batOut+e.pv>0?qe.keys().filter(a=>!A6.includes(a)).forEach(a=>{CB(a,e)}):Wm.map(a=>{e[a+"Pv"]=0,e[a+"Bat"]=0}),e}function k6(t,e){const r=P6(t);if(r&&!kt.value.has(r)){console.warn("Invalid battery index: ",r);return}t=="openWB/bat/config/configured"?Yt.isBatteryConfigured=e=="true":t=="openWB/bat/get/power"?+e>0?(tt.batIn.power=+e,ot.batOut.power=0):(tt.batIn.power=0,ot.batOut.power=-e):t=="openWB/bat/get/soc"?Yt.batterySoc=+e:t=="openWB/bat/get/daily_exported"?ot.batOut.energy=+e:t=="openWB/bat/get/daily_imported"?tt.batIn.energy=+e:r&&kt.value.has(r)&&(t.match(/^openwb\/bat\/[0-9]+\/get\/daily_exported$/i)?kt.value.get(r).dailyYieldExport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/daily_imported$/i)?kt.value.get(r).dailyYieldImport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)?kt.value.get(r).exported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)?kt.value.get(r).faultState=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)?kt.value.get(r).faultStr=e:t.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)?kt.value.get(r).imported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)?kt.value.get(r).power=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)&&(kt.value.get(r).soc=+e))}function P6(t){let e=0;try{const r=t.match(/(?:\/)([0-9]+)(?=\/)/g);return r?(e=+r[0].replace(/[^0-9]+/g,""),e):void 0}catch(r){console.warn("Parser error in getIndex for topic "+t+": "+r)}}function O6(t,e){if(t=="openWB/optional/et/provider")JSON.parse(e).type==null?Pt.active=!1:(Pt.active=!0,Pt.etProvider=JSON.parse(e).name);else if(t=="openWB/optional/et/get/prices"){const r=JSON.parse(e);Pt.etPriceList=new Map,Object.keys(r).forEach(n=>{Pt.etPriceList.set(new Date(+n*1e3),r[n]*1e5)})}}function L6(t,e){const r=YS(t);if(r&&!(r in Ge)){console.warn("Invalid chargepoint id received: "+r);return}if(t=="openWB/chargepoint/get/power"?tt.charging.power=+e:t=="openWB/chargepoint/get/daily_imported"&&(tt.charging.energy=+e),t=="openWB/chargepoint/get/daily_exported")Yt.cpDailyExported=+e;else if(r)if(t.match(/^openwb\/chargepoint\/[0-9]+\/config$/i))if(Ge[r]){const n=JSON.parse(e);Ge[r].name=n.name,Ge[r].icon=n.name,Vt["cp"+r]?(Vt["cp"+r].name=n.name,Vt["cp"+r].icon=n.name):Vt["cp"+r]={name:n.name,icon:n.name,color:"var(--color-charging)"}}else console.warn("invalid chargepoint index: "+r);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/state_str$/i))Ge[r].stateStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_str$/i))Ge[r].faultStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_state$/i))Ge[r].faultState=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/power$/i))Ge[r].power=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/daily_imported$/i))Ge[r].dailyYield=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/plug_state$/i))Ge[r].isPluggedIn=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/charge_state$/i))Ge[r].isCharging=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/manual_lock$/i))Ge[r].updateIsLocked(e=="true");else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/enabled$/i))Ge[r].isEnabled=e=="1";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/phases_in_use/i))Ge[r].phasesInUse=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/current/i))Ge[r].current=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/currents/i))Ge[r].currents=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/log/i)){const n=JSON.parse(e);Ge[r].chargedSincePlugged=n.imported_since_plugged}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc$/i)){const n=JSON.parse(e);Ge[r].soc=n.soc,Ge[r].waitingForSoc=!1,Ge[r].rangeCharged=n.range_charged,Ge[r].rangeUnit=n.range_unit}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/info$/i)){const n=JSON.parse(e);Ge[r].vehicleName=String(n.name),Ge[r].updateConnectedVehicle(+n.id)}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/config$/i)){const n=JSON.parse(e);Ge[r].averageConsumption=n.average_consumption}else t.match(/^openwb\/chargepoint\/[0-9]+\/set\/charge_template$/i)&&(Ge[r].chargeTemplate=JSON.parse(e))}function R6(t,e){const r=YS(t);if(r!=null){if(!(r in dt)){const n=new wB(r);dt[r]=n}if(t.match(/^openwb\/vehicle\/[0-9]+\/name$/i))Object.values(Ge).forEach(n=>{n.connectedVehicle==r&&(n.vehicleName=JSON.parse(e))}),dt[r].name=JSON.parse(e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/get\/soc$/i))dt[r].soc=JSON.parse(e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/get\/range$/i))isNaN(+e)?dt[r].range=0:dt[r].range=+e;else if(t.match(/^openwb\/vehicle\/[0-9]+\/charge_template$/i))dt[r].updateChargeTemplateId(+e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/ev_template$/i))dt[r].updateEvTemplateId(+e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/soc_module\/config$/i)){const n=JSON.parse(e);Object.values(Ge).forEach(s=>{s.connectedVehicle==r&&(s.isSocConfigured=n.type!==null,s.isSocManual=n.type=="manual")}),dt[r].isSocConfigured=n.type!==null,dt[r].isSocManual=n.type=="manual"}}}function B6(t,e){if(t.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+$/i)){const r=t.match(/[0-9]+$/i);if(r){const n=+r[0];pg[n]=JSON.parse(e)}}else if(t.match(/^openwb\/vehicle\/template\/ev_template\/[0-9]+$/i)){const r=t.match(/[0-9]+$/i);if(r){const n=+r[0],s=JSON.parse(e);vB[n]=s}}}function YS(t){let e=0;try{const r=t.match(/(?:\/)([0-9]+)(?=\/)/g);return r?(e=+r[0].replace(/[^0-9]+/g,""),e):void 0}catch(r){console.warn("Parser error in getIndex for topic "+t+": "+r)}}function $6(t,e){t.match(/^openWB\/LegacySmarthome\/config\//i)?N6(t,e):t.match(/^openWB\/LegacySmarthome\/Devices\//i)&&D6(t,e)}function N6(t,e){const r=KS(t);if(r==null)return;St.has(r)||mm(r);const n=St.get(r);t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_configured$/i)?(n.configured=e!="0",_g("power"),_g("energy")):t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_name$/i)?(n.name=e.toString(),n.icon=e.toString(),Vt["sh"+r].name=e.toString(),Vt["sh"+r].icon=e.toString()):t.match(/^openWB\/LegacySmarthome\/config\/set\/Devices\/[0-9]+\/mode$/i)?n.isAutomatic=e=="0":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_canSwitch$/i)?n.canSwitch=e=="1":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_homeConsumtion$/i)?n.countAsHouse=e=="1":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_temperatur_configured$/i)&&(n.tempConfigured=+e)}function D6(t,e){const r=KS(t);if(r==null){console.warn("Smarthome: Missing index in "+t);return}St.has(r)||mm(r);const n=St.get(r);if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Watt$/i))n.power=+e,_g("power");else if(!t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Wh$/i)){if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/RunningTimeToday$/i))n.runningTime=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor0$/i))n.temp[0]=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor1$/i))n.temp[1]=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor2$/i))n.temp[2]=+e;else if(t.match(/^openWB\/LegacySmartHome\/Devices\/[0-9]+\/Status$/i))switch(+e){case 10:n.status="off";break;case 11:n.status="on";break;case 20:n.status="detection";break;case 30:n.status="timeout";break;default:n.status="off"}}}function _g(t){switch(t){case"power":tt.devices.power=[...St.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,r)=>e+r.power,0);break;case"energy":tt.devices.energy=[...St.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,r)=>e+r.energy,0);break;default:console.error("Unknown category")}}function KS(t){let e=0;try{const r=t.match(/(?:\/)([0-9]+)(?=\/)/g);return r?(e=+r[0].replace(/[^0-9]+/g,""),e):void 0}catch(r){console.warn("Parser error in getIndex for topic "+t+": "+r)}}const Ic=Dt([]);let U6=class XS{constructor(e,r,n,s){ve(this,"name");ve(this,"children");ve(this,"count");ve(this,"lastValue");this.name=e,this.children=r,this.count=n,this.lastValue=s}insert(e,r){if(e.length){const n=e.splice(1);if(e[0]==this.name)if(n.length){let s=!1;if(this.children.forEach(i=>{i.name==n[0]&&(i.insert(n,r),s=!0)}),!s){const i=new XS(n[0],[],0,"");i.insert(n,r),this.children.push(i)}}else this.count=this.count+1,this.lastValue=r}}};function F6(t,e){const r=t.split("/");if(r.length){let n=!1;if(Ic.forEach(s=>{s.name==r[0]&&(s.insert(r,e),n=!0)}),!n){const s=new U6(r[0],[],0,"");Ic.push(s),s.insert(r,e)}}}const V6=["openWB/counter/#","openWB/bat/#","openWB/pv/#","openWB/chargepoint/#","openWB/vehicle/#","openWB/general/chargemode_config/pv_charging/#","openWB/optional/et/#","openWB/system/#","openWB/LegacySmartHome/#","openWB/command/"+Om()+"/#"];function j6(){mB(W6),V6.forEach(t=>{js(t)}),nr()}function W6(t,e){F6(t,e.toString());const r=e.toString();t.match(/^openwb\/counter\/[0-9]+\//i)?z6(t,r):t.match(/^openwb\/counter\//i)?H6(t,r):t.match(/^openwb\/bat\//i)?k6(t,r):t.match(/^openwb\/pv\//i)?q6(t,r):t.match(/^openwb\/chargepoint\//i)?L6(t,r):t.match(/^openwb\/vehicle\/template\//i)?B6(t,r):t.match(/^openwb\/vehicle\//i)?R6(t,r):t.match(/^openwb\/general\/chargemode_config\/pv_charging\//i)?G6(t,r):t.match(/^openwb\/graph\//i)?y6(t,r):t.match(/^openwb\/log\/daily\//i)?E6(t,r):t.match(/^openwb\/log\/monthly\//i)?C6(t,r):t.match(/^openwb\/log\/yearly\//i)?I6(t,r):t.match(/^openwb\/optional\/et\//i)?O6(t,r):t.match(/^openwb\/system\//i)?K6(t,r):t.match(/^openwb\/LegacySmartHome\//i)?$6(t,r):t.match(/^openwb\/command\//i)&&X6(t,r)}function z6(t,e){const r=t.split("/"),n=+r[2];if(n==Yt.evuId?Y6(t,e):r[3]=="config",r[3]=="get"&&n in Rr)switch(r[4]){case"power":Rr[n].power=+e;break;case"config":break;case"fault_str":break;case"fault_state":break;case"power_factors":break;case"imported":break;case"exported":break;case"frequency":break;case"daily_imported":Rr[n].energy_imported=+e;break;case"daily_exported":Rr[n].energy_exported=+e;break}}function H6(t,e){if(t.match(/^openwb\/counter\/get\/hierarchy$/i)){const r=JSON.parse(e);if(r.length){EB(),jB();for(const n of r)n.type=="counter"&&(Yt.evuId=n.id);QS(r[0])}}else t.match(/^openwb\/counter\/set\/home_consumption$/i)?tt.house.power=+e:t.match(/^openwb\/counter\/set\/daily_yield_home_consumption$/i)&&(tt.house.energy=+e)}function QS(t){switch(t.type){case"counter":J4(t.id,t.type);break;case"cp":_B(t.id);break;case"bat":RS(t.id);break;case"inverter":DB(t.id);break}t.children.forEach(e=>QS(e))}function q6(t,e){const r=Q6(t);r&&!ar.value.has(r)?console.warn("Invalid PV system index: "+r):t=="openWB/pv/get/power"?ot.pv.power=-e:t=="openWB/pv/get/daily_exported"?ot.pv.energy=+e:t.match(/^openWB\/pv\/[0-9]+\/get\/power$/i)?ar.value.get(r).power=+e:t.match(/^openWB\/pv\/[0-9]+\/get\/daily_exported$/i)?ar.value.get(r).energy=+e:t.match(/^openWB\/pv\/[0-9]+\/get\/monthly_exported$/i)?ar.value.get(r).energy_month=+e:t.match(/^openWB\/pv\/[0-9]+\/get\/yearly_exported$/i)?ar.value.get(r).energy_year=+e:t.match(/^openWB\/pv\/[0-9]+\/get\/exported$/i)&&(ar.value.get(r).energy_total=+e)}function G6(t,e){const r=t.split("/");if(r.length>0)switch(r[4]){case"bat_mode":Yt.updatePvBatteryPriority(JSON.parse(e));break}}function Y6(t,e){switch(t.split("/")[4]){case"power":+e>0?(ot.evuIn.power=+e,tt.evuOut.power=0):(ot.evuIn.power=0,tt.evuOut.power=-e);break;case"daily_imported":ot.evuIn.energy=+e;break;case"daily_exported":tt.evuOut.energy=+e;break}}function K6(t,e){if(t.match(/^openWB\/system\/device\/[0-9]+\/component\/[0-9]+\/config$/i)){const r=JSON.parse(e);switch(r.type){case"counter":case"consumption_counter":Rr[r.id]&&(Rr[r.id].name=r.name);break;case"inverter":case"inverter_secondary":ar.value.has(r.id)||ar.value.set(r.id,new S1(r.id)),ar.value.get(r.id).name=r.name;break;case"bat":kt.value.has(r.id)||RS(r.id),kt.value.get(r.id).name=r.name}}}function X6(t,e){const r=t.split("/");if(t.match(/^openWB\/command\/[a-z]+\/error$/i)&&r[2]==Om()){const n=JSON.parse(e);console.error(`Error message from openWB: +Command: ${n.command} +Data: JSON.stringify(err.data) +Error: + ${n.error}`)}}function Q6(t){let e=0;try{const r=t.match(/(?:\/)([0-9]+)(?=\/)/g);return r?(e=+r[0].replace(/[^0-9]+/g,""),e):void 0}catch(r){console.warn("Parser error in getIndex for topic "+t+": "+r)}}const J6={key:0,class:"fas fa-caret-down"},Z6={key:1,class:"fas fa-caret-right"},eV={key:0,class:"content p-2 m-2"},tV={key:1,class:"sublist col-md-9 m-0 p-0 ps-2"},rV=je({__name:"MqttNode",props:{node:{},level:{},hide:{type:Boolean},expandAll:{type:Boolean}},setup(t){const e=t;let r=ct(!e.hide),n=ct(!1);const s=we(()=>e.node.name),i=we(()=>[...e.node.children].sort((c,f)=>c.namee.node.count>0?"("+e.node.count+")":""),o=we(()=>e.node.children.length),l=we(()=>e.node.lastValue!=""?{"font-style":"italic","grid-column-start":e.level,"grid-column-end":-1}:{"grid-column-start":e.level,"grid-column-end":-1});function u(){o.value>0&&(r.value=!r.value),e.node.lastValue!=""&&(n.value=!n.value)}return(c,f)=>{const d=uA("MqttNode",!0);return ae(),Ee(Ye,null,[z("div",{class:"name py-2 px-2 m-0",style:ht(l.value),onClick:u},[(se(r)||e.expandAll)&&o.value>0||se(n)?(ae(),Ee("span",J6)):(ae(),Ee("span",Z6)),st(" "+ke(s.value)+ke(a.value),1)],4),se(n)?(ae(),Ee("div",eV,[z("code",null,ke(e.node.lastValue),1)])):Me("",!0),(se(r)||e.expandAll)&&o.value>0?(ae(),Ee("div",tV,[(ae(!0),Ee(Ye,null,ft(i.value,(p,g)=>(ae(),Re(d,{key:g,level:e.level+1,node:p,hide:!0,"expand-all":e.expandAll},null,8,["level","node","expand-all"]))),128))])):Me("",!0)],64)}}}),nV=Je(rV,[["__scopeId","data-v-df7e578a"]]),iV={class:"mqviewer"},sV={class:"row pt-2"},oV={class:"col"},aV={key:0,class:"topiclist"},lV=je({__name:"MQTTViewer",setup(t){dn(()=>{});const e=ct(!1);function r(){e.value=!e.value}const n=we(()=>e.value?"active":"");return(s,i)=>(ae(),Ee("div",iV,[z("div",sV,[z("div",oV,[i[0]||(i[0]=z("h3",{class:"mqtitle ps-2"},"MQTT Message Viewer",-1)),i[1]||(i[1]=z("hr",null,null,-1)),z("button",{class:rt(["btn btn-small btn-outline-primary ms-2",n.value]),onClick:r}," Expand All ",2),i[2]||(i[2]=z("hr",null,null,-1))])]),se(Ic)[0]?(ae(),Ee("div",aV,[(ae(!0),Ee(Ye,null,ft(se(Ic)[0].children.sort((a,o)=>a.name(ae(),Re(nV,{key:o,node:a,level:1,hide:!0,"expand-all":e.value},null,8,["node","expand-all"]))),128))])):Me("",!0)]))}}),uV=Je(lV,[["__scopeId","data-v-a349646d"]]),cV=["value"],fV=je({__name:"SelectInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=e,s=we({get(){return r.modelValue},set(i){n("update:modelValue",i)}});return(i,a)=>xl((ae(),Ee("select",{id:"selectme","onUpdate:modelValue":a[0]||(a[0]=o=>s.value=o),class:"form-select"},[(ae(!0),Ee(Ye,null,ft(i.options,(o,l)=>(ae(),Ee("option",{key:l,value:o[1]},ke(o[0]),9,cV))),128))],512)),[[TC,s.value]])}}),dV=Je(fV,[["__scopeId","data-v-5e33ce1f"]]),hV={class:"subgrid m-0 p-0"},pV={class:"settingscolumn"},gV={class:"settingscolumn"},mV={class:"settingscolumn"},bV=je({__name:"ThemeSettings",emits:["reset-arcs"],setup(t,{emit:e}){const r=e,n=[["Dunkel","dark"],["Hell","light"],["Blau","blue"]],s=[["3 kW","0"],["3,1 kW","1"],["3,14 kW","2"],["3,141 kW","3"],["3141 W","4"]],i=[["Orange","normal"],["Grün/Violett","standard"],["Bunt","advanced"]],a=[["Aus","off"],["Menü","navbar"],["Buttonleiste","buttonbar"]],o=[["Aus","no"],['"Alles"-Reiter',"infoview"],["Immer","always"]];return(l,u)=>(ae(),Re(Gn,{"full-width":!0},{title:Ie(()=>u[23]||(u[23]=[st(" Look & Feel ")])),buttons:Ie(()=>u[24]||(u[24]=[z("span",{type:"button",class:"float-end mt-0 ms-1","data-bs-toggle":"collapse","data-bs-target":"#themesettings"},[z("span",null,[z("i",{class:"fa-solid fa-circle-check"})])],-1)])),default:Ie(()=>[z("div",hV,[z("div",pV,[xe(et,{fullwidth:!0,title:"Farbschema",icon:"fa-adjust",infotext:"Hintergrundfarbe"},{default:Ie(()=>[xe(Ir,{modelValue:se(_e).displayMode,"onUpdate:modelValue":u[0]||(u[0]=c=>se(_e).displayMode=c),options:n},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Farbschema Smart-Home-Geräte",icon:"fa-palette",infotext:"Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung."},{default:Ie(()=>[xe(Ir,{modelValue:se(_e).smartHomeColors,"onUpdate:modelValue":u[1]||(u[1]=c=>se(_e).smartHomeColors=c),options:i},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Grafik: Raster",icon:"fa-th",infotext:"Verwende ein Hintergrundraster in den Grafiken"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showGrid,"onUpdate:modelValue":u[2]||(u[2]=c=>se(_e).showGrid=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Variable Bogenlänge",icon:"fa-chart-area",infotext:"Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden."},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showRelativeArcs,"onUpdate:modelValue":u[3]||(u[3]=c=>se(_e).showRelativeArcs=c)},null,8,["modelValue"])]),_:1}),se(_e).showRelativeArcs?(ae(),Re(et,{key:0,fullwidth:!0,title:"Bögen zurücksetzen",icon:"fa-undo",infotext:"Durch Click auf den Button wird die Maximallänge der Bögen auf den aktuellen Wert gesetzt."},{default:Ie(()=>[se(_e).showRelativeArcs?(ae(),Ee("button",{key:0,class:"btn btn-secondary",onClick:u[4]||(u[4]=c=>r("reset-arcs"))}," Reset ")):Me("",!0)]),_:1})):Me("",!0),xe(et,{fullwidth:!0,title:"Anzahl Dezimalstellen",icon:"fa-sliders-h",infotext:"Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt."},{default:Ie(()=>[xe(dV,{modelValue:se(_e).decimalPlaces,"onUpdate:modelValue":u[5]||(u[5]=c=>se(_e).decimalPlaces=c),options:s},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Uhrzeit anzeigen",icon:"fa-clock",infotext:"Zeige die aktuelle Uhrzeit an. In der Menüleiste oder neben den Lade-Buttons."},{default:Ie(()=>[xe(Ir,{modelValue:se(_e).showClock,"onUpdate:modelValue":u[6]||(u[6]=c=>se(_e).showClock=c),options:a},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Kompakte Ladepunktliste",icon:"fa-list",infotext:"Zeige eine einzelne Ladepunktliste statt separater Element pro Ladepunkt."},{default:Ie(()=>[xe(Ir,{modelValue:se(_e).shortCpList,"onUpdate:modelValue":u[7]||(u[7]=c=>se(_e).shortCpList=c),options:o},null,8,["modelValue"])]),_:1})]),z("div",gV,[xe(et,{fullwidth:!0,title:"Buttonleiste für Ladepunkte",icon:"fa-window-maximize",infotext:"Informationen zu Ladepunkten über den Diagrammen anzeigen."},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showButtonBar,"onUpdate:modelValue":u[8]||(u[8]=c=>se(_e).showButtonBar=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Filter-Buttons",icon:"fa-filter",infotext:"Hauptseite mit Buttons zur Auswahl der Kategorie."},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showQuickAccess,"onUpdate:modelValue":u[9]||(u[9]=c=>se(_e).showQuickAccess=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Breite Widgets",icon:"fa-desktop",infotext:"Widgets immer breit machen"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).preferWideBoxes,"onUpdate:modelValue":u[10]||(u[10]=c=>se(_e).preferWideBoxes=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Stufenlose Displaybreite",icon:"fa-maximize",infotext:"Die Breite des Displays wird immer voll ausgenutzt. Dies kann in einigen Fällen zu inkorrekter Darstellung führen."},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).fluidDisplay,"onUpdate:modelValue":u[11]||(u[11]=c=>se(_e).fluidDisplay=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Animationen",icon:"fa-film",infotext:"Animationen anzeigen"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showAnimations,"onUpdate:modelValue":u[12]||(u[12]=c=>se(_e).showAnimations=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Zähler anzeigen",icon:"fa-chart-bar",infotext:"Zeige die Werte zusätzlich angelegter Zähler"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showCounters,"onUpdate:modelValue":u[13]||(u[13]=c=>se(_e).showCounters=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Fahrzeuge anzeigen",icon:"fa-car",infotext:"Zeige alle Fahrzeuge mit Ladestand und Reichweite"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showVehicles,"onUpdate:modelValue":u[14]||(u[14]=c=>se(_e).showVehicles=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Standardfahrzeug anzeigen",icon:"fa-car",infotext:"Zeige das Standard-Fahrzeug in der Fahzeugliste"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showStandardVehicle,"onUpdate:modelValue":u[15]||(u[15]=c=>se(_e).showStandardVehicle=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Wechselrichter-Details anzeigen",icon:"fa-solar-panel",infotext:"Zeige Details zu den einzelnen Wechselrichtern"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showInverters,"onUpdate:modelValue":u[16]||(u[16]=c=>se(_e).showInverters=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Alternatives Energie-Widget",icon:"fa-chart-area",infotext:"Horizontale Darstellung der Energie-Werte"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).alternativeEnergy,"onUpdate:modelValue":u[17]||(u[17]=c=>se(_e).alternativeEnergy=c)},null,8,["modelValue"])]),_:1})]),z("div",mV,[xe(et,{fullwidth:!0,title:"Preistabelle anzeigen",icon:"fa-car",infotext:"Zeige die Strompreistabelle in einer separaten Box an"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).showPrices,"onUpdate:modelValue":u[18]||(u[18]=c=>se(_e).showPrices=c)},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Untere Markierung in der Preistabelle",icon:"fa-car",infotext:"Position der unteren Markierung festlegen"},{default:Ie(()=>[xe(_r,{id:"lowerPriceBound",modelValue:se(_e).lowerPriceBound,"onUpdate:modelValue":u[19]||(u[19]=c=>se(_e).lowerPriceBound=c),min:-25,max:95,step:.1,decimals:1,unit:"ct"},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"Obere Markierung in der Preistabelle",icon:"fa-car",infotext:"Position der oberen Markierung festlegen"},{default:Ie(()=>[xe(_r,{id:"upperPriceBound",modelValue:se(_e).upperPriceBound,"onUpdate:modelValue":u[20]||(u[20]=c=>se(_e).upperPriceBound=c),min:-25,max:95,step:.1,decimals:1,unit:"ct"},null,8,["modelValue"])]),_:1}),xe(et,{fullwidth:!0,title:"IFrame-Support für Einstellungen (Experimentell)",icon:"fa-gear",infotext:"Erlaubt das Lesen der Einstellungen, wenn das UI in andere Applikationen eingebettet ist (z.B. HomeAssistant). Erfordert eine mit SSL verschlüsselte Verbindung über HTTPS! Experimentelles Feature."},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).sslPrefs,"onUpdate:modelValue":u[21]||(u[21]=c=>se(_e).sslPrefs=c)},null,8,["modelValue"])]),_:1}),u[25]||(u[25]=z("hr",null,null,-1)),xe(et,{fullwidth:!0,title:"Debug-Modus",icon:"fa-bug-slash",infotext:"Kontrollausgaben in der Console sowie Anzeige von Bildschirmbreite und MQ-Viewer"},{"inline-item":Ie(()=>[xe(zt,{modelValue:se(_e).debug,"onUpdate:modelValue":u[22]||(u[22]=c=>se(_e).debug=c)},null,8,["modelValue"])]),_:1}),u[26]||(u[26]=z("hr",null,null,-1))]),u[27]||(u[27]=z("div",{class:"grid-col-12 mb-3 me-3"},[z("button",{class:"btn btn-sm btn-secondary float-end","data-bs-toggle":"collapse","data-bs-target":"#themesettings"}," Schließen ")],-1))])]),_:1}))}}),yV=Je(bV,[["__scopeId","data-v-785bc80b"]]),wV={class:"container-fluid px-2 m-0 theme-colors"},vV={id:"themesettings",class:"collapse"},_V={class:"row py-0 px-0 m-0"},EV={key:1,class:"row py-0 m-0 d-flex justify-content-center"},SV={key:2,class:"nav nav-tabs nav-justified mx-1 mt-2",role:"tablist"},xV={key:0,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pricecharttabbed"},TV={key:1,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#vehiclelist"},AV={key:2,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#batterylist"},CV={key:3,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#smarthomelist"},IV={key:4,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#counterlist"},MV={key:5,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#inverterlist"},kV={key:3,id:"cpContent",class:"tab-content mx-0 pt-1"},PV={id:"showAll",class:"tab-pane active",role:"tabpanel","aria-labelledby":"showall-tab"},OV={class:"row py-0 m-0 d-flex justify-content-center"},LV={id:"chargepointlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"chargepoint-tab"},RV={class:"row py-0 m-0 d-flex justify-content-center"},BV={id:"vehiclelist",class:"tab-pane",role:"tabpanel","aria-labelledby":"vehicle-tab"},$V={key:0,class:"row py-0 m-0 d-flex justify-content-center"},NV={id:"batterylist",class:"tab-pane",role:"tabpanel","aria-labelledby":"battery-tab"},DV={class:"row py-0 m-0 d-flex justify-content-center"},UV={id:"smarthomelist",class:"tab-pane",role:"tabpanel","aria-labelledby":"smarthome-tab"},FV={key:0,class:"row py-0 m-0 d-flex justify-content-center"},VV={id:"counterlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"counter-tab"},jV={key:0,class:"row py-0 m-0 d-flex justify-content-center"},WV={id:"inverterlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"inverter-tab"},zV={key:0,class:"row py-0 m-0 d-flex justify-content-center"},HV={id:"pricecharttabbed",class:"tab-pane",role:"tabpanel","aria-labelledby":"price-tab"},qV={key:0,class:"row py-0 m-0 d-flex justify-content-center"},GV={key:0,class:"row p-2 mt-5"},YV={class:"col p-2"},KV={class:"d-flex justify-content-between"},XV={class:"mx-4"},QV={key:0},JV=je({__name:"ColorsTheme",setup(t){const e=ct(!1),r=we(()=>[...St.values()].filter(a=>a.configured).length>0);function n(){OS()}function s(){e.value=!e.value}dn(()=>{n(),window.addEventListener("resize",OB),window.addEventListener("focus",i),j6()});function i(){document.hasFocus()&&nr(!0)}return(a,o)=>(ae(),Ee(Ye,null,[z("div",wV,[z("div",vV,[xe(yV,{onResetArcs:se(BB)},null,8,["onResetArcs"])]),se(_e).showButtonBar?(ae(),Re(k4,{key:0})):Me("",!0),z("div",_V,[xe(b6,null,dA({item1:Ie(()=>[xe(T$)]),item2:Ie(()=>[xe(kN)]),_:2},[se(_e).alternativeEnergy?{name:"item3",fn:Ie(()=>[xe(TD)]),key:"0"}:{name:"item3",fn:Ie(()=>[xe(tD)]),key:"1"}]),1024)]),se(_e).showQuickAccess?Me("",!0):(ae(),Ee("div",EV,[xe(Kd,{id:"1",compact:se(_e).shortCpList=="always"},null,8,["compact"]),se(_e).showPrices?(ae(),Re(th,{key:0,id:"NoTabs"})):Me("",!0),se(_e).showVehicles?(ae(),Re(Zd,{key:1})):Me("",!0),xe(Xd),r.value?(ae(),Re(Qd,{key:2})):Me("",!0),se(_e).showCounters?(ae(),Re(Jd,{key:3})):Me("",!0),se(_e).showInverters?(ae(),Re(rh,{key:4})):Me("",!0)])),se(_e).showQuickAccess?(ae(),Ee("nav",SV,[o[6]||(o[6]=qA('AllesLadepunkte',2)),se(_e).showPrices?(ae(),Ee("a",xV,o[0]||(o[0]=[z("i",{class:"fa-solid fa-lg fa-coins"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Strompreis",-1)]))):Me("",!0),se(_e).showVehicles?(ae(),Ee("a",TV,o[1]||(o[1]=[z("i",{class:"fa-solid fa-lg fa-car"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Fahrzeuge",-1)]))):Me("",!0),se(Yt).isBatteryConfigured&&se(kt).size>0?(ae(),Ee("a",AV,o[2]||(o[2]=[z("i",{class:"fa-solid fa-lg fa-car-battery"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Speicher",-1)]))):Me("",!0),r.value?(ae(),Ee("a",CV,o[3]||(o[3]=[z("i",{class:"fa-solid fa-lg fa-plug"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Smart Home",-1)]))):Me("",!0),se(_e).showCounters?(ae(),Ee("a",IV,o[4]||(o[4]=[z("i",{class:"fa-solid fa-lg fa-bolt"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Zähler",-1)]))):Me("",!0),se(_e).showInverters?(ae(),Ee("a",MV,o[5]||(o[5]=[z("i",{class:"fa-solid fa-lg fa-solar-panel"},null,-1),z("span",{class:"d-none d-md-inline ms-2"},"Wechselrichter",-1)]))):Me("",!0)])):Me("",!0),se(_e).showQuickAccess?(ae(),Ee("div",kV,[z("div",PV,[z("div",OV,[xe(Kd,{id:"2",compact:se(_e).shortCpList!="no"},null,8,["compact"]),se(_e).showPrices?(ae(),Re(th,{key:0,id:"Overview"})):Me("",!0),se(_e).showVehicles?(ae(),Re(Zd,{key:1})):Me("",!0),xe(Xd),r.value?(ae(),Re(Qd,{key:2})):Me("",!0),se(_e).showCounters?(ae(),Re(Jd,{key:3})):Me("",!0),se(_e).showInverters?(ae(),Re(rh,{key:4})):Me("",!0)])]),z("div",LV,[z("div",RV,[xe(Kd,{id:"3",compact:se(_e).shortCpList=="always"},null,8,["compact"])])]),z("div",BV,[se(_e).showVehicles?(ae(),Ee("div",$V,[xe(Zd)])):Me("",!0)]),z("div",NV,[z("div",DV,[xe(Xd)])]),z("div",UV,[r.value?(ae(),Ee("div",FV,[xe(Qd)])):Me("",!0)]),z("div",VV,[se(_e).showCounters?(ae(),Ee("div",jV,[xe(Jd)])):Me("",!0)]),z("div",WV,[se(_e).showInverters?(ae(),Ee("div",zV,[xe(rh)])):Me("",!0)]),z("div",HV,[se(_e).showPrices?(ae(),Ee("div",qV,[xe(th,{id:"Tabbed"})])):Me("",!0)])])):Me("",!0)]),se(_e).debug?(ae(),Ee("div",GV,[z("div",YV,[o[7]||(o[7]=z("hr",null,null,-1)),z("div",KV,[z("p",XV,"Screen Width: "+ke(se(xc).x),1),z("button",{class:"btn btn-sm btn-secondary mx-4",onClick:s}," MQ Viewer ")]),e.value?(ae(),Ee("hr",QV)):Me("",!0),e.value?(ae(),Re(uV,{key:1})):Me("",!0)])])):Me("",!0)],64))}}),ZV=Je(JV,[["__scopeId","data-v-9648e6c5"]]),ej={class:"navbar navbar-expand-lg px-0 mb-0"},tj={key:0,class:"position-absolute-50 navbar-text ms-4 navbar-time",style:{color:"var(--color-menu)"}},rj=je({__name:"NavigationBar",setup(t){let e;const r=we(()=>_e.fluidDisplay?"container-fluid":"container-lg");return dn(()=>{e=setInterval(()=>{gg.value=new Date},1e3)}),i_(()=>{clearInterval(e)}),(n,s)=>(ae(),Ee(Ye,null,[z("nav",ej,[z("div",{class:rt(r.value)},[s[0]||(s[0]=z("a",{href:"/",class:"navbar-brand"},[z("span",null,"openWB")],-1)),se(_e).showClock=="navbar"?(ae(),Ee("span",tj,ke(se(BS)(se(gg))),1)):Me("",!0),s[1]||(s[1]=z("button",{class:"navbar-toggler togglebutton ps-5",type:"button","data-bs-toggle":"collapse","data-bs-target":"#mainNavbar","aria-controls":"mainNavbar","aria-expanded":"false","aria-label":"Toggle navigation"},[z("span",{class:"fa-solid fa-ellipsis-vertical"})],-1)),s[2]||(s[2]=z("div",{id:"mainNavbar",class:"collapse navbar-collapse justify-content-end"},[z("div",{class:"nav navbar-nav"},[z("a",{id:"navStatus",class:"nav-link",href:"../../settings/#/Status"},"Status"),z("div",{class:"nav-item dropdown"},[z("a",{id:"loggingDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[st("Auswertungen "),z("i",{class:"fa-solid fa-caret-down"})]),z("div",{class:"dropdown-menu","aria-labelledby":"loggingDropdown"},[z("a",{href:"../../settings/#/Logging/ChargeLog",class:"dropdown-item"},"Ladeprotokoll"),z("a",{href:"../../settings/#/Logging/Chart",class:"dropdown-item"},"Diagramme")])]),z("div",{class:"nav-item dropdown"},[z("a",{id:"settingsDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[st("Einstellungen "),z("span",{class:"fa-solid fa-caret-down"})]),z("div",{class:"dropdown-menu","aria-labelledby":"settingsDropdown"},[z("a",{id:"navSettings",class:"nav-link",href:"../../settings/index.html"},"openWB"),z("a",{class:"nav-link","data-bs-toggle":"collapse","data-bs-target":"#themesettings","aria-expanded":"false","aria-controls":"themeSettings"},[z("span",null,[st("Look&Feel"),z("span",{class:"fa-solid fa-caret-down"})])])])])])],-1))],2)]),z("div",{class:rt(r.value)},s[3]||(s[3]=[z("hr",{class:"m-0 p-0 mb-2"},null,-1)]),2)],64))}}),nj=Je(rj,[["__scopeId","data-v-ed619966"]]),ij={id:"app",class:"m-0 p-0"},sj={class:"row p-0 m-0"},oj={class:"col-12 p-0 m-0"},aj=je({__name:"App",setup(t){const e=we(()=>_e.fluidDisplay?"container-fluid":"container-lg");return(r,n)=>(ae(),Ee("div",ij,[xe(nj),z("div",{class:rt(["p-0",e.value])},[z("div",sj,[z("div",oj,[xe(ZV)])])],2)]))}});var Mr="top",Xr="bottom",Qr="right",kr="left",cf="auto",da=[Mr,Xr,Qr,kr],Js="start",Qo="end",JS="clippingParents",zm="viewport",xo="popper",ZS="reference",Eg=da.reduce(function(t,e){return t.concat([e+"-"+Js,e+"-"+Qo])},[]),Hm=[].concat(da,[cf]).reduce(function(t,e){return t.concat([e,e+"-"+Js,e+"-"+Qo])},[]),ex="beforeRead",tx="read",rx="afterRead",nx="beforeMain",ix="main",sx="afterMain",ox="beforeWrite",ax="write",lx="afterWrite",ux=[ex,tx,rx,nx,ix,sx,ox,ax,lx];function Yn(t){return t?(t.nodeName||"").toLowerCase():null}function Jr(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Zs(t){var e=Jr(t).Element;return t instanceof e||t instanceof Element}function an(t){var e=Jr(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function qm(t){if(typeof ShadowRoot>"u")return!1;var e=Jr(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function lj(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},s=e.attributes[r]||{},i=e.elements[r];!an(i)||!Yn(i)||(Object.assign(i.style,n),Object.keys(s).forEach(function(a){var o=s[a];o===!1?i.removeAttribute(a):i.setAttribute(a,o===!0?"":o)}))})}function uj(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var s=e.elements[n],i=e.attributes[n]||{},a=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]),o=a.reduce(function(l,u){return l[u]="",l},{});!an(s)||!Yn(s)||(Object.assign(s.style,o),Object.keys(i).forEach(function(l){s.removeAttribute(l)}))})}}const Gm={name:"applyStyles",enabled:!0,phase:"write",fn:lj,effect:uj,requires:["computeStyles"]};function zn(t){return t.split("-")[0]}var Hs=Math.max,Mc=Math.min,Jo=Math.round;function Sg(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function cx(){return!/^((?!chrome|android).)*safari/i.test(Sg())}function Zo(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var n=t.getBoundingClientRect(),s=1,i=1;e&&an(t)&&(s=t.offsetWidth>0&&Jo(n.width)/t.offsetWidth||1,i=t.offsetHeight>0&&Jo(n.height)/t.offsetHeight||1);var a=Zs(t)?Jr(t):window,o=a.visualViewport,l=!cx()&&r,u=(n.left+(l&&o?o.offsetLeft:0))/s,c=(n.top+(l&&o?o.offsetTop:0))/i,f=n.width/s,d=n.height/i;return{width:f,height:d,top:c,right:u+f,bottom:c+d,left:u,x:u,y:c}}function Ym(t){var e=Zo(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function fx(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&qm(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function ki(t){return Jr(t).getComputedStyle(t)}function cj(t){return["table","td","th"].indexOf(Yn(t))>=0}function cs(t){return((Zs(t)?t.ownerDocument:t.document)||window.document).documentElement}function ff(t){return Yn(t)==="html"?t:t.assignedSlot||t.parentNode||(qm(t)?t.host:null)||cs(t)}function Nv(t){return!an(t)||ki(t).position==="fixed"?null:t.offsetParent}function fj(t){var e=/firefox/i.test(Sg()),r=/Trident/i.test(Sg());if(r&&an(t)){var n=ki(t);if(n.position==="fixed")return null}var s=ff(t);for(qm(s)&&(s=s.host);an(s)&&["html","body"].indexOf(Yn(s))<0;){var i=ki(s);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return s;s=s.parentNode}return null}function Bl(t){for(var e=Jr(t),r=Nv(t);r&&cj(r)&&ki(r).position==="static";)r=Nv(r);return r&&(Yn(r)==="html"||Yn(r)==="body"&&ki(r).position==="static")?e:r||fj(t)||e}function Km(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function il(t,e,r){return Hs(t,Mc(e,r))}function dj(t,e,r){var n=il(t,e,r);return n>r?r:n}function dx(){return{top:0,right:0,bottom:0,left:0}}function hx(t){return Object.assign({},dx(),t)}function px(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}var hj=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,hx(typeof e!="number"?e:px(e,da))};function pj(t){var e,r=t.state,n=t.name,s=t.options,i=r.elements.arrow,a=r.modifiersData.popperOffsets,o=zn(r.placement),l=Km(o),u=[kr,Qr].indexOf(o)>=0,c=u?"height":"width";if(!(!i||!a)){var f=hj(s.padding,r),d=Ym(i),p=l==="y"?Mr:kr,g=l==="y"?Xr:Qr,b=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],v=a[l]-r.rects.reference[l],w=Bl(i),_=w?l==="y"?w.clientHeight||0:w.clientWidth||0:0,y=b/2-v/2,x=f[p],T=_-d[c]-f[g],A=_/2-d[c]/2+y,C=il(x,A,T),L=l;r.modifiersData[n]=(e={},e[L]=C,e.centerOffset=C-A,e)}}function gj(t){var e=t.state,r=t.options,n=r.element,s=n===void 0?"[data-popper-arrow]":n;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||fx(e.elements.popper,s)&&(e.elements.arrow=s))}const gx={name:"arrow",enabled:!0,phase:"main",fn:pj,effect:gj,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ea(t){return t.split("-")[1]}var mj={top:"auto",right:"auto",bottom:"auto",left:"auto"};function bj(t,e){var r=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:Jo(r*s)/s||0,y:Jo(n*s)/s||0}}function Dv(t){var e,r=t.popper,n=t.popperRect,s=t.placement,i=t.variation,a=t.offsets,o=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,f=t.isFixed,d=a.x,p=d===void 0?0:d,g=a.y,b=g===void 0?0:g,v=typeof c=="function"?c({x:p,y:b}):{x:p,y:b};p=v.x,b=v.y;var w=a.hasOwnProperty("x"),_=a.hasOwnProperty("y"),y=kr,x=Mr,T=window;if(u){var A=Bl(r),C="clientHeight",L="clientWidth";if(A===Jr(r)&&(A=cs(r),ki(A).position!=="static"&&o==="absolute"&&(C="scrollHeight",L="scrollWidth")),A=A,s===Mr||(s===kr||s===Qr)&&i===Qo){x=Xr;var j=f&&A===T&&T.visualViewport?T.visualViewport.height:A[C];b-=j-n.height,b*=l?1:-1}if(s===kr||(s===Mr||s===Xr)&&i===Qo){y=Qr;var R=f&&A===T&&T.visualViewport?T.visualViewport.width:A[L];p-=R-n.width,p*=l?1:-1}}var U=Object.assign({position:o},u&&mj),I=c===!0?bj({x:p,y:b},Jr(r)):{x:p,y:b};if(p=I.x,b=I.y,l){var M;return Object.assign({},U,(M={},M[x]=_?"0":"",M[y]=w?"0":"",M.transform=(T.devicePixelRatio||1)<=1?"translate("+p+"px, "+b+"px)":"translate3d("+p+"px, "+b+"px, 0)",M))}return Object.assign({},U,(e={},e[x]=_?b+"px":"",e[y]=w?p+"px":"",e.transform="",e))}function yj(t){var e=t.state,r=t.options,n=r.gpuAcceleration,s=n===void 0?!0:n,i=r.adaptive,a=i===void 0?!0:i,o=r.roundOffsets,l=o===void 0?!0:o,u={placement:zn(e.placement),variation:ea(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Dv(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Dv(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Xm={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:yj,data:{}};var hu={passive:!0};function wj(t){var e=t.state,r=t.instance,n=t.options,s=n.scroll,i=s===void 0?!0:s,a=n.resize,o=a===void 0?!0:a,l=Jr(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&u.forEach(function(c){c.addEventListener("scroll",r.update,hu)}),o&&l.addEventListener("resize",r.update,hu),function(){i&&u.forEach(function(c){c.removeEventListener("scroll",r.update,hu)}),o&&l.removeEventListener("resize",r.update,hu)}}const Qm={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:wj,data:{}};var vj={left:"right",right:"left",bottom:"top",top:"bottom"};function Hu(t){return t.replace(/left|right|bottom|top/g,function(e){return vj[e]})}var _j={start:"end",end:"start"};function Uv(t){return t.replace(/start|end/g,function(e){return _j[e]})}function Jm(t){var e=Jr(t),r=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Zm(t){return Zo(cs(t)).left+Jm(t).scrollLeft}function Ej(t,e){var r=Jr(t),n=cs(t),s=r.visualViewport,i=n.clientWidth,a=n.clientHeight,o=0,l=0;if(s){i=s.width,a=s.height;var u=cx();(u||!u&&e==="fixed")&&(o=s.offsetLeft,l=s.offsetTop)}return{width:i,height:a,x:o+Zm(t),y:l}}function Sj(t){var e,r=cs(t),n=Jm(t),s=(e=t.ownerDocument)==null?void 0:e.body,i=Hs(r.scrollWidth,r.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),a=Hs(r.scrollHeight,r.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),o=-n.scrollLeft+Zm(t),l=-n.scrollTop;return ki(s||r).direction==="rtl"&&(o+=Hs(r.clientWidth,s?s.clientWidth:0)-i),{width:i,height:a,x:o,y:l}}function eb(t){var e=ki(t),r=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+s+n)}function mx(t){return["html","body","#document"].indexOf(Yn(t))>=0?t.ownerDocument.body:an(t)&&eb(t)?t:mx(ff(t))}function sl(t,e){var r;e===void 0&&(e=[]);var n=mx(t),s=n===((r=t.ownerDocument)==null?void 0:r.body),i=Jr(n),a=s?[i].concat(i.visualViewport||[],eb(n)?n:[]):n,o=e.concat(a);return s?o:o.concat(sl(ff(a)))}function xg(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function xj(t,e){var r=Zo(t,!1,e==="fixed");return r.top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r}function Fv(t,e,r){return e===zm?xg(Ej(t,r)):Zs(e)?xj(e,r):xg(Sj(cs(t)))}function Tj(t){var e=sl(ff(t)),r=["absolute","fixed"].indexOf(ki(t).position)>=0,n=r&&an(t)?Bl(t):t;return Zs(n)?e.filter(function(s){return Zs(s)&&fx(s,n)&&Yn(s)!=="body"}):[]}function Aj(t,e,r,n){var s=e==="clippingParents"?Tj(t):[].concat(e),i=[].concat(s,[r]),a=i[0],o=i.reduce(function(l,u){var c=Fv(t,u,n);return l.top=Hs(c.top,l.top),l.right=Mc(c.right,l.right),l.bottom=Mc(c.bottom,l.bottom),l.left=Hs(c.left,l.left),l},Fv(t,a,n));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function bx(t){var e=t.reference,r=t.element,n=t.placement,s=n?zn(n):null,i=n?ea(n):null,a=e.x+e.width/2-r.width/2,o=e.y+e.height/2-r.height/2,l;switch(s){case Mr:l={x:a,y:e.y-r.height};break;case Xr:l={x:a,y:e.y+e.height};break;case Qr:l={x:e.x+e.width,y:o};break;case kr:l={x:e.x-r.width,y:o};break;default:l={x:e.x,y:e.y}}var u=s?Km(s):null;if(u!=null){var c=u==="y"?"height":"width";switch(i){case Js:l[u]=l[u]-(e[c]/2-r[c]/2);break;case Qo:l[u]=l[u]+(e[c]/2-r[c]/2);break}}return l}function ta(t,e){e===void 0&&(e={});var r=e,n=r.placement,s=n===void 0?t.placement:n,i=r.strategy,a=i===void 0?t.strategy:i,o=r.boundary,l=o===void 0?JS:o,u=r.rootBoundary,c=u===void 0?zm:u,f=r.elementContext,d=f===void 0?xo:f,p=r.altBoundary,g=p===void 0?!1:p,b=r.padding,v=b===void 0?0:b,w=hx(typeof v!="number"?v:px(v,da)),_=d===xo?ZS:xo,y=t.rects.popper,x=t.elements[g?_:d],T=Aj(Zs(x)?x:x.contextElement||cs(t.elements.popper),l,c,a),A=Zo(t.elements.reference),C=bx({reference:A,element:y,strategy:"absolute",placement:s}),L=xg(Object.assign({},y,C)),j=d===xo?L:A,R={top:T.top-j.top+w.top,bottom:j.bottom-T.bottom+w.bottom,left:T.left-j.left+w.left,right:j.right-T.right+w.right},U=t.modifiersData.offset;if(d===xo&&U){var I=U[s];Object.keys(R).forEach(function(M){var $=[Qr,Xr].indexOf(M)>=0?1:-1,Z=[Mr,Xr].indexOf(M)>=0?"y":"x";R[M]+=I[Z]*$})}return R}function Cj(t,e){e===void 0&&(e={});var r=e,n=r.placement,s=r.boundary,i=r.rootBoundary,a=r.padding,o=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Hm:l,c=ea(n),f=c?o?Eg:Eg.filter(function(g){return ea(g)===c}):da,d=f.filter(function(g){return u.indexOf(g)>=0});d.length===0&&(d=f);var p=d.reduce(function(g,b){return g[b]=ta(t,{placement:b,boundary:s,rootBoundary:i,padding:a})[zn(b)],g},{});return Object.keys(p).sort(function(g,b){return p[g]-p[b]})}function Ij(t){if(zn(t)===cf)return[];var e=Hu(t);return[Uv(t),e,Uv(e)]}function Mj(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=r.mainAxis,i=s===void 0?!0:s,a=r.altAxis,o=a===void 0?!0:a,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,p=r.flipVariations,g=p===void 0?!0:p,b=r.allowedAutoPlacements,v=e.options.placement,w=zn(v),_=w===v,y=l||(_||!g?[Hu(v)]:Ij(v)),x=[v].concat(y).reduce(function(Se,ee){return Se.concat(zn(ee)===cf?Cj(e,{placement:ee,boundary:c,rootBoundary:f,padding:u,flipVariations:g,allowedAutoPlacements:b}):ee)},[]),T=e.rects.reference,A=e.rects.popper,C=new Map,L=!0,j=x[0],R=0;R=0,Z=$?"width":"height",ne=ta(e,{placement:U,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),re=$?M?Qr:kr:M?Xr:Mr;T[Z]>A[Z]&&(re=Hu(re));var N=Hu(re),fe=[];if(i&&fe.push(ne[I]<=0),o&&fe.push(ne[re]<=0,ne[N]<=0),fe.every(function(Se){return Se})){j=U,L=!1;break}C.set(U,fe)}if(L)for(var G=g?3:1,pe=function(ee){var K=x.find(function(W){var D=C.get(W);if(D)return D.slice(0,ee).every(function(X){return X})});if(K)return j=K,"break"},F=G;F>0;F--){var de=pe(F);if(de==="break")break}e.placement!==j&&(e.modifiersData[n]._skip=!0,e.placement=j,e.reset=!0)}}const yx={name:"flip",enabled:!0,phase:"main",fn:Mj,requiresIfExists:["offset"],data:{_skip:!1}};function Vv(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function jv(t){return[Mr,Qr,Xr,kr].some(function(e){return t[e]>=0})}function kj(t){var e=t.state,r=t.name,n=e.rects.reference,s=e.rects.popper,i=e.modifiersData.preventOverflow,a=ta(e,{elementContext:"reference"}),o=ta(e,{altBoundary:!0}),l=Vv(a,n),u=Vv(o,s,i),c=jv(l),f=jv(u);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}const vx={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:kj};function Pj(t,e,r){var n=zn(t),s=[kr,Mr].indexOf(n)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,a=i[0],o=i[1];return a=a||0,o=(o||0)*s,[kr,Qr].indexOf(n)>=0?{x:o,y:a}:{x:a,y:o}}function Oj(t){var e=t.state,r=t.options,n=t.name,s=r.offset,i=s===void 0?[0,0]:s,a=Hm.reduce(function(c,f){return c[f]=Pj(f,e.rects,i),c},{}),o=a[e.placement],l=o.x,u=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[n]=a}const _x={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Oj};function Lj(t){var e=t.state,r=t.name;e.modifiersData[r]=bx({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const tb={name:"popperOffsets",enabled:!0,phase:"read",fn:Lj,data:{}};function Rj(t){return t==="x"?"y":"x"}function Bj(t){var e=t.state,r=t.options,n=t.name,s=r.mainAxis,i=s===void 0?!0:s,a=r.altAxis,o=a===void 0?!1:a,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,p=d===void 0?!0:d,g=r.tetherOffset,b=g===void 0?0:g,v=ta(e,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),w=zn(e.placement),_=ea(e.placement),y=!_,x=Km(w),T=Rj(x),A=e.modifiersData.popperOffsets,C=e.rects.reference,L=e.rects.popper,j=typeof b=="function"?b(Object.assign({},e.rects,{placement:e.placement})):b,R=typeof j=="number"?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),U=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,I={x:0,y:0};if(A){if(i){var M,$=x==="y"?Mr:kr,Z=x==="y"?Xr:Qr,ne=x==="y"?"height":"width",re=A[x],N=re+v[$],fe=re-v[Z],G=p?-L[ne]/2:0,pe=_===Js?C[ne]:L[ne],F=_===Js?-L[ne]:-C[ne],de=e.elements.arrow,Se=p&&de?Ym(de):{width:0,height:0},ee=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:dx(),K=ee[$],W=ee[Z],D=il(0,C[ne],Se[ne]),X=y?C[ne]/2-G-D-K-R.mainAxis:pe-D-K-R.mainAxis,ce=y?-C[ne]/2+G+D+W+R.mainAxis:F+D+W+R.mainAxis,le=e.elements.arrow&&Bl(e.elements.arrow),k=le?x==="y"?le.clientTop||0:le.clientLeft||0:0,P=(M=U==null?void 0:U[x])!=null?M:0,V=re+X-P-k,B=re+ce-P,H=il(p?Mc(N,V):N,re,p?Hs(fe,B):fe);A[x]=H,I[x]=H-re}if(o){var q,ue=x==="x"?Mr:kr,J=x==="x"?Xr:Qr,Y=A[T],ie=T==="y"?"height":"width",Q=Y+v[ue],oe=Y-v[J],me=[Mr,kr].indexOf(w)!==-1,Te=(q=U==null?void 0:U[T])!=null?q:0,S=me?Q:Y-C[ie]-L[ie]-Te+R.altAxis,m=me?Y+C[ie]+L[ie]-Te-R.altAxis:oe,h=p&&me?dj(S,Y,m):il(p?S:Q,Y,p?m:oe);A[T]=h,I[T]=h-Y}e.modifiersData[n]=I}}const Ex={name:"preventOverflow",enabled:!0,phase:"main",fn:Bj,requiresIfExists:["offset"]};function $j(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Nj(t){return t===Jr(t)||!an(t)?Jm(t):$j(t)}function Dj(t){var e=t.getBoundingClientRect(),r=Jo(e.width)/t.offsetWidth||1,n=Jo(e.height)/t.offsetHeight||1;return r!==1||n!==1}function Uj(t,e,r){r===void 0&&(r=!1);var n=an(e),s=an(e)&&Dj(e),i=cs(e),a=Zo(t,s,r),o={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Yn(e)!=="body"||eb(i))&&(o=Nj(e)),an(e)?(l=Zo(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):i&&(l.x=Zm(i))),{x:a.left+o.scrollLeft-l.x,y:a.top+o.scrollTop-l.y,width:a.width,height:a.height}}function Fj(t){var e=new Map,r=new Set,n=[];t.forEach(function(i){e.set(i.name,i)});function s(i){r.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(o){if(!r.has(o)){var l=e.get(o);l&&s(l)}}),n.push(i)}return t.forEach(function(i){r.has(i.name)||s(i)}),n}function Vj(t){var e=Fj(t);return ux.reduce(function(r,n){return r.concat(e.filter(function(s){return s.phase===n}))},[])}function jj(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function Wj(t){var e=t.reduce(function(r,n){var s=r[n.name];return r[n.name]=s?Object.assign({},s,n,{options:Object.assign({},s.options,n.options),data:Object.assign({},s.data,n.data)}):n,r},{});return Object.keys(e).map(function(r){return e[r]})}var Wv={placement:"bottom",modifiers:[],strategy:"absolute"};function zv(){for(var t=arguments.length,e=new Array(t),r=0;r(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,(e,r)=>`#${CSS.escape(r)}`)),t),Xj=t=>t==null?`${t}`:Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase(),Qj=t=>{do t+=Math.floor(Math.random()*Yj);while(document.getElementById(t));return t},Jj=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:r}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(r);return!n&&!s?0:(e=e.split(",")[0],r=r.split(",")[0],(Number.parseFloat(e)+Number.parseFloat(r))*Kj)},Tx=t=>{t.dispatchEvent(new Event(Tg))},wi=t=>!t||typeof t!="object"?!1:(typeof t.jquery<"u"&&(t=t[0]),typeof t.nodeType<"u"),ns=t=>wi(t)?t.jquery?t[0]:t:typeof t=="string"&&t.length>0?document.querySelector(xx(t)):null,ha=t=>{if(!wi(t)||t.getClientRects().length===0)return!1;const e=getComputedStyle(t).getPropertyValue("visibility")==="visible",r=t.closest("details:not([open])");if(!r)return e;if(r!==t){const n=t.closest("summary");if(n&&n.parentNode!==r||n===null)return!1}return e},is=t=>!t||t.nodeType!==Node.ELEMENT_NODE||t.classList.contains("disabled")?!0:typeof t.disabled<"u"?t.disabled:t.hasAttribute("disabled")&&t.getAttribute("disabled")!=="false",Ax=t=>{if(!document.documentElement.attachShadow)return null;if(typeof t.getRootNode=="function"){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Ax(t.parentNode):null},kc=()=>{},$l=t=>{t.offsetHeight},Cx=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,ih=[],Zj=t=>{document.readyState==="loading"?(ih.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of ih)e()}),ih.push(t)):t()},cn=()=>document.documentElement.dir==="rtl",hn=t=>{Zj(()=>{const e=Cx();if(e){const r=t.NAME,n=e.fn[r];e.fn[r]=t.jQueryInterface,e.fn[r].Constructor=t,e.fn[r].noConflict=()=>(e.fn[r]=n,t.jQueryInterface)}})},Br=(t,e=[],r=t)=>typeof t=="function"?t(...e):r,Ix=(t,e,r=!0)=>{if(!r){Br(t);return}const s=Jj(e)+5;let i=!1;const a=({target:o})=>{o===e&&(i=!0,e.removeEventListener(Tg,a),Br(t))};e.addEventListener(Tg,a),setTimeout(()=>{i||Tx(e)},s)},nb=(t,e,r,n)=>{const s=t.length;let i=t.indexOf(e);return i===-1?!r&&n?t[s-1]:t[0]:(i+=r?1:-1,n&&(i=(i+s)%s),t[Math.max(0,Math.min(i,s-1))])},eW=/[^.]*(?=\..*)\.|.*/,tW=/\..*/,rW=/::\d+$/,sh={};let Hv=1;const Mx={mouseenter:"mouseover",mouseleave:"mouseout"},nW=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function kx(t,e){return e&&`${e}::${Hv++}`||t.uidEvent||Hv++}function Px(t){const e=kx(t);return t.uidEvent=e,sh[e]=sh[e]||{},sh[e]}function iW(t,e){return function r(n){return ib(n,{delegateTarget:t}),r.oneOff&&$e.off(t,n.type,e),e.apply(t,[n])}}function sW(t,e,r){return function n(s){const i=t.querySelectorAll(e);for(let{target:a}=s;a&&a!==this;a=a.parentNode)for(const o of i)if(o===a)return ib(s,{delegateTarget:a}),n.oneOff&&$e.off(t,s.type,e,r),r.apply(a,[s])}}function Ox(t,e,r=null){return Object.values(t).find(n=>n.callable===e&&n.delegationSelector===r)}function Lx(t,e,r){const n=typeof e=="string",s=n?r:e||r;let i=Rx(t);return nW.has(i)||(i=t),[n,s,i]}function qv(t,e,r,n,s){if(typeof e!="string"||!t)return;let[i,a,o]=Lx(e,r,n);e in Mx&&(a=(g=>function(b){if(!b.relatedTarget||b.relatedTarget!==b.delegateTarget&&!b.delegateTarget.contains(b.relatedTarget))return g.call(this,b)})(a));const l=Px(t),u=l[o]||(l[o]={}),c=Ox(u,a,i?r:null);if(c){c.oneOff=c.oneOff&&s;return}const f=kx(a,e.replace(eW,"")),d=i?sW(t,r,a):iW(t,a);d.delegationSelector=i?r:null,d.callable=a,d.oneOff=s,d.uidEvent=f,u[f]=d,t.addEventListener(o,d,i)}function Ag(t,e,r,n,s){const i=Ox(e[r],n,s);i&&(t.removeEventListener(r,i,!!s),delete e[r][i.uidEvent])}function oW(t,e,r,n){const s=e[r]||{};for(const[i,a]of Object.entries(s))i.includes(n)&&Ag(t,e,r,a.callable,a.delegationSelector)}function Rx(t){return t=t.replace(tW,""),Mx[t]||t}const $e={on(t,e,r,n){qv(t,e,r,n,!1)},one(t,e,r,n){qv(t,e,r,n,!0)},off(t,e,r,n){if(typeof e!="string"||!t)return;const[s,i,a]=Lx(e,r,n),o=a!==e,l=Px(t),u=l[a]||{},c=e.startsWith(".");if(typeof i<"u"){if(!Object.keys(u).length)return;Ag(t,l,a,i,s?r:null);return}if(c)for(const f of Object.keys(l))oW(t,l,f,e.slice(1));for(const[f,d]of Object.entries(u)){const p=f.replace(rW,"");(!o||e.includes(p))&&Ag(t,l,a,d.callable,d.delegationSelector)}},trigger(t,e,r){if(typeof e!="string"||!t)return null;const n=Cx(),s=Rx(e),i=e!==s;let a=null,o=!0,l=!0,u=!1;i&&n&&(a=n.Event(e,r),n(t).trigger(a),o=!a.isPropagationStopped(),l=!a.isImmediatePropagationStopped(),u=a.isDefaultPrevented());const c=ib(new Event(e,{bubbles:o,cancelable:!0}),r);return u&&c.preventDefault(),l&&t.dispatchEvent(c),c.defaultPrevented&&a&&a.preventDefault(),c}};function ib(t,e={}){for(const[r,n]of Object.entries(e))try{t[r]=n}catch{Object.defineProperty(t,r,{configurable:!0,get(){return n}})}return t}function Gv(t){if(t==="true")return!0;if(t==="false")return!1;if(t===Number(t).toString())return Number(t);if(t===""||t==="null")return null;if(typeof t!="string")return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function oh(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const vi={setDataAttribute(t,e,r){t.setAttribute(`data-bs-${oh(e)}`,r)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${oh(e)}`)},getDataAttributes(t){if(!t)return{};const e={},r=Object.keys(t.dataset).filter(n=>n.startsWith("bs")&&!n.startsWith("bsConfig"));for(const n of r){let s=n.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=Gv(t.dataset[n])}return e},getDataAttribute(t,e){return Gv(t.getAttribute(`data-bs-${oh(e)}`))}};class Nl{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,r){const n=wi(r)?vi.getDataAttribute(r,"config"):{};return{...this.constructor.Default,...typeof n=="object"?n:{},...wi(r)?vi.getDataAttributes(r):{},...typeof e=="object"?e:{}}}_typeCheckConfig(e,r=this.constructor.DefaultType){for(const[n,s]of Object.entries(r)){const i=e[n],a=wi(i)?"element":Xj(i);if(!new RegExp(s).test(a))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}}}const aW="5.3.3";class Cn extends Nl{constructor(e,r){super(),e=ns(e),e&&(this._element=e,this._config=this._getConfig(r),nh.set(this._element,this.constructor.DATA_KEY,this))}dispose(){nh.remove(this._element,this.constructor.DATA_KEY),$e.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,r,n=!0){Ix(e,r,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return nh.get(ns(e),this.DATA_KEY)}static getOrCreateInstance(e,r={}){return this.getInstance(e)||new this(e,typeof r=="object"?r:null)}static get VERSION(){return aW}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const ah=t=>{let e=t.getAttribute("data-bs-target");if(!e||e==="#"){let r=t.getAttribute("href");if(!r||!r.includes("#")&&!r.startsWith("."))return null;r.includes("#")&&!r.startsWith("#")&&(r=`#${r.split("#")[1]}`),e=r&&r!=="#"?r.trim():null}return e?e.split(",").map(r=>xx(r)).join(","):null},Qe={find(t,e=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t,e=document.documentElement){return Element.prototype.querySelector.call(e,t)},children(t,e){return[].concat(...t.children).filter(r=>r.matches(e))},parents(t,e){const r=[];let n=t.parentNode.closest(e);for(;n;)r.push(n),n=n.parentNode.closest(e);return r},prev(t,e){let r=t.previousElementSibling;for(;r;){if(r.matches(e))return[r];r=r.previousElementSibling}return[]},next(t,e){let r=t.nextElementSibling;for(;r;){if(r.matches(e))return[r];r=r.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(r=>`${r}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(r=>!is(r)&&ha(r))},getSelectorFromElement(t){const e=ah(t);return e&&Qe.findOne(e)?e:null},getElementFromSelector(t){const e=ah(t);return e?Qe.findOne(e):null},getMultipleElementsFromSelector(t){const e=ah(t);return e?Qe.find(e):[]}},hf=(t,e="hide")=>{const r=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;$e.on(document,r,`[data-bs-dismiss="${n}"]`,function(s){if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),is(this))return;const i=Qe.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(i)[e]()})},lW="alert",uW="bs.alert",Bx=`.${uW}`,cW=`close${Bx}`,fW=`closed${Bx}`,dW="fade",hW="show";class pf extends Cn{static get NAME(){return lW}close(){if($e.trigger(this._element,cW).defaultPrevented)return;this._element.classList.remove(hW);const r=this._element.classList.contains(dW);this._queueCallback(()=>this._destroyElement(),this._element,r)}_destroyElement(){this._element.remove(),$e.trigger(this._element,fW),this.dispose()}static jQueryInterface(e){return this.each(function(){const r=pf.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}hf(pf,"close");hn(pf);const pW="button",gW="bs.button",mW=`.${gW}`,bW=".data-api",yW="active",Yv='[data-bs-toggle="button"]',wW=`click${mW}${bW}`;class gf extends Cn{static get NAME(){return pW}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(yW))}static jQueryInterface(e){return this.each(function(){const r=gf.getOrCreateInstance(this);e==="toggle"&&r[e]()})}}$e.on(document,wW,Yv,t=>{t.preventDefault();const e=t.target.closest(Yv);gf.getOrCreateInstance(e).toggle()});hn(gf);const vW="swipe",pa=".bs.swipe",_W=`touchstart${pa}`,EW=`touchmove${pa}`,SW=`touchend${pa}`,xW=`pointerdown${pa}`,TW=`pointerup${pa}`,AW="touch",CW="pen",IW="pointer-event",MW=40,kW={endCallback:null,leftCallback:null,rightCallback:null},PW={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Pc extends Nl{constructor(e,r){super(),this._element=e,!(!e||!Pc.isSupported())&&(this._config=this._getConfig(r),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return kW}static get DefaultType(){return PW}static get NAME(){return vW}dispose(){$e.off(this._element,pa)}_start(e){if(!this._supportPointerEvents){this._deltaX=e.touches[0].clientX;return}this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),Br(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=MW)return;const r=e/this._deltaX;this._deltaX=0,r&&Br(r>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?($e.on(this._element,xW,e=>this._start(e)),$e.on(this._element,TW,e=>this._end(e)),this._element.classList.add(IW)):($e.on(this._element,_W,e=>this._start(e)),$e.on(this._element,EW,e=>this._move(e)),$e.on(this._element,SW,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===CW||e.pointerType===AW)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const OW="carousel",LW="bs.carousel",fs=`.${LW}`,$x=".data-api",RW="ArrowLeft",BW="ArrowRight",$W=500,$a="next",wo="prev",To="left",qu="right",NW=`slide${fs}`,lh=`slid${fs}`,DW=`keydown${fs}`,UW=`mouseenter${fs}`,FW=`mouseleave${fs}`,VW=`dragstart${fs}`,jW=`load${fs}${$x}`,WW=`click${fs}${$x}`,Nx="carousel",pu="active",zW="slide",HW="carousel-item-end",qW="carousel-item-start",GW="carousel-item-next",YW="carousel-item-prev",Dx=".active",Ux=".carousel-item",KW=Dx+Ux,XW=".carousel-item img",QW=".carousel-indicators",JW="[data-bs-slide], [data-bs-slide-to]",ZW='[data-bs-ride="carousel"]',e5={[RW]:qu,[BW]:To},t5={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},r5={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Dl extends Cn{constructor(e,r){super(e,r),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=Qe.findOne(QW,this._element),this._addEventListeners(),this._config.ride===Nx&&this.cycle()}static get Default(){return t5}static get DefaultType(){return r5}static get NAME(){return OW}next(){this._slide($a)}nextWhenVisible(){!document.hidden&&ha(this._element)&&this.next()}prev(){this._slide(wo)}pause(){this._isSliding&&Tx(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){$e.one(this._element,lh,()=>this.cycle());return}this.cycle()}}to(e){const r=this._getItems();if(e>r.length-1||e<0)return;if(this._isSliding){$e.one(this._element,lh,()=>this.to(e));return}const n=this._getItemIndex(this._getActive());if(n===e)return;const s=e>n?$a:wo;this._slide(s,r[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&$e.on(this._element,DW,e=>this._keydown(e)),this._config.pause==="hover"&&($e.on(this._element,UW,()=>this.pause()),$e.on(this._element,FW,()=>this._maybeEnableCycle())),this._config.touch&&Pc.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const n of Qe.find(XW,this._element))$e.on(n,VW,s=>s.preventDefault());const r={leftCallback:()=>this._slide(this._directionToOrder(To)),rightCallback:()=>this._slide(this._directionToOrder(qu)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),$W+this._config.interval))}};this._swipeHelper=new Pc(this._element,r)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const r=e5[e.key];r&&(e.preventDefault(),this._slide(this._directionToOrder(r)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const r=Qe.findOne(Dx,this._indicatorsElement);r.classList.remove(pu),r.removeAttribute("aria-current");const n=Qe.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(pu),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const r=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=r||this._config.defaultInterval}_slide(e,r=null){if(this._isSliding)return;const n=this._getActive(),s=e===$a,i=r||nb(this._getItems(),n,s,this._config.wrap);if(i===n)return;const a=this._getItemIndex(i),o=p=>$e.trigger(this._element,p,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:a});if(o(NW).defaultPrevented||!n||!i)return;const u=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(a),this._activeElement=i;const c=s?qW:HW,f=s?GW:YW;i.classList.add(f),$l(i),n.classList.add(c),i.classList.add(c);const d=()=>{i.classList.remove(c,f),i.classList.add(pu),n.classList.remove(pu,f,c),this._isSliding=!1,o(lh)};this._queueCallback(d,n,this._isAnimated()),u&&this.cycle()}_isAnimated(){return this._element.classList.contains(zW)}_getActive(){return Qe.findOne(KW,this._element)}_getItems(){return Qe.find(Ux,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return cn()?e===To?wo:$a:e===To?$a:wo}_orderToDirection(e){return cn()?e===wo?To:qu:e===wo?qu:To}static jQueryInterface(e){return this.each(function(){const r=Dl.getOrCreateInstance(this,e);if(typeof e=="number"){r.to(e);return}if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}$e.on(document,WW,JW,function(t){const e=Qe.getElementFromSelector(this);if(!e||!e.classList.contains(Nx))return;t.preventDefault();const r=Dl.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");if(n){r.to(n),r._maybeEnableCycle();return}if(vi.getDataAttribute(this,"slide")==="next"){r.next(),r._maybeEnableCycle();return}r.prev(),r._maybeEnableCycle()});$e.on(window,jW,()=>{const t=Qe.find(ZW);for(const e of t)Dl.getOrCreateInstance(e)});hn(Dl);const n5="collapse",i5="bs.collapse",Ul=`.${i5}`,s5=".data-api",o5=`show${Ul}`,a5=`shown${Ul}`,l5=`hide${Ul}`,u5=`hidden${Ul}`,c5=`click${Ul}${s5}`,uh="show",ko="collapse",gu="collapsing",f5="collapsed",d5=`:scope .${ko} .${ko}`,h5="collapse-horizontal",p5="width",g5="height",m5=".collapse.show, .collapse.collapsing",Cg='[data-bs-toggle="collapse"]',b5={parent:null,toggle:!0},y5={parent:"(null|element)",toggle:"boolean"};class vl extends Cn{constructor(e,r){super(e,r),this._isTransitioning=!1,this._triggerArray=[];const n=Qe.find(Cg);for(const s of n){const i=Qe.getSelectorFromElement(s),a=Qe.find(i).filter(o=>o===this._element);i!==null&&a.length&&this._triggerArray.push(s)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return b5}static get DefaultType(){return y5}static get NAME(){return n5}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(m5).filter(o=>o!==this._element).map(o=>vl.getOrCreateInstance(o,{toggle:!1}))),e.length&&e[0]._isTransitioning||$e.trigger(this._element,o5).defaultPrevented)return;for(const o of e)o.hide();const n=this._getDimension();this._element.classList.remove(ko),this._element.classList.add(gu),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=()=>{this._isTransitioning=!1,this._element.classList.remove(gu),this._element.classList.add(ko,uh),this._element.style[n]="",$e.trigger(this._element,a5)},a=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(s,this._element,!0),this._element.style[n]=`${this._element[a]}px`}hide(){if(this._isTransitioning||!this._isShown()||$e.trigger(this._element,l5).defaultPrevented)return;const r=this._getDimension();this._element.style[r]=`${this._element.getBoundingClientRect()[r]}px`,$l(this._element),this._element.classList.add(gu),this._element.classList.remove(ko,uh);for(const s of this._triggerArray){const i=Qe.getElementFromSelector(s);i&&!this._isShown(i)&&this._addAriaAndCollapsedClass([s],!1)}this._isTransitioning=!0;const n=()=>{this._isTransitioning=!1,this._element.classList.remove(gu),this._element.classList.add(ko),$e.trigger(this._element,u5)};this._element.style[r]="",this._queueCallback(n,this._element,!0)}_isShown(e=this._element){return e.classList.contains(uh)}_configAfterMerge(e){return e.toggle=!!e.toggle,e.parent=ns(e.parent),e}_getDimension(){return this._element.classList.contains(h5)?p5:g5}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(Cg);for(const r of e){const n=Qe.getElementFromSelector(r);n&&this._addAriaAndCollapsedClass([r],this._isShown(n))}}_getFirstLevelChildren(e){const r=Qe.find(d5,this._config.parent);return Qe.find(e,this._config.parent).filter(n=>!r.includes(n))}_addAriaAndCollapsedClass(e,r){if(e.length)for(const n of e)n.classList.toggle(f5,!r),n.setAttribute("aria-expanded",r)}static jQueryInterface(e){const r={};return typeof e=="string"&&/show|hide/.test(e)&&(r.toggle=!1),this.each(function(){const n=vl.getOrCreateInstance(this,r);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e]()}})}}$e.on(document,c5,Cg,function(t){(t.target.tagName==="A"||t.delegateTarget&&t.delegateTarget.tagName==="A")&&t.preventDefault();for(const e of Qe.getMultipleElementsFromSelector(this))vl.getOrCreateInstance(e,{toggle:!1}).toggle()});hn(vl);const Kv="dropdown",w5="bs.dropdown",fo=`.${w5}`,sb=".data-api",v5="Escape",Xv="Tab",_5="ArrowUp",Qv="ArrowDown",E5=2,S5=`hide${fo}`,x5=`hidden${fo}`,T5=`show${fo}`,A5=`shown${fo}`,Fx=`click${fo}${sb}`,Vx=`keydown${fo}${sb}`,C5=`keyup${fo}${sb}`,Ao="show",I5="dropup",M5="dropend",k5="dropstart",P5="dropup-center",O5="dropdown-center",Bs='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',L5=`${Bs}.${Ao}`,Gu=".dropdown-menu",R5=".navbar",B5=".navbar-nav",$5=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",N5=cn()?"top-end":"top-start",D5=cn()?"top-start":"top-end",U5=cn()?"bottom-end":"bottom-start",F5=cn()?"bottom-start":"bottom-end",V5=cn()?"left-start":"right-start",j5=cn()?"right-start":"left-start",W5="top",z5="bottom",H5={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},q5={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Hn extends Cn{constructor(e,r){super(e,r),this._popper=null,this._parent=this._element.parentNode,this._menu=Qe.next(this._element,Gu)[0]||Qe.prev(this._element,Gu)[0]||Qe.findOne(Gu,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return H5}static get DefaultType(){return q5}static get NAME(){return Kv}toggle(){return this._isShown()?this.hide():this.show()}show(){if(is(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!$e.trigger(this._element,T5,e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(B5))for(const n of[].concat(...document.body.children))$e.on(n,"mouseover",kc);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Ao),this._element.classList.add(Ao),$e.trigger(this._element,A5,e)}}hide(){if(is(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!$e.trigger(this._element,S5,e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const n of[].concat(...document.body.children))$e.off(n,"mouseover",kc);this._popper&&this._popper.destroy(),this._menu.classList.remove(Ao),this._element.classList.remove(Ao),this._element.setAttribute("aria-expanded","false"),vi.removeDataAttribute(this._menu,"popper"),$e.trigger(this._element,x5,e)}}_getConfig(e){if(e=super._getConfig(e),typeof e.reference=="object"&&!wi(e.reference)&&typeof e.reference.getBoundingClientRect!="function")throw new TypeError(`${Kv.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(typeof Sx>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;this._config.reference==="parent"?e=this._parent:wi(this._config.reference)?e=ns(this._config.reference):typeof this._config.reference=="object"&&(e=this._config.reference);const r=this._getPopperConfig();this._popper=rb(e,this._menu,r)}_isShown(){return this._menu.classList.contains(Ao)}_getPlacement(){const e=this._parent;if(e.classList.contains(M5))return V5;if(e.classList.contains(k5))return j5;if(e.classList.contains(P5))return W5;if(e.classList.contains(O5))return z5;const r=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return e.classList.contains(I5)?r?D5:N5:r?F5:U5}_detectNavbar(){return this._element.closest(R5)!==null}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(vi.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...Br(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:r}){const n=Qe.find($5,this._menu).filter(s=>ha(s));n.length&&nb(n,r,e===Qv,!n.includes(r)).focus()}static jQueryInterface(e){return this.each(function(){const r=Hn.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}static clearMenus(e){if(e.button===E5||e.type==="keyup"&&e.key!==Xv)return;const r=Qe.find(L5);for(const n of r){const s=Hn.getInstance(n);if(!s||s._config.autoClose===!1)continue;const i=e.composedPath(),a=i.includes(s._menu);if(i.includes(s._element)||s._config.autoClose==="inside"&&!a||s._config.autoClose==="outside"&&a||s._menu.contains(e.target)&&(e.type==="keyup"&&e.key===Xv||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const o={relatedTarget:s._element};e.type==="click"&&(o.clickEvent=e),s._completeHide(o)}}static dataApiKeydownHandler(e){const r=/input|textarea/i.test(e.target.tagName),n=e.key===v5,s=[_5,Qv].includes(e.key);if(!s&&!n||r&&!n)return;e.preventDefault();const i=this.matches(Bs)?this:Qe.prev(this,Bs)[0]||Qe.next(this,Bs)[0]||Qe.findOne(Bs,e.delegateTarget.parentNode),a=Hn.getOrCreateInstance(i);if(s){e.stopPropagation(),a.show(),a._selectMenuItem(e);return}a._isShown()&&(e.stopPropagation(),a.hide(),i.focus())}}$e.on(document,Vx,Bs,Hn.dataApiKeydownHandler);$e.on(document,Vx,Gu,Hn.dataApiKeydownHandler);$e.on(document,Fx,Hn.clearMenus);$e.on(document,C5,Hn.clearMenus);$e.on(document,Fx,Bs,function(t){t.preventDefault(),Hn.getOrCreateInstance(this).toggle()});hn(Hn);const jx="backdrop",G5="fade",Jv="show",Zv=`mousedown.bs.${jx}`,Y5={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},K5={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Wx extends Nl{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Y5}static get DefaultType(){return K5}static get NAME(){return jx}show(e){if(!this._config.isVisible){Br(e);return}this._append();const r=this._getElement();this._config.isAnimated&&$l(r),r.classList.add(Jv),this._emulateAnimation(()=>{Br(e)})}hide(e){if(!this._config.isVisible){Br(e);return}this._getElement().classList.remove(Jv),this._emulateAnimation(()=>{this.dispose(),Br(e)})}dispose(){this._isAppended&&($e.off(this._element,Zv),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add(G5),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=ns(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),$e.on(e,Zv,()=>{Br(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){Ix(e,this._getElement(),this._config.isAnimated)}}const X5="focustrap",Q5="bs.focustrap",Oc=`.${Q5}`,J5=`focusin${Oc}`,Z5=`keydown.tab${Oc}`,ez="Tab",tz="forward",e0="backward",rz={autofocus:!0,trapElement:null},nz={autofocus:"boolean",trapElement:"element"};class zx extends Nl{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return rz}static get DefaultType(){return nz}static get NAME(){return X5}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),$e.off(document,Oc),$e.on(document,J5,e=>this._handleFocusin(e)),$e.on(document,Z5,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,$e.off(document,Oc))}_handleFocusin(e){const{trapElement:r}=this._config;if(e.target===document||e.target===r||r.contains(e.target))return;const n=Qe.focusableChildren(r);n.length===0?r.focus():this._lastTabNavDirection===e0?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===ez&&(this._lastTabNavDirection=e.shiftKey?e0:tz)}}const t0=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",r0=".sticky-top",mu="padding-right",n0="margin-right";class Ig{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,mu,r=>r+e),this._setElementAttributes(t0,mu,r=>r+e),this._setElementAttributes(r0,n0,r=>r-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,mu),this._resetElementAttributes(t0,mu),this._resetElementAttributes(r0,n0)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,r,n){const s=this.getWidth(),i=a=>{if(a!==this._element&&window.innerWidth>a.clientWidth+s)return;this._saveInitialAttribute(a,r);const o=window.getComputedStyle(a).getPropertyValue(r);a.style.setProperty(r,`${n(Number.parseFloat(o))}px`)};this._applyManipulationCallback(e,i)}_saveInitialAttribute(e,r){const n=e.style.getPropertyValue(r);n&&vi.setDataAttribute(e,r,n)}_resetElementAttributes(e,r){const n=s=>{const i=vi.getDataAttribute(s,r);if(i===null){s.style.removeProperty(r);return}vi.removeDataAttribute(s,r),s.style.setProperty(r,i)};this._applyManipulationCallback(e,n)}_applyManipulationCallback(e,r){if(wi(e)){r(e);return}for(const n of Qe.find(e,this._element))r(n)}}const iz="modal",sz="bs.modal",fn=`.${sz}`,oz=".data-api",az="Escape",lz=`hide${fn}`,uz=`hidePrevented${fn}`,Hx=`hidden${fn}`,qx=`show${fn}`,cz=`shown${fn}`,fz=`resize${fn}`,dz=`click.dismiss${fn}`,hz=`mousedown.dismiss${fn}`,pz=`keydown.dismiss${fn}`,gz=`click${fn}${oz}`,i0="modal-open",mz="fade",s0="show",ch="modal-static",bz=".modal.show",yz=".modal-dialog",wz=".modal-body",vz='[data-bs-toggle="modal"]',_z={backdrop:!0,focus:!0,keyboard:!0},Ez={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class ra extends Cn{constructor(e,r){super(e,r),this._dialog=Qe.findOne(yz,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ig,this._addEventListeners()}static get Default(){return _z}static get DefaultType(){return Ez}static get NAME(){return iz}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||$e.trigger(this._element,qx,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(i0),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){!this._isShown||this._isTransitioning||$e.trigger(this._element,lz).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(s0),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){$e.off(window,fn),$e.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Wx({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new zx({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const r=Qe.findOne(wz,this._dialog);r&&(r.scrollTop=0),$l(this._element),this._element.classList.add(s0);const n=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,$e.trigger(this._element,cz,{relatedTarget:e})};this._queueCallback(n,this._dialog,this._isAnimated())}_addEventListeners(){$e.on(this._element,pz,e=>{if(e.key===az){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),$e.on(window,fz,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),$e.on(this._element,hz,e=>{$e.one(this._element,dz,r=>{if(!(this._element!==e.target||this._element!==r.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(i0),this._resetAdjustments(),this._scrollBar.reset(),$e.trigger(this._element,Hx)})}_isAnimated(){return this._element.classList.contains(mz)}_triggerBackdropTransition(){if($e.trigger(this._element,uz).defaultPrevented)return;const r=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY;n==="hidden"||this._element.classList.contains(ch)||(r||(this._element.style.overflowY="hidden"),this._element.classList.add(ch),this._queueCallback(()=>{this._element.classList.remove(ch),this._queueCallback(()=>{this._element.style.overflowY=n},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,r=this._scrollBar.getWidth(),n=r>0;if(n&&!e){const s=cn()?"paddingLeft":"paddingRight";this._element.style[s]=`${r}px`}if(!n&&e){const s=cn()?"paddingRight":"paddingLeft";this._element.style[s]=`${r}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,r){return this.each(function(){const n=ra.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e](r)}})}}$e.on(document,gz,vz,function(t){const e=Qe.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),$e.one(e,qx,s=>{s.defaultPrevented||$e.one(e,Hx,()=>{ha(this)&&this.focus()})});const r=Qe.findOne(bz);r&&ra.getInstance(r).hide(),ra.getOrCreateInstance(e).toggle(this)});hf(ra);hn(ra);const Sz="offcanvas",xz="bs.offcanvas",$i=`.${xz}`,Gx=".data-api",Tz=`load${$i}${Gx}`,Az="Escape",o0="show",a0="showing",l0="hiding",Cz="offcanvas-backdrop",Yx=".offcanvas.show",Iz=`show${$i}`,Mz=`shown${$i}`,kz=`hide${$i}`,u0=`hidePrevented${$i}`,Kx=`hidden${$i}`,Pz=`resize${$i}`,Oz=`click${$i}${Gx}`,Lz=`keydown.dismiss${$i}`,Rz='[data-bs-toggle="offcanvas"]',Bz={backdrop:!0,keyboard:!0,scroll:!1},$z={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class ss extends Cn{constructor(e,r){super(e,r),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Bz}static get DefaultType(){return $z}static get NAME(){return Sz}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||$e.trigger(this._element,Iz,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new Ig().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(a0);const n=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(o0),this._element.classList.remove(a0),$e.trigger(this._element,Mz,{relatedTarget:e})};this._queueCallback(n,this._element,!0)}hide(){if(!this._isShown||$e.trigger(this._element,kz).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(l0),this._backdrop.hide();const r=()=>{this._element.classList.remove(o0,l0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new Ig().reset(),$e.trigger(this._element,Kx)};this._queueCallback(r,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=()=>{if(this._config.backdrop==="static"){$e.trigger(this._element,u0);return}this.hide()},r=!!this._config.backdrop;return new Wx({className:Cz,isVisible:r,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:r?e:null})}_initializeFocusTrap(){return new zx({trapElement:this._element})}_addEventListeners(){$e.on(this._element,Lz,e=>{if(e.key===Az){if(this._config.keyboard){this.hide();return}$e.trigger(this._element,u0)}})}static jQueryInterface(e){return this.each(function(){const r=ss.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}$e.on(document,Oz,Rz,function(t){const e=Qe.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),is(this))return;$e.one(e,Kx,()=>{ha(this)&&this.focus()});const r=Qe.findOne(Yx);r&&r!==e&&ss.getInstance(r).hide(),ss.getOrCreateInstance(e).toggle(this)});$e.on(window,Tz,()=>{for(const t of Qe.find(Yx))ss.getOrCreateInstance(t).show()});$e.on(window,Pz,()=>{for(const t of Qe.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(t).position!=="fixed"&&ss.getOrCreateInstance(t).hide()});hf(ss);hn(ss);const Nz=/^aria-[\w-]*$/i,Xx={"*":["class","dir","id","lang","role",Nz],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Dz=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Uz=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Fz=(t,e)=>{const r=t.nodeName.toLowerCase();return e.includes(r)?Dz.has(r)?!!Uz.test(t.nodeValue):!0:e.filter(n=>n instanceof RegExp).some(n=>n.test(r))};function Vz(t,e,r){if(!t.length)return t;if(r&&typeof r=="function")return r(t);const s=new window.DOMParser().parseFromString(t,"text/html"),i=[].concat(...s.body.querySelectorAll("*"));for(const a of i){const o=a.nodeName.toLowerCase();if(!Object.keys(e).includes(o)){a.remove();continue}const l=[].concat(...a.attributes),u=[].concat(e["*"]||[],e[o]||[]);for(const c of l)Fz(c,u)||a.removeAttribute(c.nodeName)}return s.body.innerHTML}const jz="TemplateFactory",Wz={allowList:Xx,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},zz={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Hz={entry:"(string|element|function|null)",selector:"(string|element)"};class qz extends Nl{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Wz}static get DefaultType(){return zz}static get NAME(){return jz}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[s,i]of Object.entries(this._config.content))this._setContent(e,i,s);const r=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&r.classList.add(...n.split(" ")),r}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[r,n]of Object.entries(e))super._typeCheckConfig({selector:r,entry:n},Hz)}_setContent(e,r,n){const s=Qe.findOne(n,e);if(s){if(r=this._resolvePossibleFunction(r),!r){s.remove();return}if(wi(r)){this._putElementInTemplate(ns(r),s);return}if(this._config.html){s.innerHTML=this._maybeSanitize(r);return}s.textContent=r}}_maybeSanitize(e){return this._config.sanitize?Vz(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Br(e,[this])}_putElementInTemplate(e,r){if(this._config.html){r.innerHTML="",r.append(e);return}r.textContent=e.textContent}}const Gz="tooltip",Yz=new Set(["sanitize","allowList","sanitizeFn"]),fh="fade",Kz="modal",bu="show",Xz=".tooltip-inner",c0=`.${Kz}`,f0="hide.bs.modal",Na="hover",dh="focus",Qz="click",Jz="manual",Zz="hide",eH="hidden",tH="show",rH="shown",nH="inserted",iH="click",sH="focusin",oH="focusout",aH="mouseenter",lH="mouseleave",uH={AUTO:"auto",TOP:"top",RIGHT:cn()?"left":"right",BOTTOM:"bottom",LEFT:cn()?"right":"left"},cH={allowList:Xx,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},fH={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class ga extends Cn{constructor(e,r){if(typeof Sx>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,r),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return cH}static get DefaultType(){return fH}static get NAME(){return Gz}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),$e.off(this._element.closest(c0),f0,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;const e=$e.trigger(this._element,this.constructor.eventName(tH)),n=(Ax(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!n)return;this._disposePopper();const s=this._getTipElement();this._element.setAttribute("aria-describedby",s.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(s),$e.trigger(this._element,this.constructor.eventName(nH))),this._popper=this._createPopper(s),s.classList.add(bu),"ontouchstart"in document.documentElement)for(const o of[].concat(...document.body.children))$e.on(o,"mouseover",kc);const a=()=>{$e.trigger(this._element,this.constructor.eventName(rH)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(a,this.tip,this._isAnimated())}hide(){if(!this._isShown()||$e.trigger(this._element,this.constructor.eventName(Zz)).defaultPrevented)return;if(this._getTipElement().classList.remove(bu),"ontouchstart"in document.documentElement)for(const s of[].concat(...document.body.children))$e.off(s,"mouseover",kc);this._activeTrigger[Qz]=!1,this._activeTrigger[dh]=!1,this._activeTrigger[Na]=!1,this._isHovered=null;const n=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),$e.trigger(this._element,this.constructor.eventName(eH)))};this._queueCallback(n,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const r=this._getTemplateFactory(e).toHtml();if(!r)return null;r.classList.remove(fh,bu),r.classList.add(`bs-${this.constructor.NAME}-auto`);const n=Qj(this.constructor.NAME).toString();return r.setAttribute("id",n),this._isAnimated()&&r.classList.add(fh),r}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new qz({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Xz]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(fh)}_isShown(){return this.tip&&this.tip.classList.contains(bu)}_createPopper(e){const r=Br(this._config.placement,[this,e,this._element]),n=uH[r.toUpperCase()];return rb(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_resolvePossibleFunction(e){return Br(e,[this._element])}_getPopperConfig(e){const r={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:n=>{this._getTipElement().setAttribute("data-popper-placement",n.state.placement)}}]};return{...r,...Br(this._config.popperConfig,[r])}}_setListeners(){const e=this._config.trigger.split(" ");for(const r of e)if(r==="click")$e.on(this._element,this.constructor.eventName(iH),this._config.selector,n=>{this._initializeOnDelegatedTarget(n).toggle()});else if(r!==Jz){const n=r===Na?this.constructor.eventName(aH):this.constructor.eventName(sH),s=r===Na?this.constructor.eventName(lH):this.constructor.eventName(oH);$e.on(this._element,n,this._config.selector,i=>{const a=this._initializeOnDelegatedTarget(i);a._activeTrigger[i.type==="focusin"?dh:Na]=!0,a._enter()}),$e.on(this._element,s,this._config.selector,i=>{const a=this._initializeOnDelegatedTarget(i);a._activeTrigger[i.type==="focusout"?dh:Na]=a._element.contains(i.relatedTarget),a._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},$e.on(this._element.closest(c0),f0,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,r){clearTimeout(this._timeout),this._timeout=setTimeout(e,r)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const r=vi.getDataAttributes(this._element);for(const n of Object.keys(r))Yz.has(n)&&delete r[n];return e={...r,...typeof e=="object"&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=e.container===!1?document.body:ns(e.container),typeof e.delay=="number"&&(e.delay={show:e.delay,hide:e.delay}),typeof e.title=="number"&&(e.title=e.title.toString()),typeof e.content=="number"&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[r,n]of Object.entries(this._config))this.constructor.Default[r]!==n&&(e[r]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const r=ga.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}hn(ga);const dH="popover",hH=".popover-header",pH=".popover-body",gH={...ga.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},mH={...ga.DefaultType,content:"(null|string|element|function)"};class ob extends ga{static get Default(){return gH}static get DefaultType(){return mH}static get NAME(){return dH}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[hH]:this._getTitle(),[pH]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const r=ob.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}hn(ob);const bH="scrollspy",yH="bs.scrollspy",ab=`.${yH}`,wH=".data-api",vH=`activate${ab}`,d0=`click${ab}`,_H=`load${ab}${wH}`,EH="dropdown-item",vo="active",SH='[data-bs-spy="scroll"]',hh="[href]",xH=".nav, .list-group",h0=".nav-link",TH=".nav-item",AH=".list-group-item",CH=`${h0}, ${TH} > ${h0}, ${AH}`,IH=".dropdown",MH=".dropdown-toggle",kH={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},PH={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class mf extends Cn{constructor(e,r){super(e,r),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return kH}static get DefaultType(){return PH}static get NAME(){return bH}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=ns(e.target)||document.body,e.rootMargin=e.offset?`${e.offset}px 0px -30%`:e.rootMargin,typeof e.threshold=="string"&&(e.threshold=e.threshold.split(",").map(r=>Number.parseFloat(r))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&($e.off(this._config.target,d0),$e.on(this._config.target,d0,hh,e=>{const r=this._observableSections.get(e.target.hash);if(r){e.preventDefault();const n=this._rootElement||window,s=r.offsetTop-this._element.offsetTop;if(n.scrollTo){n.scrollTo({top:s,behavior:"smooth"});return}n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(r=>this._observerCallback(r),e)}_observerCallback(e){const r=a=>this._targetLinks.get(`#${a.target.id}`),n=a=>{this._previousScrollData.visibleEntryTop=a.target.offsetTop,this._process(r(a))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const a of e){if(!a.isIntersecting){this._activeTarget=null,this._clearActiveClass(r(a));continue}const o=a.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&o){if(n(a),!s)return;continue}!i&&!o&&n(a)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=Qe.find(hh,this._config.target);for(const r of e){if(!r.hash||is(r))continue;const n=Qe.findOne(decodeURI(r.hash),this._element);ha(n)&&(this._targetLinks.set(decodeURI(r.hash),r),this._observableSections.set(r.hash,n))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(vo),this._activateParents(e),$e.trigger(this._element,vH,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(EH)){Qe.findOne(MH,e.closest(IH)).classList.add(vo);return}for(const r of Qe.parents(e,xH))for(const n of Qe.prev(r,CH))n.classList.add(vo)}_clearActiveClass(e){e.classList.remove(vo);const r=Qe.find(`${hh}.${vo}`,e);for(const n of r)n.classList.remove(vo)}static jQueryInterface(e){return this.each(function(){const r=mf.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}$e.on(window,_H,()=>{for(const t of Qe.find(SH))mf.getOrCreateInstance(t)});hn(mf);const OH="tab",LH="bs.tab",ho=`.${LH}`,RH=`hide${ho}`,BH=`hidden${ho}`,$H=`show${ho}`,NH=`shown${ho}`,DH=`click${ho}`,UH=`keydown${ho}`,FH=`load${ho}`,VH="ArrowLeft",p0="ArrowRight",jH="ArrowUp",g0="ArrowDown",ph="Home",m0="End",$s="active",b0="fade",gh="show",WH="dropdown",Qx=".dropdown-toggle",zH=".dropdown-menu",mh=`:not(${Qx})`,HH='.list-group, .nav, [role="tablist"]',qH=".nav-item, .list-group-item",GH=`.nav-link${mh}, .list-group-item${mh}, [role="tab"]${mh}`,Jx='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',bh=`${GH}, ${Jx}`,YH=`.${$s}[data-bs-toggle="tab"], .${$s}[data-bs-toggle="pill"], .${$s}[data-bs-toggle="list"]`;class na extends Cn{constructor(e){super(e),this._parent=this._element.closest(HH),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),$e.on(this._element,UH,r=>this._keydown(r)))}static get NAME(){return OH}show(){const e=this._element;if(this._elemIsActive(e))return;const r=this._getActiveElem(),n=r?$e.trigger(r,RH,{relatedTarget:e}):null;$e.trigger(e,$H,{relatedTarget:r}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(r,e),this._activate(e,r))}_activate(e,r){if(!e)return;e.classList.add($s),this._activate(Qe.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.add(gh);return}e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),$e.trigger(e,NH,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(b0))}_deactivate(e,r){if(!e)return;e.classList.remove($s),e.blur(),this._deactivate(Qe.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.remove(gh);return}e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),$e.trigger(e,BH,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(b0))}_keydown(e){if(![VH,p0,jH,g0,ph,m0].includes(e.key))return;e.stopPropagation(),e.preventDefault();const r=this._getChildren().filter(s=>!is(s));let n;if([ph,m0].includes(e.key))n=r[e.key===ph?0:r.length-1];else{const s=[p0,g0].includes(e.key);n=nb(r,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),na.getOrCreateInstance(n).show())}_getChildren(){return Qe.find(bh,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,r){this._setAttributeIfNotExists(e,"role","tablist");for(const n of r)this._setInitialAttributesOnChild(n)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const r=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",r),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),r||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const r=Qe.getElementFromSelector(e);r&&(this._setAttributeIfNotExists(r,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(r,"aria-labelledby",`${e.id}`))}_toggleDropDown(e,r){const n=this._getOuterElement(e);if(!n.classList.contains(WH))return;const s=(i,a)=>{const o=Qe.findOne(i,n);o&&o.classList.toggle(a,r)};s(Qx,$s),s(zH,gh),n.setAttribute("aria-expanded",r)}_setAttributeIfNotExists(e,r,n){e.hasAttribute(r)||e.setAttribute(r,n)}_elemIsActive(e){return e.classList.contains($s)}_getInnerElement(e){return e.matches(bh)?e:Qe.findOne(bh,e)}_getOuterElement(e){return e.closest(qH)||e}static jQueryInterface(e){return this.each(function(){const r=na.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}$e.on(document,DH,Jx,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),!is(this)&&na.getOrCreateInstance(this).show()});$e.on(window,FH,()=>{for(const t of Qe.find(YH))na.getOrCreateInstance(t)});hn(na);const KH="toast",XH="bs.toast",ds=`.${XH}`,QH=`mouseover${ds}`,JH=`mouseout${ds}`,ZH=`focusin${ds}`,eq=`focusout${ds}`,tq=`hide${ds}`,rq=`hidden${ds}`,nq=`show${ds}`,iq=`shown${ds}`,sq="fade",y0="hide",yu="show",wu="showing",oq={animation:"boolean",autohide:"boolean",delay:"number"},aq={animation:!0,autohide:!0,delay:5e3};class bf extends Cn{constructor(e,r){super(e,r),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return aq}static get DefaultType(){return oq}static get NAME(){return KH}show(){if($e.trigger(this._element,nq).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(sq);const r=()=>{this._element.classList.remove(wu),$e.trigger(this._element,iq),this._maybeScheduleHide()};this._element.classList.remove(y0),$l(this._element),this._element.classList.add(yu,wu),this._queueCallback(r,this._element,this._config.animation)}hide(){if(!this.isShown()||$e.trigger(this._element,tq).defaultPrevented)return;const r=()=>{this._element.classList.add(y0),this._element.classList.remove(wu,yu),$e.trigger(this._element,rq)};this._element.classList.add(wu),this._queueCallback(r,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(yu),super.dispose()}isShown(){return this._element.classList.contains(yu)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,r){switch(e.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=r;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=r;break}}if(r){this._clearTimeout();return}const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){$e.on(this._element,QH,e=>this._onInteraction(e,!0)),$e.on(this._element,JH,e=>this._onInteraction(e,!1)),$e.on(this._element,ZH,e=>this._onInteraction(e,!0)),$e.on(this._element,eq,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const r=bf.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}hf(bf);hn(bf);function lq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;r({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});let i;const a=ir();e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=a.createElement("div");function l(g,b){const v=e.params.virtual;if(v.cache&&e.virtual.cache[b])return e.virtual.cache[b];let w;return v.renderSlide?(w=v.renderSlide.call(e,g,b),typeof w=="string"&&(o.innerHTML=w,w=o.children[0])):e.isElement?w=Gr("swiper-slide"):w=Gr("div",e.params.slideClass),w.setAttribute("data-swiper-slide-index",b),v.renderSlide||(w.innerHTML=g),v.cache&&(e.virtual.cache[b]=w),w}function u(g,b){const{slidesPerView:v,slidesPerGroup:w,centeredSlides:_,loop:y,initialSlide:x}=e.params;if(b&&!y&&x>0)return;const{addSlidesBefore:T,addSlidesAfter:A}=e.params.virtual,{from:C,to:L,slides:j,slidesGrid:R,offset:U}=e.virtual;e.params.cssMode||e.updateActiveIndex();const I=e.activeIndex||0;let M;e.rtlTranslate?M="right":M=e.isHorizontal()?"left":"top";let $,Z;_?($=Math.floor(v/2)+w+A,Z=Math.floor(v/2)+w+T):($=v+(w-1)+A,Z=(y?v:w)+T);let ne=I-Z,re=I+$;y||(ne=Math.max(ne,0),re=Math.min(re,j.length-1));let N=(e.slidesGrid[ne]||0)-(e.slidesGrid[0]||0);y&&I>=Z?(ne-=Z,_||(N+=e.slidesGrid[0])):y&&I{ee.style[M]=`${N-Math.abs(e.cssOverflowAdjustment())}px`}),e.updateProgress(),s("virtualUpdate");return}if(e.params.virtual.renderExternal){e.params.virtual.renderExternal.call(e,{offset:N,from:ne,to:re,slides:function(){const K=[];for(let W=ne;W<=re;W+=1)K.push(j[W]);return K}()}),e.params.virtual.renderExternalUpdate?fe():s("virtualUpdate");return}const G=[],pe=[],F=ee=>{let K=ee;return ee<0?K=j.length+ee:K>=j.length&&(K=K-j.length),K};if(g)e.slides.filter(ee=>ee.matches(`.${e.params.slideClass}, swiper-slide`)).forEach(ee=>{ee.remove()});else for(let ee=C;ee<=L;ee+=1)if(eere){const K=F(ee);e.slides.filter(W=>W.matches(`.${e.params.slideClass}[data-swiper-slide-index="${K}"], swiper-slide[data-swiper-slide-index="${K}"]`)).forEach(W=>{W.remove()})}const de=y?-j.length:0,Se=y?j.length*2:j.length;for(let ee=de;ee=ne&&ee<=re){const K=F(ee);typeof L>"u"||g?pe.push(K):(ee>L&&pe.push(K),ee{e.slidesEl.append(l(j[ee],ee))}),y)for(let ee=G.length-1;ee>=0;ee-=1){const K=G[ee];e.slidesEl.prepend(l(j[K],K))}else G.sort((ee,K)=>K-ee),G.forEach(ee=>{e.slidesEl.prepend(l(j[ee],ee))});ur(e.slidesEl,".swiper-slide, swiper-slide").forEach(ee=>{ee.style[M]=`${N-Math.abs(e.cssOverflowAdjustment())}px`}),fe()}function c(g){if(typeof g=="object"&&"length"in g)for(let b=0;b{const T=_[x],A=T.getAttribute("data-swiper-slide-index");A&&T.setAttribute("data-swiper-slide-index",parseInt(A,10)+w),y[parseInt(x,10)+w]=T}),e.virtual.cache=y}u(!0),e.slideTo(v,0)}function d(g){if(typeof g>"u"||g===null)return;let b=e.activeIndex;if(Array.isArray(g))for(let v=g.length-1;v>=0;v-=1)e.params.virtual.cache&&(delete e.virtual.cache[g[v]],Object.keys(e.virtual.cache).forEach(w=>{w>g&&(e.virtual.cache[w-1]=e.virtual.cache[w],e.virtual.cache[w-1].setAttribute("data-swiper-slide-index",w-1),delete e.virtual.cache[w])})),e.virtual.slides.splice(g[v],1),g[v]{v>g&&(e.virtual.cache[v-1]=e.virtual.cache[v],e.virtual.cache[v-1].setAttribute("data-swiper-slide-index",v-1),delete e.virtual.cache[v])})),e.virtual.slides.splice(g,1),g{if(!e.params.virtual.enabled)return;let g;if(typeof e.passedParams.virtual.slides>"u"){const b=[...e.slidesEl.children].filter(v=>v.matches(`.${e.params.slideClass}, swiper-slide`));b.length&&(e.virtual.slides=[...b],g=!0,b.forEach((v,w)=>{v.setAttribute("data-swiper-slide-index",w),e.virtual.cache[w]=v,v.remove()}))}g||(e.virtual.slides=e.params.virtual.slides),e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,u(!1,!0)}),n("setTranslate",()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(i),i=setTimeout(()=>{u()},100)):u())}),n("init update resize",()=>{e.params.virtual.enabled&&e.params.cssMode&&qa(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)}),Object.assign(e.virtual,{appendSlide:c,prependSlide:f,removeSlide:d,removeAllSlides:p,update:u})}function uq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=ir(),a=Nt();e.keyboard={enabled:!1},r({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}});function o(c){if(!e.enabled)return;const{rtlTranslate:f}=e;let d=c;d.originalEvent&&(d=d.originalEvent);const p=d.keyCode||d.charCode,g=e.params.keyboard.pageUpDown,b=g&&p===33,v=g&&p===34,w=p===37,_=p===39,y=p===38,x=p===40;if(!e.allowSlideNext&&(e.isHorizontal()&&_||e.isVertical()&&x||v)||!e.allowSlidePrev&&(e.isHorizontal()&&w||e.isVertical()&&y||b))return!1;if(!(d.shiftKey||d.altKey||d.ctrlKey||d.metaKey)&&!(i.activeElement&&i.activeElement.nodeName&&(i.activeElement.nodeName.toLowerCase()==="input"||i.activeElement.nodeName.toLowerCase()==="textarea"))){if(e.params.keyboard.onlyInViewport&&(b||v||w||_||y||x)){let T=!1;if(Ws(e.el,`.${e.params.slideClass}, swiper-slide`).length>0&&Ws(e.el,`.${e.params.slideActiveClass}`).length===0)return;const A=e.el,C=A.clientWidth,L=A.clientHeight,j=a.innerWidth,R=a.innerHeight,U=Ac(A);f&&(U.left-=A.scrollLeft);const I=[[U.left,U.top],[U.left+C,U.top],[U.left,U.top+L],[U.left+C,U.top+L]];for(let M=0;M=0&&$[0]<=j&&$[1]>=0&&$[1]<=R){if($[0]===0&&$[1]===0)continue;T=!0}}if(!T)return}e.isHorizontal()?((b||v||w||_)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),((v||_)&&!f||(b||w)&&f)&&e.slideNext(),((b||w)&&!f||(v||_)&&f)&&e.slidePrev()):((b||v||y||x)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),(v||x)&&e.slideNext(),(b||y)&&e.slidePrev()),s("keyPress",p)}}function l(){e.keyboard.enabled||(i.addEventListener("keydown",o),e.keyboard.enabled=!0)}function u(){e.keyboard.enabled&&(i.removeEventListener("keydown",o),e.keyboard.enabled=!1)}n("init",()=>{e.params.keyboard.enabled&&l()}),n("destroy",()=>{e.keyboard.enabled&&u()}),Object.assign(e.keyboard,{enable:l,disable:u})}function cq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=Nt();r({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),e.mousewheel={enabled:!1};let a,o=nn(),l;const u=[];function c(y){let C=0,L=0,j=0,R=0;return"detail"in y&&(L=y.detail),"wheelDelta"in y&&(L=-y.wheelDelta/120),"wheelDeltaY"in y&&(L=-y.wheelDeltaY/120),"wheelDeltaX"in y&&(C=-y.wheelDeltaX/120),"axis"in y&&y.axis===y.HORIZONTAL_AXIS&&(C=L,L=0),j=C*10,R=L*10,"deltaY"in y&&(R=y.deltaY),"deltaX"in y&&(j=y.deltaX),y.shiftKey&&!j&&(j=R,R=0),(j||R)&&y.deltaMode&&(y.deltaMode===1?(j*=40,R*=40):(j*=800,R*=800)),j&&!C&&(C=j<1?-1:1),R&&!L&&(L=R<1?-1:1),{spinX:C,spinY:L,pixelX:j,pixelY:R}}function f(){e.enabled&&(e.mouseEntered=!0)}function d(){e.enabled&&(e.mouseEntered=!1)}function p(y){return e.params.mousewheel.thresholdDelta&&y.delta=6&&nn()-o<60?!0:(y.direction<0?(!e.isEnd||e.params.loop)&&!e.animating&&(e.slideNext(),s("scroll",y.raw)):(!e.isBeginning||e.params.loop)&&!e.animating&&(e.slidePrev(),s("scroll",y.raw)),o=new i.Date().getTime(),!1)}function g(y){const x=e.params.mousewheel;if(y.direction<0){if(e.isEnd&&!e.params.loop&&x.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&x.releaseOnEdges)return!0;return!1}function b(y){let x=y,T=!0;if(!e.enabled||y.target.closest(`.${e.params.mousewheel.noMousewheelClass}`))return;const A=e.params.mousewheel;e.params.cssMode&&x.preventDefault();let C=e.el;e.params.mousewheel.eventsTarget!=="container"&&(C=document.querySelector(e.params.mousewheel.eventsTarget));const L=C&&C.contains(x.target);if(!e.mouseEntered&&!L&&!A.releaseOnEdges)return!0;x.originalEvent&&(x=x.originalEvent);let j=0;const R=e.rtlTranslate?-1:1,U=c(x);if(A.forceToAxis)if(e.isHorizontal())if(Math.abs(U.pixelX)>Math.abs(U.pixelY))j=-U.pixelX*R;else return!0;else if(Math.abs(U.pixelY)>Math.abs(U.pixelX))j=-U.pixelY;else return!0;else j=Math.abs(U.pixelX)>Math.abs(U.pixelY)?-U.pixelX*R:-U.pixelY;if(j===0)return!0;A.invert&&(j=-j);let I=e.getTranslate()+j*A.sensitivity;if(I>=e.minTranslate()&&(I=e.minTranslate()),I<=e.maxTranslate()&&(I=e.maxTranslate()),T=e.params.loop?!0:!(I===e.minTranslate()||I===e.maxTranslate()),T&&e.params.nested&&x.stopPropagation(),!e.params.freeMode||!e.params.freeMode.enabled){const M={time:nn(),delta:Math.abs(j),direction:Math.sign(j),raw:y};u.length>=2&&u.shift();const $=u.length?u[u.length-1]:void 0;if(u.push(M),$?(M.direction!==$.direction||M.delta>$.delta||M.time>$.time+150)&&p(M):p(M),g(M))return!0}else{const M={time:nn(),delta:Math.abs(j),direction:Math.sign(j)},$=l&&M.time=e.minTranslate()&&(Z=e.minTranslate()),Z<=e.maxTranslate()&&(Z=e.maxTranslate()),e.setTransition(0),e.setTranslate(Z),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!ne&&e.isBeginning||!re&&e.isEnd)&&e.updateSlidesClasses(),e.params.loop&&e.loopFix({direction:M.direction<0?"next":"prev",byMousewheel:!0}),e.params.freeMode.sticky){clearTimeout(a),a=void 0,u.length>=15&&u.shift();const N=u.length?u[u.length-1]:void 0,fe=u[0];if(u.push(M),N&&(M.delta>N.delta||M.direction!==N.direction))u.splice(0);else if(u.length>=15&&M.time-fe.time<500&&fe.delta-M.delta>=1&&M.delta<=6){const G=j>0?.8:.2;l=M,u.splice(0),a=Qs(()=>{e.destroyed||!e.params||e.slideToClosest(e.params.speed,!0,void 0,G)},0)}a||(a=Qs(()=>{if(e.destroyed||!e.params)return;const G=.5;l=M,u.splice(0),e.slideToClosest(e.params.speed,!0,void 0,G)},500))}if($||s("scroll",x),e.params.autoplay&&e.params.autoplay.disableOnInteraction&&e.autoplay.stop(),A.releaseOnEdges&&(Z===e.minTranslate()||Z===e.maxTranslate()))return!0}}return x.preventDefault?x.preventDefault():x.returnValue=!1,!1}function v(y){let x=e.el;e.params.mousewheel.eventsTarget!=="container"&&(x=document.querySelector(e.params.mousewheel.eventsTarget)),x[y]("mouseenter",f),x[y]("mouseleave",d),x[y]("wheel",b)}function w(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",b),!0):e.mousewheel.enabled?!1:(v("addEventListener"),e.mousewheel.enabled=!0,!0)}function _(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,b),!0):e.mousewheel.enabled?(v("removeEventListener"),e.mousewheel.enabled=!1,!0):!1}n("init",()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&_(),e.params.mousewheel.enabled&&w()}),n("destroy",()=>{e.params.cssMode&&w(),e.mousewheel.enabled&&_()}),Object.assign(e.mousewheel,{enable:w,disable:_})}function lb(t,e,r,n){return t.params.createElements&&Object.keys(n).forEach(s=>{if(!r[s]&&r.auto===!0){let i=ur(t.el,`.${n[s]}`)[0];i||(i=Gr("div",n[s]),i.className=n[s],t.el.append(i)),r[s]=i,e[s]=i}}),r}function fq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;r({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),e.navigation={nextEl:null,prevEl:null};function i(g){let b;return g&&typeof g=="string"&&e.isElement&&(b=e.el.querySelector(g)||e.hostEl.querySelector(g),b)?b:(g&&(typeof g=="string"&&(b=[...document.querySelectorAll(g)]),e.params.uniqueNavElements&&typeof g=="string"&&b&&b.length>1&&e.el.querySelectorAll(g).length===1?b=e.el.querySelector(g):b&&b.length===1&&(b=b[0])),g&&!b?g:b)}function a(g,b){const v=e.params.navigation;g=lt(g),g.forEach(w=>{w&&(w.classList[b?"add":"remove"](...v.disabledClass.split(" ")),w.tagName==="BUTTON"&&(w.disabled=b),e.params.watchOverflow&&e.enabled&&w.classList[e.isLocked?"add":"remove"](v.lockClass))})}function o(){const{nextEl:g,prevEl:b}=e.navigation;if(e.params.loop){a(b,!1),a(g,!1);return}a(b,e.isBeginning&&!e.params.rewind),a(g,e.isEnd&&!e.params.rewind)}function l(g){g.preventDefault(),!(e.isBeginning&&!e.params.loop&&!e.params.rewind)&&(e.slidePrev(),s("navigationPrev"))}function u(g){g.preventDefault(),!(e.isEnd&&!e.params.loop&&!e.params.rewind)&&(e.slideNext(),s("navigationNext"))}function c(){const g=e.params.navigation;if(e.params.navigation=lb(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!(g.nextEl||g.prevEl))return;let b=i(g.nextEl),v=i(g.prevEl);Object.assign(e.navigation,{nextEl:b,prevEl:v}),b=lt(b),v=lt(v);const w=(_,y)=>{_&&_.addEventListener("click",y==="next"?u:l),!e.enabled&&_&&_.classList.add(...g.lockClass.split(" "))};b.forEach(_=>w(_,"next")),v.forEach(_=>w(_,"prev"))}function f(){let{nextEl:g,prevEl:b}=e.navigation;g=lt(g),b=lt(b);const v=(w,_)=>{w.removeEventListener("click",_==="next"?u:l),w.classList.remove(...e.params.navigation.disabledClass.split(" "))};g.forEach(w=>v(w,"next")),b.forEach(w=>v(w,"prev"))}n("init",()=>{e.params.navigation.enabled===!1?p():(c(),o())}),n("toEdge fromEdge lock unlock",()=>{o()}),n("destroy",()=>{f()}),n("enable disable",()=>{let{nextEl:g,prevEl:b}=e.navigation;if(g=lt(g),b=lt(b),e.enabled){o();return}[...g,...b].filter(v=>!!v).forEach(v=>v.classList.add(e.params.navigation.lockClass))}),n("click",(g,b)=>{let{nextEl:v,prevEl:w}=e.navigation;v=lt(v),w=lt(w);const _=b.target;let y=w.includes(_)||v.includes(_);if(e.isElement&&!y){const x=b.path||b.composedPath&&b.composedPath();x&&(y=x.find(T=>v.includes(T)||w.includes(T)))}if(e.params.navigation.hideOnClick&&!y){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===_||e.pagination.el.contains(_)))return;let x;v.length?x=v[0].classList.contains(e.params.navigation.hiddenClass):w.length&&(x=w[0].classList.contains(e.params.navigation.hiddenClass)),s(x===!0?"navigationShow":"navigationHide"),[...v,...w].filter(T=>!!T).forEach(T=>T.classList.toggle(e.params.navigation.hiddenClass))}});const d=()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")),c(),o()},p=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")),f()};Object.assign(e.navigation,{enable:d,disable:p,update:o,init:c,destroy:f})}function fi(t){return t===void 0&&(t=""),`.${t.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function dq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i="swiper-pagination";r({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:_=>_,formatFractionTotal:_=>_,bulletClass:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`,paginationDisabledClass:`${i}-disabled`}}),e.pagination={el:null,bullets:[]};let a,o=0;function l(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function u(_,y){const{bulletActiveClass:x}=e.params.pagination;_&&(_=_[`${y==="prev"?"previous":"next"}ElementSibling`],_&&(_.classList.add(`${x}-${y}`),_=_[`${y==="prev"?"previous":"next"}ElementSibling`],_&&_.classList.add(`${x}-${y}-${y}`)))}function c(_,y,x){if(_=_%x,y=y%x,y===_+1)return"next";if(y===_-1)return"previous"}function f(_){const y=_.target.closest(fi(e.params.pagination.bulletClass));if(!y)return;_.preventDefault();const x=wl(y)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===x)return;const T=c(e.realIndex,x,e.slides.length);T==="next"?e.slideNext():T==="previous"?e.slidePrev():e.slideToLoop(x)}else e.slideTo(x)}function d(){const _=e.rtl,y=e.params.pagination;if(l())return;let x=e.pagination.el;x=lt(x);let T,A;const C=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,L=e.params.loop?Math.ceil(C/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(A=e.previousRealIndex||0,T=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex<"u"?(T=e.snapIndex,A=e.previousSnapIndex):(A=e.previousIndex||0,T=e.activeIndex||0),y.type==="bullets"&&e.pagination.bullets&&e.pagination.bullets.length>0){const j=e.pagination.bullets;let R,U,I;if(y.dynamicBullets&&(a=yg(j[0],e.isHorizontal()?"width":"height"),x.forEach(M=>{M.style[e.isHorizontal()?"width":"height"]=`${a*(y.dynamicMainBullets+4)}px`}),y.dynamicMainBullets>1&&A!==void 0&&(o+=T-(A||0),o>y.dynamicMainBullets-1?o=y.dynamicMainBullets-1:o<0&&(o=0)),R=Math.max(T-o,0),U=R+(Math.min(j.length,y.dynamicMainBullets)-1),I=(U+R)/2),j.forEach(M=>{const $=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(Z=>`${y.bulletActiveClass}${Z}`)].map(Z=>typeof Z=="string"&&Z.includes(" ")?Z.split(" "):Z).flat();M.classList.remove(...$)}),x.length>1)j.forEach(M=>{const $=wl(M);$===T?M.classList.add(...y.bulletActiveClass.split(" ")):e.isElement&&M.setAttribute("part","bullet"),y.dynamicBullets&&($>=R&&$<=U&&M.classList.add(...`${y.bulletActiveClass}-main`.split(" ")),$===R&&u(M,"prev"),$===U&&u(M,"next"))});else{const M=j[T];if(M&&M.classList.add(...y.bulletActiveClass.split(" ")),e.isElement&&j.forEach(($,Z)=>{$.setAttribute("part",Z===T?"bullet-active":"bullet")}),y.dynamicBullets){const $=j[R],Z=j[U];for(let ne=R;ne<=U;ne+=1)j[ne]&&j[ne].classList.add(...`${y.bulletActiveClass}-main`.split(" "));u($,"prev"),u(Z,"next")}}if(y.dynamicBullets){const M=Math.min(j.length,y.dynamicMainBullets+4),$=(a*M-a)/2-I*a,Z=_?"right":"left";j.forEach(ne=>{ne.style[e.isHorizontal()?Z:"top"]=`${$}px`})}}x.forEach((j,R)=>{if(y.type==="fraction"&&(j.querySelectorAll(fi(y.currentClass)).forEach(U=>{U.textContent=y.formatFractionCurrent(T+1)}),j.querySelectorAll(fi(y.totalClass)).forEach(U=>{U.textContent=y.formatFractionTotal(L)})),y.type==="progressbar"){let U;y.progressbarOpposite?U=e.isHorizontal()?"vertical":"horizontal":U=e.isHorizontal()?"horizontal":"vertical";const I=(T+1)/L;let M=1,$=1;U==="horizontal"?M=I:$=I,j.querySelectorAll(fi(y.progressbarFillClass)).forEach(Z=>{Z.style.transform=`translate3d(0,0,0) scaleX(${M}) scaleY(${$})`,Z.style.transitionDuration=`${e.params.speed}ms`})}y.type==="custom"&&y.renderCustom?(j.innerHTML=y.renderCustom(e,T+1,L),R===0&&s("paginationRender",j)):(R===0&&s("paginationRender",j),s("paginationUpdate",j)),e.params.watchOverflow&&e.enabled&&j.classList[e.isLocked?"add":"remove"](y.lockClass)})}function p(){const _=e.params.pagination;if(l())return;const y=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length/Math.ceil(e.params.grid.rows):e.slides.length;let x=e.pagination.el;x=lt(x);let T="";if(_.type==="bullets"){let A=e.params.loop?Math.ceil(y/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&A>y&&(A=y);for(let C=0;C`}_.type==="fraction"&&(_.renderFraction?T=_.renderFraction.call(e,_.currentClass,_.totalClass):T=` / `),_.type==="progressbar"&&(_.renderProgressbar?T=_.renderProgressbar.call(e,_.progressbarFillClass):T=``),e.pagination.bullets=[],x.forEach(A=>{_.type!=="custom"&&(A.innerHTML=T||""),_.type==="bullets"&&e.pagination.bullets.push(...A.querySelectorAll(fi(_.bulletClass)))}),_.type!=="custom"&&s("paginationRender",x[0])}function g(){e.params.pagination=lb(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const _=e.params.pagination;if(!_.el)return;let y;typeof _.el=="string"&&e.isElement&&(y=e.el.querySelector(_.el)),!y&&typeof _.el=="string"&&(y=[...document.querySelectorAll(_.el)]),y||(y=_.el),!(!y||y.length===0)&&(e.params.uniqueNavElements&&typeof _.el=="string"&&Array.isArray(y)&&y.length>1&&(y=[...e.el.querySelectorAll(_.el)],y.length>1&&(y=y.find(x=>Ws(x,".swiper")[0]===e.el))),Array.isArray(y)&&y.length===1&&(y=y[0]),Object.assign(e.pagination,{el:y}),y=lt(y),y.forEach(x=>{_.type==="bullets"&&_.clickable&&x.classList.add(...(_.clickableClass||"").split(" ")),x.classList.add(_.modifierClass+_.type),x.classList.add(e.isHorizontal()?_.horizontalClass:_.verticalClass),_.type==="bullets"&&_.dynamicBullets&&(x.classList.add(`${_.modifierClass}${_.type}-dynamic`),o=0,_.dynamicMainBullets<1&&(_.dynamicMainBullets=1)),_.type==="progressbar"&&_.progressbarOpposite&&x.classList.add(_.progressbarOppositeClass),_.clickable&&x.addEventListener("click",f),e.enabled||x.classList.add(_.lockClass)}))}function b(){const _=e.params.pagination;if(l())return;let y=e.pagination.el;y&&(y=lt(y),y.forEach(x=>{x.classList.remove(_.hiddenClass),x.classList.remove(_.modifierClass+_.type),x.classList.remove(e.isHorizontal()?_.horizontalClass:_.verticalClass),_.clickable&&(x.classList.remove(...(_.clickableClass||"").split(" ")),x.removeEventListener("click",f))})),e.pagination.bullets&&e.pagination.bullets.forEach(x=>x.classList.remove(..._.bulletActiveClass.split(" ")))}n("changeDirection",()=>{if(!e.pagination||!e.pagination.el)return;const _=e.params.pagination;let{el:y}=e.pagination;y=lt(y),y.forEach(x=>{x.classList.remove(_.horizontalClass,_.verticalClass),x.classList.add(e.isHorizontal()?_.horizontalClass:_.verticalClass)})}),n("init",()=>{e.params.pagination.enabled===!1?w():(g(),p(),d())}),n("activeIndexChange",()=>{typeof e.snapIndex>"u"&&d()}),n("snapIndexChange",()=>{d()}),n("snapGridLengthChange",()=>{p(),d()}),n("destroy",()=>{b()}),n("enable disable",()=>{let{el:_}=e.pagination;_&&(_=lt(_),_.forEach(y=>y.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass)))}),n("lock unlock",()=>{d()}),n("click",(_,y)=>{const x=y.target,T=lt(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&T&&T.length>0&&!x.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&x===e.navigation.nextEl||e.navigation.prevEl&&x===e.navigation.prevEl))return;const A=T[0].classList.contains(e.params.pagination.hiddenClass);s(A===!0?"paginationShow":"paginationHide"),T.forEach(C=>C.classList.toggle(e.params.pagination.hiddenClass))}});const v=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:_}=e.pagination;_&&(_=lt(_),_.forEach(y=>y.classList.remove(e.params.pagination.paginationDisabledClass))),g(),p(),d()},w=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:_}=e.pagination;_&&(_=lt(_),_.forEach(y=>y.classList.add(e.params.pagination.paginationDisabledClass))),b()};Object.assign(e.pagination,{enable:v,disable:w,render:p,update:d,init:g,destroy:b})}function hq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=ir();let a=!1,o=null,l=null,u,c,f,d;r({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),e.scrollbar={el:null,dragEl:null};function p(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:I,rtlTranslate:M}=e,{dragEl:$,el:Z}=I,ne=e.params.scrollbar,re=e.params.loop?e.progressLoop:e.progress;let N=c,fe=(f-c)*re;M?(fe=-fe,fe>0?(N=c-fe,fe=0):-fe+c>f&&(N=f+fe)):fe<0?(N=c+fe,fe=0):fe+c>f&&(N=f-fe),e.isHorizontal()?($.style.transform=`translate3d(${fe}px, 0, 0)`,$.style.width=`${N}px`):($.style.transform=`translate3d(0px, ${fe}px, 0)`,$.style.height=`${N}px`),ne.hide&&(clearTimeout(o),Z.style.opacity=1,o=setTimeout(()=>{Z.style.opacity=0,Z.style.transitionDuration="400ms"},1e3))}function g(I){!e.params.scrollbar.el||!e.scrollbar.el||(e.scrollbar.dragEl.style.transitionDuration=`${I}ms`)}function b(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:I}=e,{dragEl:M,el:$}=I;M.style.width="",M.style.height="",f=e.isHorizontal()?$.offsetWidth:$.offsetHeight,d=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),e.params.scrollbar.dragSize==="auto"?c=f*d:c=parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?M.style.width=`${c}px`:M.style.height=`${c}px`,d>=1?$.style.display="none":$.style.display="",e.params.scrollbar.hide&&($.style.opacity=0),e.params.watchOverflow&&e.enabled&&I.el.classList[e.isLocked?"add":"remove"](e.params.scrollbar.lockClass)}function v(I){return e.isHorizontal()?I.clientX:I.clientY}function w(I){const{scrollbar:M,rtlTranslate:$}=e,{el:Z}=M;let ne;ne=(v(I)-Ac(Z)[e.isHorizontal()?"left":"top"]-(u!==null?u:c/2))/(f-c),ne=Math.max(Math.min(ne,1),0),$&&(ne=1-ne);const re=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*ne;e.updateProgress(re),e.setTranslate(re),e.updateActiveIndex(),e.updateSlidesClasses()}function _(I){const M=e.params.scrollbar,{scrollbar:$,wrapperEl:Z}=e,{el:ne,dragEl:re}=$;a=!0,u=I.target===re?v(I)-I.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,I.preventDefault(),I.stopPropagation(),Z.style.transitionDuration="100ms",re.style.transitionDuration="100ms",w(I),clearTimeout(l),ne.style.transitionDuration="0ms",M.hide&&(ne.style.opacity=1),e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="none"),s("scrollbarDragStart",I)}function y(I){const{scrollbar:M,wrapperEl:$}=e,{el:Z,dragEl:ne}=M;a&&(I.preventDefault&&I.cancelable?I.preventDefault():I.returnValue=!1,w(I),$.style.transitionDuration="0ms",Z.style.transitionDuration="0ms",ne.style.transitionDuration="0ms",s("scrollbarDragMove",I))}function x(I){const M=e.params.scrollbar,{scrollbar:$,wrapperEl:Z}=e,{el:ne}=$;a&&(a=!1,e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="",Z.style.transitionDuration=""),M.hide&&(clearTimeout(l),l=Qs(()=>{ne.style.opacity=0,ne.style.transitionDuration="400ms"},1e3)),s("scrollbarDragEnd",I),M.snapOnRelease&&e.slideToClosest())}function T(I){const{scrollbar:M,params:$}=e,Z=M.el;if(!Z)return;const ne=Z,re=$.passiveListeners?{passive:!1,capture:!1}:!1,N=$.passiveListeners?{passive:!0,capture:!1}:!1;if(!ne)return;const fe=I==="on"?"addEventListener":"removeEventListener";ne[fe]("pointerdown",_,re),i[fe]("pointermove",y,re),i[fe]("pointerup",x,N)}function A(){!e.params.scrollbar.el||!e.scrollbar.el||T("on")}function C(){!e.params.scrollbar.el||!e.scrollbar.el||T("off")}function L(){const{scrollbar:I,el:M}=e;e.params.scrollbar=lb(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const $=e.params.scrollbar;if(!$.el)return;let Z;if(typeof $.el=="string"&&e.isElement&&(Z=e.el.querySelector($.el)),!Z&&typeof $.el=="string"){if(Z=i.querySelectorAll($.el),!Z.length)return}else Z||(Z=$.el);e.params.uniqueNavElements&&typeof $.el=="string"&&Z.length>1&&M.querySelectorAll($.el).length===1&&(Z=M.querySelector($.el)),Z.length>0&&(Z=Z[0]),Z.classList.add(e.isHorizontal()?$.horizontalClass:$.verticalClass);let ne;Z&&(ne=Z.querySelector(fi(e.params.scrollbar.dragClass)),ne||(ne=Gr("div",e.params.scrollbar.dragClass),Z.append(ne))),Object.assign(I,{el:Z,dragEl:ne}),$.draggable&&A(),Z&&Z.classList[e.enabled?"remove":"add"](...zi(e.params.scrollbar.lockClass))}function j(){const I=e.params.scrollbar,M=e.scrollbar.el;M&&M.classList.remove(...zi(e.isHorizontal()?I.horizontalClass:I.verticalClass)),C()}n("changeDirection",()=>{if(!e.scrollbar||!e.scrollbar.el)return;const I=e.params.scrollbar;let{el:M}=e.scrollbar;M=lt(M),M.forEach($=>{$.classList.remove(I.horizontalClass,I.verticalClass),$.classList.add(e.isHorizontal()?I.horizontalClass:I.verticalClass)})}),n("init",()=>{e.params.scrollbar.enabled===!1?U():(L(),b(),p())}),n("update resize observerUpdate lock unlock changeDirection",()=>{b()}),n("setTranslate",()=>{p()}),n("setTransition",(I,M)=>{g(M)}),n("enable disable",()=>{const{el:I}=e.scrollbar;I&&I.classList[e.enabled?"remove":"add"](...zi(e.params.scrollbar.lockClass))}),n("destroy",()=>{j()});const R=()=>{e.el.classList.remove(...zi(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.remove(...zi(e.params.scrollbar.scrollbarDisabledClass)),L(),b(),p()},U=()=>{e.el.classList.add(...zi(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.add(...zi(e.params.scrollbar.scrollbarDisabledClass)),j()};Object.assign(e.scrollbar,{enable:R,disable:U,updateSize:b,setTranslate:p,init:L,destroy:j})}function pq(t){let{swiper:e,extendParams:r,on:n}=t;r({parallax:{enabled:!1}});const s="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",i=(l,u)=>{const{rtl:c}=e,f=c?-1:1,d=l.getAttribute("data-swiper-parallax")||"0";let p=l.getAttribute("data-swiper-parallax-x"),g=l.getAttribute("data-swiper-parallax-y");const b=l.getAttribute("data-swiper-parallax-scale"),v=l.getAttribute("data-swiper-parallax-opacity"),w=l.getAttribute("data-swiper-parallax-rotate");if(p||g?(p=p||"0",g=g||"0"):e.isHorizontal()?(p=d,g="0"):(g=d,p="0"),p.indexOf("%")>=0?p=`${parseInt(p,10)*u*f}%`:p=`${p*u*f}px`,g.indexOf("%")>=0?g=`${parseInt(g,10)*u}%`:g=`${g*u}px`,typeof v<"u"&&v!==null){const y=v-(v-1)*(1-Math.abs(u));l.style.opacity=y}let _=`translate3d(${p}, ${g}, 0px)`;if(typeof b<"u"&&b!==null){const y=b-(b-1)*(1-Math.abs(u));_+=` scale(${y})`}if(w&&typeof w<"u"&&w!==null){const y=w*u*-1;_+=` rotate(${y}deg)`}l.style.transform=_},a=()=>{const{el:l,slides:u,progress:c,snapGrid:f,isElement:d}=e,p=ur(l,s);e.isElement&&p.push(...ur(e.hostEl,s)),p.forEach(g=>{i(g,c)}),u.forEach((g,b)=>{let v=g.progress;e.params.slidesPerGroup>1&&e.params.slidesPerView!=="auto"&&(v+=Math.ceil(b/2)-c*(f.length-1)),v=Math.min(Math.max(v,-1),1),g.querySelectorAll(`${s}, [data-swiper-parallax-rotate]`).forEach(w=>{i(w,v)})})},o=function(l){l===void 0&&(l=e.params.speed);const{el:u,hostEl:c}=e,f=[...u.querySelectorAll(s)];e.isElement&&f.push(...c.querySelectorAll(s)),f.forEach(d=>{let p=parseInt(d.getAttribute("data-swiper-parallax-duration"),10)||l;l===0&&(p=0),d.style.transitionDuration=`${p}ms`})};n("beforeInit",()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),n("init",()=>{e.params.parallax.enabled&&a()}),n("setTranslate",()=>{e.params.parallax.enabled&&a()}),n("setTransition",(l,u)=>{e.params.parallax.enabled&&o(u)})}function gq(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=Nt();r({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,panOnMouseMove:!1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let a=1,o=!1,l=!1,u={x:0,y:0};const c=-3;let f,d;const p=[],g={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},b={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},v={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;Object.defineProperty(e.zoom,"scale",{get(){return w},set(ee){if(w!==ee){const K=g.imageEl,W=g.slideEl;s("zoomChange",ee,K,W)}w=ee}});function _(){if(p.length<2)return 1;const ee=p[0].pageX,K=p[0].pageY,W=p[1].pageX,D=p[1].pageY;return Math.sqrt((W-ee)**2+(D-K)**2)}function y(){const ee=e.params.zoom,K=g.imageWrapEl.getAttribute("data-swiper-zoom")||ee.maxRatio;if(ee.limitToOriginalSize&&g.imageEl&&g.imageEl.naturalWidth){const W=g.imageEl.naturalWidth/g.imageEl.offsetWidth;return Math.min(W,K)}return K}function x(){if(p.length<2)return{x:null,y:null};const ee=g.imageEl.getBoundingClientRect();return[(p[0].pageX+(p[1].pageX-p[0].pageX)/2-ee.x-i.scrollX)/a,(p[0].pageY+(p[1].pageY-p[0].pageY)/2-ee.y-i.scrollY)/a]}function T(){return e.isElement?"swiper-slide":`.${e.params.slideClass}`}function A(ee){const K=T();return!!(ee.target.matches(K)||e.slides.filter(W=>W.contains(ee.target)).length>0)}function C(ee){const K=`.${e.params.zoom.containerClass}`;return!!(ee.target.matches(K)||[...e.hostEl.querySelectorAll(K)].filter(W=>W.contains(ee.target)).length>0)}function L(ee){if(ee.pointerType==="mouse"&&p.splice(0,p.length),!A(ee))return;const K=e.params.zoom;if(f=!1,d=!1,p.push(ee),!(p.length<2)){if(f=!0,g.scaleStart=_(),!g.slideEl){g.slideEl=ee.target.closest(`.${e.params.slideClass}, swiper-slide`),g.slideEl||(g.slideEl=e.slides[e.activeIndex]);let W=g.slideEl.querySelector(`.${K.containerClass}`);if(W&&(W=W.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),g.imageEl=W,W?g.imageWrapEl=Ws(g.imageEl,`.${K.containerClass}`)[0]:g.imageWrapEl=void 0,!g.imageWrapEl){g.imageEl=void 0;return}g.maxRatio=y()}if(g.imageEl){const[W,D]=x();g.originX=W,g.originY=D,g.imageEl.style.transitionDuration="0ms"}o=!0}}function j(ee){if(!A(ee))return;const K=e.params.zoom,W=e.zoom,D=p.findIndex(X=>X.pointerId===ee.pointerId);D>=0&&(p[D]=ee),!(p.length<2)&&(d=!0,g.scaleMove=_(),g.imageEl&&(W.scale=g.scaleMove/g.scaleStart*a,W.scale>g.maxRatio&&(W.scale=g.maxRatio-1+(W.scale-g.maxRatio+1)**.5),W.scaleX.pointerId===ee.pointerId);D>=0&&p.splice(D,1),!(!f||!d)&&(f=!1,d=!1,g.imageEl&&(W.scale=Math.max(Math.min(W.scale,g.maxRatio),K.minRatio),g.imageEl.style.transitionDuration=`${e.params.speed}ms`,g.imageEl.style.transform=`translate3d(0,0,0) scale(${W.scale})`,a=W.scale,o=!1,W.scale>1&&g.slideEl?g.slideEl.classList.add(`${K.zoomedSlideClass}`):W.scale<=1&&g.slideEl&&g.slideEl.classList.remove(`${K.zoomedSlideClass}`),W.scale===1&&(g.originX=0,g.originY=0,g.slideEl=void 0)))}let U;function I(){e.touchEventsData.preventTouchMoveFromPointerMove=!1}function M(){clearTimeout(U),e.touchEventsData.preventTouchMoveFromPointerMove=!0,U=setTimeout(()=>{e.destroyed||I()})}function $(ee){const K=e.device;if(!g.imageEl||b.isTouched)return;K.android&&ee.cancelable&&ee.preventDefault(),b.isTouched=!0;const W=p.length>0?p[0]:ee;b.touchesStart.x=W.pageX,b.touchesStart.y=W.pageY}function Z(ee){const W=ee.pointerType==="mouse"&&e.params.zoom.panOnMouseMove;if(!A(ee)||!C(ee))return;const D=e.zoom;if(!g.imageEl)return;if(!b.isTouched||!g.slideEl){W&&N(ee);return}if(W){N(ee);return}b.isMoved||(b.width=g.imageEl.offsetWidth||g.imageEl.clientWidth,b.height=g.imageEl.offsetHeight||g.imageEl.clientHeight,b.startX=bg(g.imageWrapEl,"x")||0,b.startY=bg(g.imageWrapEl,"y")||0,g.slideWidth=g.slideEl.offsetWidth,g.slideHeight=g.slideEl.offsetHeight,g.imageWrapEl.style.transitionDuration="0ms");const X=b.width*D.scale,ce=b.height*D.scale;if(b.minX=Math.min(g.slideWidth/2-X/2,0),b.maxX=-b.minX,b.minY=Math.min(g.slideHeight/2-ce/2,0),b.maxY=-b.minY,b.touchesCurrent.x=p.length>0?p[0].pageX:ee.pageX,b.touchesCurrent.y=p.length>0?p[0].pageY:ee.pageY,Math.max(Math.abs(b.touchesCurrent.x-b.touchesStart.x),Math.abs(b.touchesCurrent.y-b.touchesStart.y))>5&&(e.allowClick=!1),!b.isMoved&&!o){if(e.isHorizontal()&&(Math.floor(b.minX)===Math.floor(b.startX)&&b.touchesCurrent.xb.touchesStart.x)){b.isTouched=!1,I();return}if(!e.isHorizontal()&&(Math.floor(b.minY)===Math.floor(b.startY)&&b.touchesCurrent.yb.touchesStart.y)){b.isTouched=!1,I();return}}ee.cancelable&&ee.preventDefault(),ee.stopPropagation(),M(),b.isMoved=!0;const k=(D.scale-a)/(g.maxRatio-e.params.zoom.minRatio),{originX:P,originY:V}=g;b.currentX=b.touchesCurrent.x-b.touchesStart.x+b.startX+k*(b.width-P*2),b.currentY=b.touchesCurrent.y-b.touchesStart.y+b.startY+k*(b.height-V*2),b.currentXb.maxX&&(b.currentX=b.maxX-1+(b.currentX-b.maxX+1)**.8),b.currentYb.maxY&&(b.currentY=b.maxY-1+(b.currentY-b.maxY+1)**.8),v.prevPositionX||(v.prevPositionX=b.touchesCurrent.x),v.prevPositionY||(v.prevPositionY=b.touchesCurrent.y),v.prevTime||(v.prevTime=Date.now()),v.x=(b.touchesCurrent.x-v.prevPositionX)/(Date.now()-v.prevTime)/2,v.y=(b.touchesCurrent.y-v.prevPositionY)/(Date.now()-v.prevTime)/2,Math.abs(b.touchesCurrent.x-v.prevPositionX)<2&&(v.x=0),Math.abs(b.touchesCurrent.y-v.prevPositionY)<2&&(v.y=0),v.prevPositionX=b.touchesCurrent.x,v.prevPositionY=b.touchesCurrent.y,v.prevTime=Date.now(),g.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function ne(){const ee=e.zoom;if(p.length=0,!g.imageEl)return;if(!b.isTouched||!b.isMoved){b.isTouched=!1,b.isMoved=!1;return}b.isTouched=!1,b.isMoved=!1;let K=300,W=300;const D=v.x*K,X=b.currentX+D,ce=v.y*W,le=b.currentY+ce;v.x!==0&&(K=Math.abs((X-b.currentX)/v.x)),v.y!==0&&(W=Math.abs((le-b.currentY)/v.y));const k=Math.max(K,W);b.currentX=X,b.currentY=le;const P=b.width*ee.scale,V=b.height*ee.scale;b.minX=Math.min(g.slideWidth/2-P/2,0),b.maxX=-b.minX,b.minY=Math.min(g.slideHeight/2-V/2,0),b.maxY=-b.minY,b.currentX=Math.max(Math.min(b.currentX,b.maxX),b.minX),b.currentY=Math.max(Math.min(b.currentY,b.maxY),b.minY),g.imageWrapEl.style.transitionDuration=`${k}ms`,g.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function re(){const ee=e.zoom;g.slideEl&&e.activeIndex!==e.slides.indexOf(g.slideEl)&&(g.imageEl&&(g.imageEl.style.transform="translate3d(0,0,0) scale(1)"),g.imageWrapEl&&(g.imageWrapEl.style.transform="translate3d(0,0,0)"),g.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`),ee.scale=1,a=1,g.slideEl=void 0,g.imageEl=void 0,g.imageWrapEl=void 0,g.originX=0,g.originY=0)}function N(ee){if(a<=1||!g.imageWrapEl||!A(ee)||!C(ee))return;const K=i.getComputedStyle(g.imageWrapEl).transform,W=new i.DOMMatrix(K);if(!l){l=!0,u.x=ee.clientX,u.y=ee.clientY,b.startX=W.e,b.startY=W.f,b.width=g.imageEl.offsetWidth||g.imageEl.clientWidth,b.height=g.imageEl.offsetHeight||g.imageEl.clientHeight,g.slideWidth=g.slideEl.offsetWidth,g.slideHeight=g.slideEl.offsetHeight;return}const D=(ee.clientX-u.x)*c,X=(ee.clientY-u.y)*c,ce=b.width*a,le=b.height*a,k=g.slideWidth,P=g.slideHeight,V=Math.min(k/2-ce/2,0),B=-V,H=Math.min(P/2-le/2,0),q=-H,ue=Math.max(Math.min(b.startX+D,B),V),J=Math.max(Math.min(b.startY+X,q),H);g.imageWrapEl.style.transitionDuration="0ms",g.imageWrapEl.style.transform=`translate3d(${ue}px, ${J}px, 0)`,u.x=ee.clientX,u.y=ee.clientY,b.startX=ue,b.startY=J}function fe(ee){const K=e.zoom,W=e.params.zoom;if(!g.slideEl){ee&&ee.target&&(g.slideEl=ee.target.closest(`.${e.params.slideClass}, swiper-slide`)),g.slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?g.slideEl=ur(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:g.slideEl=e.slides[e.activeIndex]);let h=g.slideEl.querySelector(`.${W.containerClass}`);h&&(h=h.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),g.imageEl=h,h?g.imageWrapEl=Ws(g.imageEl,`.${W.containerClass}`)[0]:g.imageWrapEl=void 0}if(!g.imageEl||!g.imageWrapEl)return;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),g.slideEl.classList.add(`${W.zoomedSlideClass}`);let D,X,ce,le,k,P,V,B,H,q,ue,J,Y,ie,Q,oe,me,Te;typeof b.touchesStart.x>"u"&&ee?(D=ee.pageX,X=ee.pageY):(D=b.touchesStart.x,X=b.touchesStart.y);const S=typeof ee=="number"?ee:null;a===1&&S&&(D=void 0,X=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0);const m=y();K.scale=S||m,a=S||m,ee&&!(a===1&&S)?(me=g.slideEl.offsetWidth,Te=g.slideEl.offsetHeight,ce=Ac(g.slideEl).left+i.scrollX,le=Ac(g.slideEl).top+i.scrollY,k=ce+me/2-D,P=le+Te/2-X,H=g.imageEl.offsetWidth||g.imageEl.clientWidth,q=g.imageEl.offsetHeight||g.imageEl.clientHeight,ue=H*K.scale,J=q*K.scale,Y=Math.min(me/2-ue/2,0),ie=Math.min(Te/2-J/2,0),Q=-Y,oe=-ie,V=k*K.scale,B=P*K.scale,VQ&&(V=Q),Boe&&(B=oe)):(V=0,B=0),S&&K.scale===1&&(g.originX=0,g.originY=0),g.imageWrapEl.style.transitionDuration="300ms",g.imageWrapEl.style.transform=`translate3d(${V}px, ${B}px,0)`,g.imageEl.style.transitionDuration="300ms",g.imageEl.style.transform=`translate3d(0,0,0) scale(${K.scale})`}function G(){const ee=e.zoom,K=e.params.zoom;if(!g.slideEl){e.params.virtual&&e.params.virtual.enabled&&e.virtual?g.slideEl=ur(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:g.slideEl=e.slides[e.activeIndex];let W=g.slideEl.querySelector(`.${K.containerClass}`);W&&(W=W.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),g.imageEl=W,W?g.imageWrapEl=Ws(g.imageEl,`.${K.containerClass}`)[0]:g.imageWrapEl=void 0}!g.imageEl||!g.imageWrapEl||(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),ee.scale=1,a=1,b.touchesStart.x=void 0,b.touchesStart.y=void 0,g.imageWrapEl.style.transitionDuration="300ms",g.imageWrapEl.style.transform="translate3d(0,0,0)",g.imageEl.style.transitionDuration="300ms",g.imageEl.style.transform="translate3d(0,0,0) scale(1)",g.slideEl.classList.remove(`${K.zoomedSlideClass}`),g.slideEl=void 0,g.originX=0,g.originY=0,e.params.zoom.panOnMouseMove&&(u={x:0,y:0},l&&(l=!1,b.startX=0,b.startY=0)))}function pe(ee){const K=e.zoom;K.scale&&K.scale!==1?G():fe(ee)}function F(){const ee=e.params.passiveListeners?{passive:!0,capture:!1}:!1,K=e.params.passiveListeners?{passive:!1,capture:!0}:!0;return{passiveListener:ee,activeListenerWithCapture:K}}function de(){const ee=e.zoom;if(ee.enabled)return;ee.enabled=!0;const{passiveListener:K,activeListenerWithCapture:W}=F();e.wrapperEl.addEventListener("pointerdown",L,K),e.wrapperEl.addEventListener("pointermove",j,W),["pointerup","pointercancel","pointerout"].forEach(D=>{e.wrapperEl.addEventListener(D,R,K)}),e.wrapperEl.addEventListener("pointermove",Z,W)}function Se(){const ee=e.zoom;if(!ee.enabled)return;ee.enabled=!1;const{passiveListener:K,activeListenerWithCapture:W}=F();e.wrapperEl.removeEventListener("pointerdown",L,K),e.wrapperEl.removeEventListener("pointermove",j,W),["pointerup","pointercancel","pointerout"].forEach(D=>{e.wrapperEl.removeEventListener(D,R,K)}),e.wrapperEl.removeEventListener("pointermove",Z,W)}n("init",()=>{e.params.zoom.enabled&&de()}),n("destroy",()=>{Se()}),n("touchStart",(ee,K)=>{e.zoom.enabled&&$(K)}),n("touchEnd",(ee,K)=>{e.zoom.enabled&&ne()}),n("doubleTap",(ee,K)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&pe(K)}),n("transitionEnd",()=>{e.zoom.enabled&&e.params.zoom.enabled&&re()}),n("slideChange",()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&re()}),Object.assign(e.zoom,{enable:de,disable:Se,in:fe,out:G,toggle:pe})}function mq(t){let{swiper:e,extendParams:r,on:n}=t;r({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0};function s(u,c){const f=function(){let b,v,w;return(_,y)=>{for(v=-1,b=_.length;b-v>1;)w=b+v>>1,_[w]<=y?v=w:b=w;return b}}();this.x=u,this.y=c,this.lastIndex=u.length-1;let d,p;return this.interpolate=function(b){return b?(p=f(this.x,b),d=p-1,(b-this.x[d])*(this.y[p]-this.y[d])/(this.x[p]-this.x[d])+this.y[d]):0},this}function i(u){e.controller.spline=e.params.loop?new s(e.slidesGrid,u.slidesGrid):new s(e.snapGrid,u.snapGrid)}function a(u,c){const f=e.controller.control;let d,p;const g=e.constructor;function b(v){if(v.destroyed)return;const w=e.rtlTranslate?-e.translate:e.translate;e.params.controller.by==="slide"&&(i(v),p=-e.controller.spline.interpolate(-w)),(!p||e.params.controller.by==="container")&&(d=(v.maxTranslate()-v.minTranslate())/(e.maxTranslate()-e.minTranslate()),(Number.isNaN(d)||!Number.isFinite(d))&&(d=1),p=(w-e.minTranslate())*d+v.minTranslate()),e.params.controller.inverse&&(p=v.maxTranslate()-p),v.updateProgress(p),v.setTranslate(p,e),v.updateActiveIndex(),v.updateSlidesClasses()}if(Array.isArray(f))for(let v=0;v{b.updateAutoHeight()}),nl(b.wrapperEl,()=>{d&&b.transitionEnd()})))}if(Array.isArray(d))for(p=0;p{if(typeof window<"u"&&(typeof e.params.controller.control=="string"||e.params.controller.control instanceof HTMLElement)){(typeof e.params.controller.control=="string"?[...document.querySelectorAll(e.params.controller.control)]:[e.params.controller.control]).forEach(c=>{if(e.controller.control||(e.controller.control=[]),c&&c.swiper)e.controller.control.push(c.swiper);else if(c){const f=`${e.params.eventsPrefix}init`,d=p=>{e.controller.control.push(p.detail[0]),e.update(),c.removeEventListener(f,d)};c.addEventListener(f,d)}});return}e.controller.control=e.params.controller.control}),n("update",()=>{l()}),n("resize",()=>{l()}),n("observerUpdate",()=>{l()}),n("setTranslate",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTranslate(c,f)}),n("setTransition",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTransition(c,f)}),Object.assign(e.controller,{setTranslate:a,setTransition:o})}function bq(t){let{swiper:e,extendParams:r,on:n}=t;r({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,containerRole:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null,scrollOnFocus:!0}}),e.a11y={clicked:!1};let s=null,i,a,o=new Date().getTime();function l(re){const N=s;N.length!==0&&(N.innerHTML="",N.innerHTML=re)}function u(re){const N=()=>Math.round(16*Math.random()).toString(16);return"x".repeat(re).replace(/x/g,N)}function c(re){re=lt(re),re.forEach(N=>{N.setAttribute("tabIndex","0")})}function f(re){re=lt(re),re.forEach(N=>{N.setAttribute("tabIndex","-1")})}function d(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("role",N)})}function p(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("aria-roledescription",N)})}function g(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("aria-controls",N)})}function b(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("aria-label",N)})}function v(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("id",N)})}function w(re,N){re=lt(re),re.forEach(fe=>{fe.setAttribute("aria-live",N)})}function _(re){re=lt(re),re.forEach(N=>{N.setAttribute("aria-disabled",!0)})}function y(re){re=lt(re),re.forEach(N=>{N.setAttribute("aria-disabled",!1)})}function x(re){if(re.keyCode!==13&&re.keyCode!==32)return;const N=e.params.a11y,fe=re.target;if(!(e.pagination&&e.pagination.el&&(fe===e.pagination.el||e.pagination.el.contains(re.target))&&!re.target.matches(fi(e.params.pagination.bulletClass)))){if(e.navigation&&e.navigation.prevEl&&e.navigation.nextEl){const G=lt(e.navigation.prevEl);lt(e.navigation.nextEl).includes(fe)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?l(N.lastSlideMessage):l(N.nextSlideMessage)),G.includes(fe)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?l(N.firstSlideMessage):l(N.prevSlideMessage))}e.pagination&&fe.matches(fi(e.params.pagination.bulletClass))&&fe.click()}}function T(){if(e.params.loop||e.params.rewind||!e.navigation)return;const{nextEl:re,prevEl:N}=e.navigation;N&&(e.isBeginning?(_(N),f(N)):(y(N),c(N))),re&&(e.isEnd?(_(re),f(re)):(y(re),c(re)))}function A(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function C(){return A()&&e.params.pagination.clickable}function L(){const re=e.params.a11y;A()&&e.pagination.bullets.forEach(N=>{e.params.pagination.clickable&&(c(N),e.params.pagination.renderBullet||(d(N,"button"),b(N,re.paginationBulletMessage.replace(/\{\{index\}\}/,wl(N)+1)))),N.matches(fi(e.params.pagination.bulletActiveClass))?N.setAttribute("aria-current","true"):N.removeAttribute("aria-current")})}const j=(re,N,fe)=>{c(re),re.tagName!=="BUTTON"&&(d(re,"button"),re.addEventListener("keydown",x)),b(re,fe),g(re,N)},R=re=>{a&&a!==re.target&&!a.contains(re.target)&&(i=!0),e.a11y.clicked=!0},U=()=>{i=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},I=re=>{o=new Date().getTime()},M=re=>{if(e.a11y.clicked||!e.params.a11y.scrollOnFocus||new Date().getTime()-o<100)return;const N=re.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!N||!e.slides.includes(N))return;a=N;const fe=e.slides.indexOf(N)===e.activeIndex,G=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(N);fe||G||re.sourceCapabilities&&re.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,requestAnimationFrame(()=>{i||(e.params.loop?e.slideToLoop(parseInt(N.getAttribute("data-swiper-slide-index")),0):e.slideTo(e.slides.indexOf(N),0),i=!1)}))},$=()=>{const re=e.params.a11y;re.itemRoleDescriptionMessage&&p(e.slides,re.itemRoleDescriptionMessage),re.slideRole&&d(e.slides,re.slideRole);const N=e.slides.length;re.slideLabelMessage&&e.slides.forEach((fe,G)=>{const pe=e.params.loop?parseInt(fe.getAttribute("data-swiper-slide-index"),10):G,F=re.slideLabelMessage.replace(/\{\{index\}\}/,pe+1).replace(/\{\{slidesLength\}\}/,N);b(fe,F)})},Z=()=>{const re=e.params.a11y;e.el.append(s);const N=e.el;re.containerRoleDescriptionMessage&&p(N,re.containerRoleDescriptionMessage),re.containerMessage&&b(N,re.containerMessage),re.containerRole&&d(N,re.containerRole);const fe=e.wrapperEl,G=re.id||fe.getAttribute("id")||`swiper-wrapper-${u(16)}`,pe=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";v(fe,G),w(fe,pe),$();let{nextEl:F,prevEl:de}=e.navigation?e.navigation:{};F=lt(F),de=lt(de),F&&F.forEach(ee=>j(ee,G,re.nextSlideMessage)),de&&de.forEach(ee=>j(ee,G,re.prevSlideMessage)),C()&<(e.pagination.el).forEach(K=>{K.addEventListener("keydown",x)}),ir().addEventListener("visibilitychange",I),e.el.addEventListener("focus",M,!0),e.el.addEventListener("focus",M,!0),e.el.addEventListener("pointerdown",R,!0),e.el.addEventListener("pointerup",U,!0)};function ne(){s&&s.remove();let{nextEl:re,prevEl:N}=e.navigation?e.navigation:{};re=lt(re),N=lt(N),re&&re.forEach(G=>G.removeEventListener("keydown",x)),N&&N.forEach(G=>G.removeEventListener("keydown",x)),C()&<(e.pagination.el).forEach(pe=>{pe.removeEventListener("keydown",x)}),ir().removeEventListener("visibilitychange",I),e.el&&typeof e.el!="string"&&(e.el.removeEventListener("focus",M,!0),e.el.removeEventListener("pointerdown",R,!0),e.el.removeEventListener("pointerup",U,!0))}n("beforeInit",()=>{s=Gr("span",e.params.a11y.notificationClass),s.setAttribute("aria-live","assertive"),s.setAttribute("aria-atomic","true")}),n("afterInit",()=>{e.params.a11y.enabled&&Z()}),n("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{e.params.a11y.enabled&&$()}),n("fromEdge toEdge afterInit lock unlock",()=>{e.params.a11y.enabled&&T()}),n("paginationUpdate",()=>{e.params.a11y.enabled&&L()}),n("destroy",()=>{e.params.a11y.enabled&&ne()})}function yq(t){let{swiper:e,extendParams:r,on:n}=t;r({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let s=!1,i={};const a=p=>p.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=p=>{const g=Nt();let b;p?b=new URL(p):b=g.location;const v=b.pathname.slice(1).split("/").filter(x=>x!==""),w=v.length,_=v[w-2],y=v[w-1];return{key:_,value:y}},l=(p,g)=>{const b=Nt();if(!s||!e.params.history.enabled)return;let v;e.params.url?v=new URL(e.params.url):v=b.location;const w=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${g}"]`):e.slides[g];let _=a(w.getAttribute("data-history"));if(e.params.history.root.length>0){let x=e.params.history.root;x[x.length-1]==="/"&&(x=x.slice(0,x.length-1)),_=`${x}/${p?`${p}/`:""}${_}`}else v.pathname.includes(p)||(_=`${p?`${p}/`:""}${_}`);e.params.history.keepQuery&&(_+=v.search);const y=b.history.state;y&&y.value===_||(e.params.history.replaceState?b.history.replaceState({value:_},null,_):b.history.pushState({value:_},null,_))},u=(p,g,b)=>{if(g)for(let v=0,w=e.slides.length;v{i=o(e.params.url),u(e.params.speed,i.value,!1)},f=()=>{const p=Nt();if(e.params.history){if(!p.history||!p.history.pushState){e.params.history.enabled=!1,e.params.hashNavigation.enabled=!0;return}if(s=!0,i=o(e.params.url),!i.key&&!i.value){e.params.history.replaceState||p.addEventListener("popstate",c);return}u(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||p.addEventListener("popstate",c)}},d=()=>{const p=Nt();e.params.history.replaceState||p.removeEventListener("popstate",c)};n("init",()=>{e.params.history.enabled&&f()}),n("destroy",()=>{e.params.history.enabled&&d()}),n("transitionEnd _freeModeNoMomentumRelease",()=>{s&&l(e.params.history.key,e.activeIndex)}),n("slideChange",()=>{s&&e.params.cssMode&&l(e.params.history.key,e.activeIndex)})}function wq(t){let{swiper:e,extendParams:r,emit:n,on:s}=t,i=!1;const a=ir(),o=Nt();r({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(d,p){if(e.virtual&&e.params.virtual.enabled){const g=e.slides.find(v=>v.getAttribute("data-hash")===p);return g?parseInt(g.getAttribute("data-swiper-slide-index"),10):0}return e.getSlideIndex(ur(e.slidesEl,`.${e.params.slideClass}[data-hash="${p}"], swiper-slide[data-hash="${p}"]`)[0])}}});const l=()=>{n("hashChange");const d=a.location.hash.replace("#",""),p=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],g=p?p.getAttribute("data-hash"):"";if(d!==g){const b=e.params.hashNavigation.getSlideIndex(e,d);if(typeof b>"u"||Number.isNaN(b))return;e.slideTo(b)}},u=()=>{if(!i||!e.params.hashNavigation.enabled)return;const d=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],p=d?d.getAttribute("data-hash")||d.getAttribute("data-history"):"";e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState?(o.history.replaceState(null,null,`#${p}`||""),n("hashSet")):(a.location.hash=p||"",n("hashSet"))},c=()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;i=!0;const d=a.location.hash.replace("#","");if(d){const g=e.params.hashNavigation.getSlideIndex(e,d);e.slideTo(g||0,0,e.params.runCallbacksOnInit,!0)}e.params.hashNavigation.watchState&&o.addEventListener("hashchange",l)},f=()=>{e.params.hashNavigation.watchState&&o.removeEventListener("hashchange",l)};s("init",()=>{e.params.hashNavigation.enabled&&c()}),s("destroy",()=>{e.params.hashNavigation.enabled&&f()}),s("transitionEnd _freeModeNoMomentumRelease",()=>{i&&u()}),s("slideChange",()=>{i&&e.params.cssMode&&u()})}function vq(t){let{swiper:e,extendParams:r,on:n,emit:s,params:i}=t;e.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let a,o,l=i&&i.autoplay?i.autoplay.delay:3e3,u=i&&i.autoplay?i.autoplay.delay:3e3,c,f=new Date().getTime(),d,p,g,b,v,w,_;function y(N){!e||e.destroyed||!e.wrapperEl||N.target===e.wrapperEl&&(e.wrapperEl.removeEventListener("transitionend",y),!(_||N.detail&&N.detail.bySwiperTouchMove)&&R())}const x=()=>{if(e.destroyed||!e.autoplay.running)return;e.autoplay.paused?d=!0:d&&(u=c,d=!1);const N=e.autoplay.paused?c:f+u-new Date().getTime();e.autoplay.timeLeft=N,s("autoplayTimeLeft",N,N/l),o=requestAnimationFrame(()=>{x()})},T=()=>{let N;return e.virtual&&e.params.virtual.enabled?N=e.slides.find(G=>G.classList.contains("swiper-slide-active")):N=e.slides[e.activeIndex],N?parseInt(N.getAttribute("data-swiper-autoplay"),10):void 0},A=N=>{if(e.destroyed||!e.autoplay.running)return;cancelAnimationFrame(o),x();let fe=typeof N>"u"?e.params.autoplay.delay:N;l=e.params.autoplay.delay,u=e.params.autoplay.delay;const G=T();!Number.isNaN(G)&&G>0&&typeof N>"u"&&(fe=G,l=G,u=G),c=fe;const pe=e.params.speed,F=()=>{!e||e.destroyed||(e.params.autoplay.reverseDirection?!e.isBeginning||e.params.loop||e.params.rewind?(e.slidePrev(pe,!0,!0),s("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(e.slides.length-1,pe,!0,!0),s("autoplay")):!e.isEnd||e.params.loop||e.params.rewind?(e.slideNext(pe,!0,!0),s("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(0,pe,!0,!0),s("autoplay")),e.params.cssMode&&(f=new Date().getTime(),requestAnimationFrame(()=>{A()})))};return fe>0?(clearTimeout(a),a=setTimeout(()=>{F()},fe)):requestAnimationFrame(()=>{F()}),fe},C=()=>{f=new Date().getTime(),e.autoplay.running=!0,A(),s("autoplayStart")},L=()=>{e.autoplay.running=!1,clearTimeout(a),cancelAnimationFrame(o),s("autoplayStop")},j=(N,fe)=>{if(e.destroyed||!e.autoplay.running)return;clearTimeout(a),N||(w=!0);const G=()=>{s("autoplayPause"),e.params.autoplay.waitForTransition?e.wrapperEl.addEventListener("transitionend",y):R()};if(e.autoplay.paused=!0,fe){v&&(c=e.params.autoplay.delay),v=!1,G();return}c=(c||e.params.autoplay.delay)-(new Date().getTime()-f),!(e.isEnd&&c<0&&!e.params.loop)&&(c<0&&(c=0),G())},R=()=>{e.isEnd&&c<0&&!e.params.loop||e.destroyed||!e.autoplay.running||(f=new Date().getTime(),w?(w=!1,A(c)):A(),e.autoplay.paused=!1,s("autoplayResume"))},U=()=>{if(e.destroyed||!e.autoplay.running)return;const N=ir();N.visibilityState==="hidden"&&(w=!0,j(!0)),N.visibilityState==="visible"&&R()},I=N=>{N.pointerType==="mouse"&&(w=!0,_=!0,!(e.animating||e.autoplay.paused)&&j(!0))},M=N=>{N.pointerType==="mouse"&&(_=!1,e.autoplay.paused&&R())},$=()=>{e.params.autoplay.pauseOnMouseEnter&&(e.el.addEventListener("pointerenter",I),e.el.addEventListener("pointerleave",M))},Z=()=>{e.el&&typeof e.el!="string"&&(e.el.removeEventListener("pointerenter",I),e.el.removeEventListener("pointerleave",M))},ne=()=>{ir().addEventListener("visibilitychange",U)},re=()=>{ir().removeEventListener("visibilitychange",U)};n("init",()=>{e.params.autoplay.enabled&&($(),ne(),C())}),n("destroy",()=>{Z(),re(),e.autoplay.running&&L()}),n("_freeModeStaticRelease",()=>{(g||w)&&R()}),n("_freeModeNoMomentumRelease",()=>{e.params.autoplay.disableOnInteraction?L():j(!0,!0)}),n("beforeTransitionStart",(N,fe,G)=>{e.destroyed||!e.autoplay.running||(G||!e.params.autoplay.disableOnInteraction?j(!0,!0):L())}),n("sliderFirstMove",()=>{if(!(e.destroyed||!e.autoplay.running)){if(e.params.autoplay.disableOnInteraction){L();return}p=!0,g=!1,w=!1,b=setTimeout(()=>{w=!0,g=!0,j(!0)},200)}}),n("touchEnd",()=>{if(!(e.destroyed||!e.autoplay.running||!p)){if(clearTimeout(b),clearTimeout(a),e.params.autoplay.disableOnInteraction){g=!1,p=!1;return}g&&e.params.cssMode&&R(),g=!1,p=!1}}),n("slideChange",()=>{e.destroyed||!e.autoplay.running||(v=!0)}),Object.assign(e.autoplay,{start:C,stop:L,pause:j,resume:R})}function _q(t){let{swiper:e,extendParams:r,on:n}=t;r({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let s=!1,i=!1;e.thumbs={swiper:null};function a(){const u=e.thumbs.swiper;if(!u||u.destroyed)return;const c=u.clickedIndex,f=u.clickedSlide;if(f&&f.classList.contains(e.params.thumbs.slideThumbActiveClass)||typeof c>"u"||c===null)return;let d;u.params.loop?d=parseInt(u.clickedSlide.getAttribute("data-swiper-slide-index"),10):d=c,e.params.loop?e.slideToLoop(d):e.slideTo(d)}function o(){const{thumbs:u}=e.params;if(s)return!1;s=!0;const c=e.constructor;if(u.swiper instanceof c)e.thumbs.swiper=u.swiper,Object.assign(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper.update();else if(Ha(u.swiper)){const f=Object.assign({},u.swiper);Object.assign(f,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper=new c(f),i=!0}return e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",a),!0}function l(u){const c=e.thumbs.swiper;if(!c||c.destroyed)return;const f=c.params.slidesPerView==="auto"?c.slidesPerViewDynamic():c.params.slidesPerView;let d=1;const p=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(d=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(d=1),d=Math.floor(d),c.slides.forEach(v=>v.classList.remove(p)),c.params.loop||c.params.virtual&&c.params.virtual.enabled)for(let v=0;v{w.classList.add(p)});else for(let v=0;vx.getAttribute("data-swiper-slide-index")===`${e.realIndex}`);w=c.slides.indexOf(y),_=e.activeIndex>e.previousIndex?"next":"prev"}else w=e.realIndex,_=w>e.previousIndex?"next":"prev";b&&(w+=_==="next"?g:-1*g),c.visibleSlidesIndexes&&c.visibleSlidesIndexes.indexOf(w)<0&&(c.params.centeredSlides?w>v?w=w-Math.floor(f/2)+1:w=w+Math.floor(f/2)-1:w>v&&c.params.slidesPerGroup,c.slideTo(w,u?0:void 0))}}n("beforeInit",()=>{const{thumbs:u}=e.params;if(!(!u||!u.swiper))if(typeof u.swiper=="string"||u.swiper instanceof HTMLElement){const c=ir(),f=()=>{const p=typeof u.swiper=="string"?c.querySelector(u.swiper):u.swiper;if(p&&p.swiper)u.swiper=p.swiper,o(),l(!0);else if(p){const g=`${e.params.eventsPrefix}init`,b=v=>{u.swiper=v.detail[0],p.removeEventListener(g,b),o(),l(!0),u.swiper.update(),e.update()};p.addEventListener(g,b)}return p},d=()=>{if(e.destroyed)return;f()||requestAnimationFrame(d)};requestAnimationFrame(d)}else o(),l(!0)}),n("slideChange update resize observerUpdate",()=>{l()}),n("setTransition",(u,c)=>{const f=e.thumbs.swiper;!f||f.destroyed||f.setTransition(c)}),n("beforeDestroy",()=>{const u=e.thumbs.swiper;!u||u.destroyed||i&&u.destroy()}),Object.assign(e.thumbs,{init:o,update:l})}function Eq(t){let{swiper:e,extendParams:r,emit:n,once:s}=t;r({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}});function i(){if(e.params.cssMode)return;const l=e.getTranslate();e.setTranslate(l),e.setTransition(0),e.touchEventsData.velocities.length=0,e.freeMode.onTouchEnd({currentPos:e.rtl?e.translate:-e.translate})}function a(){if(e.params.cssMode)return;const{touchEventsData:l,touches:u}=e;l.velocities.length===0&&l.velocities.push({position:u[e.isHorizontal()?"startX":"startY"],time:l.touchStartTime}),l.velocities.push({position:u[e.isHorizontal()?"currentX":"currentY"],time:nn()})}function o(l){let{currentPos:u}=l;if(e.params.cssMode)return;const{params:c,wrapperEl:f,rtlTranslate:d,snapGrid:p,touchEventsData:g}=e,v=nn()-g.touchStartTime;if(u<-e.minTranslate()){e.slideTo(e.activeIndex);return}if(u>-e.maxTranslate()){e.slides.length1){const L=g.velocities.pop(),j=g.velocities.pop(),R=L.position-j.position,U=L.time-j.time;e.velocity=R/U,e.velocity/=2,Math.abs(e.velocity)150||nn()-L.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=c.freeMode.momentumVelocityRatio,g.velocities.length=0;let w=1e3*c.freeMode.momentumRatio;const _=e.velocity*w;let y=e.translate+_;d&&(y=-y);let x=!1,T;const A=Math.abs(e.velocity)*20*c.freeMode.momentumBounceRatio;let C;if(ye.minTranslate())c.freeMode.momentumBounce?(y-e.minTranslate()>A&&(y=e.minTranslate()+A),T=e.minTranslate(),x=!0,g.allowMomentumBounce=!0):y=e.minTranslate(),c.loop&&c.centeredSlides&&(C=!0);else if(c.freeMode.sticky){let L;for(let j=0;j-y){L=j;break}Math.abs(p[L]-y){e.loopFix()}),e.velocity!==0){if(d?w=Math.abs((-y-e.translate)/e.velocity):w=Math.abs((y-e.translate)/e.velocity),c.freeMode.sticky){const L=Math.abs((d?-y:y)-e.translate),j=e.slidesSizesGrid[e.activeIndex];L{!e||e.destroyed||!g.allowMomentumBounce||(n("momentumBounce"),e.setTransition(c.speed),setTimeout(()=>{e.setTranslate(T),nl(f,()=>{!e||e.destroyed||e.transitionEnd()})},0))})):e.velocity?(n("_freeModeNoMomentumRelease"),e.updateProgress(y),e.setTransition(w),e.setTranslate(y),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,nl(f,()=>{!e||e.destroyed||e.transitionEnd()}))):e.updateProgress(y),e.updateActiveIndex(),e.updateSlidesClasses()}else if(c.freeMode.sticky){e.slideToClosest();return}else c.freeMode&&n("_freeModeNoMomentumRelease");(!c.freeMode.momentum||v>=c.longSwipesMs)&&(n("_freeModeStaticRelease"),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}Object.assign(e,{freeMode:{onTouchStart:i,onTouchMove:a,onTouchEnd:o}})}function Sq(t){let{swiper:e,extendParams:r,on:n}=t;r({grid:{rows:1,fill:"column"}});let s,i,a,o;const l=()=>{let b=e.params.spaceBetween;return typeof b=="string"&&b.indexOf("%")>=0?b=parseFloat(b.replace("%",""))/100*e.size:typeof b=="string"&&(b=parseFloat(b)),b},u=b=>{const{slidesPerView:v}=e.params,{rows:w,fill:_}=e.params.grid,y=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:b.length;a=Math.floor(y/w),Math.floor(y/w)===y/w?s=y:s=Math.ceil(y/w)*w,v!=="auto"&&_==="row"&&(s=Math.max(s,v*w)),i=s/w},c=()=>{e.slides&&e.slides.forEach(b=>{b.swiperSlideGridSet&&(b.style.height="",b.style[e.getDirectionLabel("margin-top")]="")})},f=(b,v,w)=>{const{slidesPerGroup:_}=e.params,y=l(),{rows:x,fill:T}=e.params.grid,A=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:w.length;let C,L,j;if(T==="row"&&_>1){const R=Math.floor(b/(_*x)),U=b-x*_*R,I=R===0?_:Math.min(Math.ceil((A-R*x*_)/x),_);j=Math.floor(U/I),L=U-j*I+R*_,C=L+j*s/x,v.style.order=C}else T==="column"?(L=Math.floor(b/x),j=b-L*x,(L>a||L===a&&j===x-1)&&(j+=1,j>=x&&(j=0,L+=1))):(j=Math.floor(b/i),L=b-j*i);v.row=j,v.column=L,v.style.height=`calc((100% - ${(x-1)*y}px) / ${x})`,v.style[e.getDirectionLabel("margin-top")]=j!==0?y&&`${y}px`:"",v.swiperSlideGridSet=!0},d=(b,v)=>{const{centeredSlides:w,roundLengths:_}=e.params,y=l(),{rows:x}=e.params.grid;if(e.virtualSize=(b+y)*s,e.virtualSize=Math.ceil(e.virtualSize/x)-y,e.params.cssMode||(e.wrapperEl.style[e.getDirectionLabel("width")]=`${e.virtualSize+y}px`),w){const T=[];for(let A=0;A{o=e.params.grid&&e.params.grid.rows>1},g=()=>{const{params:b,el:v}=e,w=b.grid&&b.grid.rows>1;o&&!w?(v.classList.remove(`${b.containerModifierClass}grid`,`${b.containerModifierClass}grid-column`),a=1,e.emitContainerClasses()):!o&&w&&(v.classList.add(`${b.containerModifierClass}grid`),b.grid.fill==="column"&&v.classList.add(`${b.containerModifierClass}grid-column`),e.emitContainerClasses()),o=w};n("init",p),n("update",g),e.grid={initSlides:u,unsetSlides:c,updateSlide:f,updateWrapperSize:d}}function xq(t){const e=this,{params:r,slidesEl:n}=e;r.loop&&e.loopDestroy();const s=i=>{if(typeof i=="string"){const a=document.createElement("div");a.innerHTML=i,n.append(a.children[0]),a.innerHTML=""}else n.append(i)};if(typeof t=="object"&&"length"in t)for(let i=0;i{if(typeof o=="string"){const l=document.createElement("div");l.innerHTML=o,s.prepend(l.children[0]),l.innerHTML=""}else s.prepend(o)};if(typeof t=="object"&&"length"in t){for(let o=0;o=o){r.appendSlide(e);return}let l=a>t?a+1:a;const u=[];for(let c=o-1;c>=t;c-=1){const f=r.slides[c];f.remove(),u.unshift(f)}if(typeof e=="object"&&"length"in e){for(let c=0;ct?a+e.length:a}else i.append(e);for(let c=0;c{if(r.params.effect!==e)return;r.classNames.push(`${r.params.containerModifierClass}${e}`),o&&o()&&r.classNames.push(`${r.params.containerModifierClass}3d`);const f=a?a():{};Object.assign(r.params,f),Object.assign(r.originalParams,f)}),n("setTranslate",()=>{r.params.effect===e&&s()}),n("setTransition",(f,d)=>{r.params.effect===e&&i(d)}),n("transitionEnd",()=>{if(r.params.effect===e&&l){if(!u||!u().slideShadows)return;r.slides.forEach(f=>{f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>d.remove())}),l()}});let c;n("virtualUpdate",()=>{r.params.effect===e&&(r.slides.length||(c=!0),requestAnimationFrame(()=>{c&&r.slides&&r.slides.length&&(s(),c=!1)}))})}function Fl(t,e){const r=co(e);return r!==e&&(r.style.backfaceVisibility="hidden",r.style["-webkit-backface-visibility"]="hidden"),r}function yf(t){let{swiper:e,duration:r,transformElements:n,allSlides:s}=t;const{activeIndex:i}=e,a=o=>o.parentElement?o.parentElement:e.slides.find(u=>u.shadowRoot&&u.shadowRoot===o.parentNode);if(e.params.virtualTranslate&&r!==0){let o=!1,l;s?l=n:l=n.filter(u=>{const c=u.classList.contains("swiper-slide-transform")?a(u):u;return e.getSlideIndex(c)===i}),l.forEach(u=>{nl(u,()=>{if(o||!e||e.destroyed)return;o=!0,e.animating=!1;const c=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(c)})})}}function kq(t){let{swiper:e,extendParams:r,on:n}=t;r({fadeEffect:{crossFade:!1}}),ma({effect:"fade",swiper:e,on:n,setTranslate:()=>{const{slides:a}=e,o=e.params.fadeEffect;for(let l=0;l{const o=e.slides.map(l=>co(l));o.forEach(l=>{l.style.transitionDuration=`${a}ms`}),yf({swiper:e,duration:a,transformElements:o,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function Pq(t){let{swiper:e,extendParams:r,on:n}=t;r({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const s=(l,u,c)=>{let f=c?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),d=c?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");f||(f=Gr("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"left":"top"}`.split(" ")),l.append(f)),d||(d=Gr("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"right":"bottom"}`.split(" ")),l.append(d)),f&&(f.style.opacity=Math.max(-u,0)),d&&(d.style.opacity=Math.max(u,0))};ma({effect:"cube",swiper:e,on:n,setTranslate:()=>{const{el:l,wrapperEl:u,slides:c,width:f,height:d,rtlTranslate:p,size:g,browser:b}=e,v=uf(e),w=e.params.cubeEffect,_=e.isHorizontal(),y=e.virtual&&e.params.virtual.enabled;let x=0,T;w.shadow&&(_?(T=e.wrapperEl.querySelector(".swiper-cube-shadow"),T||(T=Gr("div","swiper-cube-shadow"),e.wrapperEl.append(T)),T.style.height=`${f}px`):(T=l.querySelector(".swiper-cube-shadow"),T||(T=Gr("div","swiper-cube-shadow"),l.append(T))));for(let C=0;C-1&&(x=j*90+I*90,p&&(x=-j*90-I*90)),L.style.transform=ne,w.slideShadows&&s(L,I,_)}if(u.style.transformOrigin=`50% 50% -${g/2}px`,u.style["-webkit-transform-origin"]=`50% 50% -${g/2}px`,w.shadow)if(_)T.style.transform=`translate3d(0px, ${f/2+w.shadowOffset}px, ${-f/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${w.shadowScale})`;else{const C=Math.abs(x)-Math.floor(Math.abs(x)/90)*90,L=1.5-(Math.sin(C*2*Math.PI/360)/2+Math.cos(C*2*Math.PI/360)/2),j=w.shadowScale,R=w.shadowScale/L,U=w.shadowOffset;T.style.transform=`scale3d(${j}, 1, ${R}) translate3d(0px, ${d/2+U}px, ${-d/2/R}px) rotateX(-89.99deg)`}const A=(b.isSafari||b.isWebView)&&b.needPerspectiveFix?-g/2:0;u.style.transform=`translate3d(0px,0,${A}px) rotateX(${v(e.isHorizontal()?0:x)}deg) rotateY(${v(e.isHorizontal()?-x:0)}deg)`,u.style.setProperty("--swiper-cube-translate-z",`${A}px`)},setTransition:l=>{const{el:u,slides:c}=e;if(c.forEach(f=>{f.style.transitionDuration=`${l}ms`,f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>{d.style.transitionDuration=`${l}ms`})}),e.params.cubeEffect.shadow&&!e.isHorizontal()){const f=u.querySelector(".swiper-cube-shadow");f&&(f.style.transitionDuration=`${l}ms`)}},recreateShadows:()=>{const l=e.isHorizontal();e.slides.forEach(u=>{const c=Math.max(Math.min(u.progress,1),-1);s(u,c,l)})},getEffectParams:()=>e.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})}function ia(t,e,r){const n=`swiper-slide-shadow${r?`-${r}`:""}${t?` swiper-slide-shadow-${t}`:""}`,s=co(e);let i=s.querySelector(`.${n.split(" ").join(".")}`);return i||(i=Gr("div",n.split(" ")),s.append(i)),i}function Oq(t){let{swiper:e,extendParams:r,on:n}=t;r({flipEffect:{slideShadows:!0,limitRotation:!0}});const s=(l,u)=>{let c=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),f=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");c||(c=ia("flip",l,e.isHorizontal()?"left":"top")),f||(f=ia("flip",l,e.isHorizontal()?"right":"bottom")),c&&(c.style.opacity=Math.max(-u,0)),f&&(f.style.opacity=Math.max(u,0))};ma({effect:"flip",swiper:e,on:n,setTranslate:()=>{const{slides:l,rtlTranslate:u}=e,c=e.params.flipEffect,f=uf(e);for(let d=0;d{const u=e.slides.map(c=>co(c));u.forEach(c=>{c.style.transitionDuration=`${l}ms`,c.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(f=>{f.style.transitionDuration=`${l}ms`})}),yf({swiper:e,duration:l,transformElements:u})},recreateShadows:()=>{e.params.flipEffect,e.slides.forEach(l=>{let u=l.progress;e.params.flipEffect.limitRotation&&(u=Math.max(Math.min(l.progress,1),-1)),s(l,u)})},getEffectParams:()=>e.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function Lq(t){let{swiper:e,extendParams:r,on:n}=t;r({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),ma({effect:"coverflow",swiper:e,on:n,setTranslate:()=>{const{width:a,height:o,slides:l,slidesSizesGrid:u}=e,c=e.params.coverflowEffect,f=e.isHorizontal(),d=e.translate,p=f?-d+a/2:-d+o/2,g=f?c.rotate:-c.rotate,b=c.depth,v=uf(e);for(let w=0,_=l.length;w<_;w+=1){const y=l[w],x=u[w],T=y.swiperSlideOffset,A=(p-T-x/2)/x,C=typeof c.modifier=="function"?c.modifier(A):A*c.modifier;let L=f?g*C:0,j=f?0:g*C,R=-b*Math.abs(C),U=c.stretch;typeof U=="string"&&U.indexOf("%")!==-1&&(U=parseFloat(c.stretch)/100*x);let I=f?0:U*C,M=f?U*C:0,$=1-(1-c.scale)*Math.abs(C);Math.abs(M)<.001&&(M=0),Math.abs(I)<.001&&(I=0),Math.abs(R)<.001&&(R=0),Math.abs(L)<.001&&(L=0),Math.abs(j)<.001&&(j=0),Math.abs($)<.001&&($=0);const Z=`translate3d(${M}px,${I}px,${R}px) rotateX(${v(j)}deg) rotateY(${v(L)}deg) scale(${$})`,ne=Fl(c,y);if(ne.style.transform=Z,y.style.zIndex=-Math.abs(Math.round(C))+1,c.slideShadows){let re=f?y.querySelector(".swiper-slide-shadow-left"):y.querySelector(".swiper-slide-shadow-top"),N=f?y.querySelector(".swiper-slide-shadow-right"):y.querySelector(".swiper-slide-shadow-bottom");re||(re=ia("coverflow",y,f?"left":"top")),N||(N=ia("coverflow",y,f?"right":"bottom")),re&&(re.style.opacity=C>0?C:0),N&&(N.style.opacity=-C>0?-C:0)}}},setTransition:a=>{e.slides.map(l=>co(l)).forEach(l=>{l.style.transitionDuration=`${a}ms`,l.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(u=>{u.style.transitionDuration=`${a}ms`})})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})}function Rq(t){let{swiper:e,extendParams:r,on:n}=t;r({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const s=o=>typeof o=="string"?o:`${o}px`;ma({effect:"creative",swiper:e,on:n,setTranslate:()=>{const{slides:o,wrapperEl:l,slidesSizesGrid:u}=e,c=e.params.creativeEffect,{progressMultiplier:f}=c,d=e.params.centeredSlides,p=uf(e);if(d){const g=u[0]/2-e.params.slidesOffsetBefore||0;l.style.transform=`translateX(calc(50% - ${g}px))`}for(let g=0;g0&&(C=c.prev,A=!0),x.forEach(($,Z)=>{x[Z]=`calc(${$}px + (${s(C.translate[Z])} * ${Math.abs(w*f)}))`}),T.forEach(($,Z)=>{let ne=C.rotate[Z]*Math.abs(w*f);T[Z]=ne}),b.style.zIndex=-Math.abs(Math.round(v))+o.length;const L=x.join(", "),j=`rotateX(${p(T[0])}deg) rotateY(${p(T[1])}deg) rotateZ(${p(T[2])}deg)`,R=_<0?`scale(${1+(1-C.scale)*_*f})`:`scale(${1-(1-C.scale)*_*f})`,U=_<0?1+(1-C.opacity)*_*f:1-(1-C.opacity)*_*f,I=`translate3d(${L}) ${j} ${R}`;if(A&&C.shadow||!A){let $=b.querySelector(".swiper-slide-shadow");if(!$&&C.shadow&&($=ia("creative",b)),$){const Z=c.shadowPerProgress?w*(1/c.limitProgress):w;$.style.opacity=Math.min(Math.max(Math.abs(Z),0),1)}}const M=Fl(c,b);M.style.transform=I,M.style.opacity=U,C.origin&&(M.style.transformOrigin=C.origin)}},setTransition:o=>{const l=e.slides.map(u=>co(u));l.forEach(u=>{u.style.transitionDuration=`${o}ms`,u.querySelectorAll(".swiper-slide-shadow").forEach(c=>{c.style.transitionDuration=`${o}ms`})}),yf({swiper:e,duration:o,transformElements:l,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}function Bq(t){let{swiper:e,extendParams:r,on:n}=t;r({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),ma({effect:"cards",swiper:e,on:n,setTranslate:()=>{const{slides:a,activeIndex:o,rtlTranslate:l}=e,u=e.params.cardsEffect,{startTranslate:c,isTouched:f}=e.touchEventsData,d=l?-e.translate:e.translate;for(let p=0;p0&&v<1&&(f||e.params.cssMode)&&d-1&&(f||e.params.cssMode)&&d>c;if(j||R){const $=(1-Math.abs((Math.abs(v)-.5)/.5))**.5;A+=-28*v*$,T+=-.5*$,C+=96*$,y=`${-25*$*Math.abs(v)}%`}if(v<0?_=`calc(${_}px ${l?"-":"+"} (${C*Math.abs(v)}%))`:v>0?_=`calc(${_}px ${l?"-":"+"} (-${C*Math.abs(v)}%))`:_=`${_}px`,!e.isHorizontal()){const $=y;y=_,_=$}const U=v<0?`${1+(1-T)*v}`:`${1-(1-T)*v}`,I=` + translate3d(${_}, ${y}, ${x}px) + rotateZ(${u.rotate?l?-A:A:0}deg) + scale(${U}) + `;if(u.slideShadows){let $=g.querySelector(".swiper-slide-shadow");$||($=ia("cards",g)),$&&($.style.opacity=Math.min(Math.max((Math.abs(v)-.5)/.5,0),1))}g.style.zIndex=-Math.abs(Math.round(b))+a.length;const M=Fl(u,g);M.style.transform=I}},setTransition:a=>{const o=e.slides.map(l=>co(l));o.forEach(l=>{l.style.transitionDuration=`${a}ms`,l.querySelectorAll(".swiper-slide-shadow").forEach(u=>{u.style.transitionDuration=`${a}ms`})}),yf({swiper:e,duration:a,transformElements:o})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}const $q=[lq,uq,cq,fq,dq,hq,pq,gq,mq,bq,yq,wq,vq,_q,Eq,Sq,Mq,kq,Pq,Oq,Lq,Rq,Bq];Wr.use($q);const wf=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","swiperElementNodeName","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function sa(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"&&!t.__swiper__}function Mg(t,e){const r=["__proto__","constructor","prototype"];Object.keys(e).filter(n=>r.indexOf(n)<0).forEach(n=>{typeof t[n]>"u"?t[n]=e[n]:sa(e[n])&&sa(t[n])&&Object.keys(e[n]).length>0?e[n].__swiper__?t[n]=e[n]:Mg(t[n],e[n]):t[n]=e[n]})}function Nq(t){return t===void 0&&(t={}),t.navigation&&typeof t.navigation.nextEl>"u"&&typeof t.navigation.prevEl>"u"}function Dq(t){return t===void 0&&(t={}),t.pagination&&typeof t.pagination.el>"u"}function Uq(t){return t===void 0&&(t={}),t.scrollbar&&typeof t.scrollbar.el>"u"}function Yu(t){return t===void 0&&(t=""),t.replace(/-[a-z]/g,e=>e.toUpperCase().replace("-",""))}function Fq(t){let{swiper:e,slides:r,passedParams:n,changedParams:s,nextEl:i,prevEl:a,scrollbarEl:o,paginationEl:l}=t;const u=s.filter(j=>j!=="children"&&j!=="direction"&&j!=="wrapperClass"),{params:c,pagination:f,navigation:d,scrollbar:p,virtual:g,thumbs:b}=e;let v,w,_,y,x,T,A,C;s.includes("thumbs")&&n.thumbs&&n.thumbs.swiper&&!n.thumbs.swiper.destroyed&&c.thumbs&&(!c.thumbs.swiper||c.thumbs.swiper.destroyed)&&(v=!0),s.includes("controller")&&n.controller&&n.controller.control&&c.controller&&!c.controller.control&&(w=!0),s.includes("pagination")&&n.pagination&&(n.pagination.el||l)&&(c.pagination||c.pagination===!1)&&f&&!f.el&&(_=!0),s.includes("scrollbar")&&n.scrollbar&&(n.scrollbar.el||o)&&(c.scrollbar||c.scrollbar===!1)&&p&&!p.el&&(y=!0),s.includes("navigation")&&n.navigation&&(n.navigation.prevEl||a)&&(n.navigation.nextEl||i)&&(c.navigation||c.navigation===!1)&&d&&!d.prevEl&&!d.nextEl&&(x=!0);const L=j=>{e[j]&&(e[j].destroy(),j==="navigation"?(e.isElement&&(e[j].prevEl.remove(),e[j].nextEl.remove()),c[j].prevEl=void 0,c[j].nextEl=void 0,e[j].prevEl=void 0,e[j].nextEl=void 0):(e.isElement&&e[j].el.remove(),c[j].el=void 0,e[j].el=void 0))};s.includes("loop")&&e.isElement&&(c.loop&&!n.loop?T=!0:!c.loop&&n.loop?A=!0:C=!0),u.forEach(j=>{if(sa(c[j])&&sa(n[j]))Object.assign(c[j],n[j]),(j==="navigation"||j==="pagination"||j==="scrollbar")&&"enabled"in n[j]&&!n[j].enabled&&L(j);else{const R=n[j];(R===!0||R===!1)&&(j==="navigation"||j==="pagination"||j==="scrollbar")?R===!1&&L(j):c[j]=n[j]}}),u.includes("controller")&&!w&&e.controller&&e.controller.control&&c.controller&&c.controller.control&&(e.controller.control=c.controller.control),s.includes("children")&&r&&g&&c.virtual.enabled?(g.slides=r,g.update(!0)):s.includes("virtual")&&g&&c.virtual.enabled&&(r&&(g.slides=r),g.update(!0)),s.includes("children")&&r&&c.loop&&(C=!0),v&&b.init()&&b.update(!0),w&&(e.controller.control=c.controller.control),_&&(e.isElement&&(!l||typeof l=="string")&&(l=document.createElement("div"),l.classList.add("swiper-pagination"),l.part.add("pagination"),e.el.appendChild(l)),l&&(c.pagination.el=l),f.init(),f.render(),f.update()),y&&(e.isElement&&(!o||typeof o=="string")&&(o=document.createElement("div"),o.classList.add("swiper-scrollbar"),o.part.add("scrollbar"),e.el.appendChild(o)),o&&(c.scrollbar.el=o),p.init(),p.updateSize(),p.setTranslate()),x&&(e.isElement&&((!i||typeof i=="string")&&(i=document.createElement("div"),i.classList.add("swiper-button-next"),i.innerHTML=e.hostEl.constructor.nextButtonSvg,i.part.add("button-next"),e.el.appendChild(i)),(!a||typeof a=="string")&&(a=document.createElement("div"),a.classList.add("swiper-button-prev"),a.innerHTML=e.hostEl.constructor.prevButtonSvg,a.part.add("button-prev"),e.el.appendChild(a))),i&&(c.navigation.nextEl=i),a&&(c.navigation.prevEl=a),d.init(),d.update()),s.includes("allowSlideNext")&&(e.allowSlideNext=n.allowSlideNext),s.includes("allowSlidePrev")&&(e.allowSlidePrev=n.allowSlidePrev),s.includes("direction")&&e.changeDirection(n.direction,!1),(T||C)&&e.loopDestroy(),(A||C)&&e.loopCreate(),e.update()}const w0=t=>{if(parseFloat(t)===Number(t))return Number(t);if(t==="true"||t==="")return!0;if(t==="false")return!1;if(t==="null")return null;if(t!=="undefined"){if(typeof t=="string"&&t.includes("{")&&t.includes("}")&&t.includes('"')){let e;try{e=JSON.parse(t)}catch{e=t}return e}return t}},v0=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function _0(t,e,r){const n={},s={};Mg(n,vg);const i=[...wf,"on"],a=i.map(l=>l.replace(/_/,""));i.forEach(l=>{l=l.replace("_",""),typeof t[l]<"u"&&(s[l]=t[l])});const o=[...t.attributes];return typeof e=="string"&&typeof r<"u"&&o.push({name:e,value:sa(r)?{...r}:r}),o.forEach(l=>{const u=v0.find(c=>l.name.startsWith(`${c}-`));if(u){const c=Yu(u),f=Yu(l.name.split(`${u}-`)[1]);typeof s[c]>"u"&&(s[c]={}),s[c]===!0&&(s[c]={enabled:!0}),s[c][f]=w0(l.value)}else{const c=Yu(l.name);if(!a.includes(c))return;const f=w0(l.value);s[c]&&v0.includes(l.name)&&!sa(f)?(s[c].constructor!==Object&&(s[c]={}),s[c].enabled=!!f):s[c]=f}}),Mg(n,s),n.navigation?n.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...n.navigation!==!0?n.navigation:{}}:n.navigation===!1&&delete n.navigation,n.scrollbar?n.scrollbar={el:".swiper-scrollbar",...n.scrollbar!==!0?n.scrollbar:{}}:n.scrollbar===!1&&delete n.scrollbar,n.pagination?n.pagination={el:".swiper-pagination",...n.pagination!==!0?n.pagination:{}}:n.pagination===!1&&delete n.pagination,{params:n,passedParams:s}}const Vq=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}",jq="::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}";class Wq{}const Zx=typeof window>"u"||typeof HTMLElement>"u"?Wq:HTMLElement,E0=` + `,eT=(t,e)=>{if(typeof CSSStyleSheet<"u"&&t.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(e),t.adoptedStyleSheets=[r]}else{const r=document.createElement("style");r.rel="stylesheet",r.textContent=e,t.appendChild(r)}};class tT extends Zx{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return E0}static get prevButtonSvg(){return E0.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[Vq,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join(` +`)}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,r=[...this.querySelectorAll("[slot^=slide-]")].map(n=>parseInt(n.getAttribute("slot").split("slide-")[1],10));if(this.slideSlots=r.length?Math.max(...r)+1:0,!!this.rendered){if(this.slideSlots>e)for(let n=e;n=0;s-=1)s>this.slideSlots&&n[s].remove()}}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&eT(this.shadowRoot,e),this.cssLinks().forEach(n=>{if(this.shadowRoot.querySelector(`link[href="${n}"]`))return;const i=document.createElement("link");i.rel="stylesheet",i.href=n,this.shadowRoot.appendChild(i)});const r=document.createElement("div");r.classList.add("swiper"),r.part="container",r.innerHTML=` + +
+ + ${Array.from({length:this.slideSlots}).map((n,s)=>` + + + + `).join("")} +
+ + ${Nq(this.passedParams)?` +
${this.constructor.prevButtonSvg}
+
${this.constructor.nextButtonSvg}
+ `:""} + ${Dq(this.passedParams)?` +
+ `:""} + ${Uq(this.passedParams)?` +
+ `:""} + `,this.shadowRoot.appendChild(r),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:r,passedParams:n}=_0(this);this.swiperParams=r,this.passedParams=n,delete this.swiperParams.init,this.render(),this.swiper=new Wr(this.shadowRoot.querySelector(".swiper"),{...r.virtual?{}:{observer:!0},...r,touchEventsTarget:"container",onAny:function(s){s==="observerUpdate"&&e.calcSlideSlots();const i=r.eventsPrefix?`${r.eventsPrefix}${s.toLowerCase()}`:s.toLowerCase();for(var a=arguments.length,o=new Array(a>1?a-1:0),l=1;lr.includes("_")).map(r=>r.replace(/[A-Z]/g,n=>`-${n}`).replace("_","").toLowerCase())}}wf.forEach(t=>{t!=="init"&&(t=t.replace("_",""),Object.defineProperty(tT.prototype,t,{configurable:!0,get(){return(this.passedParams||{})[t]},set(e){this.passedParams||(this.passedParams={}),this.passedParams[t]=e,this.initialized&&this.updateSwiperOnPropChange(t,e)}}))});class zq extends Zx{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||this.getAttribute("lazy")===""||this.getAttribute("lazy")==="true";if(eT(this.shadowRoot,jq),this.shadowRoot.appendChild(document.createElement("slot")),e){const r=document.createElement("div");r.classList.add("swiper-lazy-preloader"),r.part.add("preloader"),this.shadowRoot.appendChild(r)}}initialize(){this.render()}connectedCallback(){this.initialize()}}const Hq=()=>{typeof window>"u"||(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",tT),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",zq))};typeof window<"u"&&(window.SwiperElementRegisterParams=t=>{wf.push(...t)});const qq=IC(aj);Hq();qq.mount("#app"); diff --git a/packages/modules/web_themes/colors/web/assets/index-BEDuoazu.css b/packages/modules/web_themes/colors/web/assets/index-JHvhDN_n.css similarity index 99% rename from packages/modules/web_themes/colors/web/assets/index-BEDuoazu.css rename to packages/modules/web_themes/colors/web/assets/index-JHvhDN_n.css index 3b104bf3fb..e05107e811 100644 --- a/packages/modules/web_themes/colors/web/assets/index-BEDuoazu.css +++ b/packages/modules/web_themes/colors/web/assets/index-JHvhDN_n.css @@ -1,4 +1,4 @@ -@charset "UTF-8";.popup[data-v-a154651e]{stroke:var(--color-axis);stroke-width:.2;opacity:1}.popup-textbox[data-v-a154651e]{text-anchor:middle}.popup-title[data-v-a154651e]{font-size:14px}.popup-content[data-v-a154651e]{font-size:17px}.form-select[data-v-98690e5d]{background-color:var(--color-input);border:1;border-color:var(--color-bg);color:var(--color-bg);text-align:start;font-size:var(--font-small)}.commitbutton[data-v-98690e5d]{background-color:var(--color-bg);color:var(--color-input)}option[data-v-98690e5d]{color:green}.form-select[data-v-98690e5d]{font-size:var(--font-verysmall);background-color:var(--color-menu);color:var(--color-fg)}.optiontable[data-v-98690e5d]{background-color:var(--color-menu)}.optionbutton[data-v-98690e5d]{font-size:var(--font-small);color:#fff;background-color:var(--color-menu);font-size:var(--font-verysmall);text-align:center}.dropdown-menu[data-v-98690e5d]{background-color:var(--color-menu)}.dropdown-toggle[data-v-98690e5d]{background-color:var(--color-menu);color:#fff;border:1px solid var(--color-bg);font-size:var(--font-verysmall)}.radiobutton[data-v-82ab6829]{border:0px solid var(--color-menu);opacity:1}.btn-outline-secondary.active[data-v-82ab6829]{background-color:var(--color-bg);border:0px solid var(--color-fg);opacity:.8}.btn-group[data-v-82ab6829]{border:1px solid var(--color-menu)}.rounded-pill[data-v-d75ec1a4]{background-color:var(--color-menu)}.arrowButton[data-v-d75ec1a4]{border:0}.datebadge[data-v-d75ec1a4]{background-color:var(--color-bg);color:var(--color-menu);border:1px solid var(--color-menu);font-size:var(--font-small);font-weight:400}.arrowButton[data-v-d75ec1a4],.fa-magnifying-glass[data-v-d40bf528],.fa-magnifying-glass[data-v-32c82102],.fa-magnifying-glass[data-v-dc8e49b2]{color:var(--color-menu)}.heading[data-v-f6af00e8]{color:var(--color-menu);font-weight:400;text-align:center}.content[data-v-f6af00e8]{color:var(--color-fg);font-weight:700}@supports (grid-template-columns: subgrid){.wb-subwidget[data-v-2aa2b95f]{border-top:.5px solid var(--color-scale);display:grid;grid-template-columns:subgrid;grid-column:1 / 13}.wb-subwidget-noborder[data-v-2aa2b95f]{margin-top:20px;display:grid;grid-template-columns:subgrid;grid-column:1 / 13;padding-top:10px}}@supports not (grid-template-columns: subgrid){.wb-subwidget[data-v-2aa2b95f]{border-top:.5px solid var(--color-scale);display:grid;grid-template-columns:repeat(12,auto);grid-column:1 / 13}.wb-subwidget-noborder[data-v-2aa2b95f]{margin-top:20px;display:grid;grid-template-columns:subgrid;grid-column:1 / 13}}.titlerow[data-v-2aa2b95f]{grid-column:1 / 13}@supports (grid-template-columns: subgrid){.contentrow[data-v-2aa2b95f]{display:grid;grid-template-columns:subgrid;grid-column:1 / 13;align-items:top}}@supports not (grid-template-columns: subgrid){.contentrow[data-v-2aa2b95f]{display:grid;align-items:top;grid-template-columns:repeat(12,auto)}}.widgetname[data-v-2aa2b95f]{font-weight:700;font-size:var(--font-large)}.infotext[data-v-25ab3fbb]{font-size:var(--font-settings);color:var(--color-battery)}.item-icon[data-v-25ab3fbb]{color:var(--color-menu);font-size:var(--font-settings)}.titlecolumn[data-v-25ab3fbb]{color:var(--color-fg);font-size:var(--font-settings);flex-grow:1}.selectors[data-v-25ab3fbb]{font-size:var(--font-settings)}.configitem[data-v-25ab3fbb]{font-size:var(--font-settings);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%}.contentrow[data-v-25ab3fbb]{display:flex;height:100%;width:100%}.minlabel[data-v-af945965],.maxlabel[data-v-af945965]{color:var(--color-menu)}.valuelabel[data-v-af945965]{color:var(--color-fg)}.minusButton[data-v-af945965],.plusButton[data-v-af945965]{color:var(--color-menu)}.rangeIndicator[data-v-af945965]{margin:0;padding:0;line-height:10px}.rangeinput[data-v-af945965]{width:100%}.radiobutton[data-v-88c9ea7a]{border:.2px solid var(--color-menu);opacity:1;font-size:var(--font-settings-button);border-radius:0}.btn-outline-secondary.active[data-v-88c9ea7a]{background-color:var(--color-fg);border:1px solid var(--color-menu);box-shadow:0 .5rem 1rem #00000026;opacity:1}.buttongrid[data-v-88c9ea7a]{display:grid;border:1px solid var(--color-menu);border-radius:.5rem;justify-items:stretch;justify-self:stretch;width:100%}.chargeConfigSelect[data-v-de6b86dd]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-de6b86dd]{color:var(--color-charging);font-size:var(--font-settings);font-weight:700}.chargeConfigSelect[data-v-d7ee4d2a]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-d7ee4d2a]{color:var(--color-pv);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-d7ee4d2a]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-d7ee4d2a]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-d7ee4d2a]{margin-right:5px}.heading[data-v-2f5cb5c1]{font-size:var(--font-settings);color:var(--color-charging);font-weight:700;margin-bottom:.5rem}.plandetails[data-v-2f5cb5c1]{display:flex;flex-direction:column}.tablecell[data-v-08df44d8]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;font-size:var(--font-settings)}.tableheader[data-v-08df44d8]{color:var(--color-menu);background-color:var(--color-bg);text-align:center;font-style:normal}.heading[data-v-08df44d8]{color:var(--color-battery);font-size:var(--font-settings);font-weight:700}.left[data-v-08df44d8]{text-align:left}.text-bold[data-v-08df44d8]{font-weight:700}.text-normal[data-v-08df44d8]{font-weight:400}.fa-circle-info[data-v-08df44d8]{color:var(--color-charging);cursor:pointer}.heading[data-v-eaa44cb2]{font-size:var(--font-settings);color:var(--color-charging);font-weight:700;margin-bottom:.5rem}.plandetails[data-v-eaa44cb2]{display:flex;flex-direction:column}.tablecell[data-v-543e8ca2]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;font-size:var(--font-settings)}.tableheader[data-v-543e8ca2]{color:var(--color-menu);background-color:var(--color-bg);text-align:center;font-style:normal}.heading[data-v-543e8ca2]{color:var(--color-battery);font-size:var(--font-settings);font-weight:700}.left[data-v-543e8ca2]{text-align:left}.right[data-v-543e8ca2]{text-align:right}.text-bold[data-v-543e8ca2]{font-weight:700}.text-normal[data-v-543e8ca2]{font-weight:400}.fa-circle-info[data-v-543e8ca2]{color:var(--color-charging);cursor:pointer}.color-charging[data-v-28b81885]{color:var(--color-charging)}.fa-circle-check[data-v-28b81885]{color:var(--color-menu)}.settingsheader[data-v-28b81885]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-28b81885]{color:var(--color-axis);font-size:16px}.jumpbutton[data-v-28b81885]{background-color:var(--color-menu);color:var(--color-bg);border:0;font-size:var(--font-settings-button)}.confirmButton[data-v-28b81885]{font-size:var(--font-settings-button)}.chargeConfigSelect[data-v-106a9fca]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-106a9fca]{color:var(--color-devices);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-106a9fca]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-106a9fca]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-106a9fca]{margin-right:5px}.status-string[data-v-e6ae9e07]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-e6ae9e07]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-e6ae9e07]{background:green;color:#00f}.nav-tabs .nav-link[data-v-e6ae9e07]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-e6ae9e07]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-e6ae9e07]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:1px solid var(--color-menu)}.settingsheader[data-v-e6ae9e07]{color:var(--color-charging);font-size:16px;font-weight:700}hr[data-v-e6ae9e07]{color:var(--color-menu)}.status-string[data-v-cd92fe69]{font-size:var(--font-settings);font-style:italic;color:var(--color-battery)}.nav-tabs .nav-link[data-v-cd92fe69]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-cd92fe69]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-cd92fe69]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:0px solid var(--color-menu)}.heading[data-v-cd92fe69]{color:var(--color-menu)}.item[data-v-cd92fe69]{grid-column:span 12}.tabarea[data-v-cd92fe69]{justify-self:stretch}.wb-widget[data-v-fb6ac7a4]{width:100%;height:100%;border-radius:30px}.widgetname[data-v-fb6ac7a4]{font-weight:700;color:var(--color-fg);font-size:var(--font-large)}.batIcon[data-v-a68c844a]{color:var(--color-menu)}.pillWbBadge[data-v-36112fa3]{font-size:(var--font-small);font-weight:regular;display:flex;justify-content:center;align-items:center}.targetCurrent[data-v-2cc82367]{color:var(--color-menu)}.fa-star[data-v-e3fcbd86]{color:var(--color-evu)}.fa-clock[data-v-e3fcbd86]{color:var(--color-charging)}.fa-car[data-v-e3fcbd86],.fa-circle-check[data-v-e3fcbd86]{color:var(--color-menu)}.socEditor[data-v-e3fcbd86],.priceEditor[data-v-e3fcbd86]{border:1px solid var(--color-menu);justify-self:stretch}.chargemodes[data-v-e3fcbd86]{grid-column:1 / 13;justify-self:center}.chargeinfo[data-v-e3fcbd86]{display:grid;grid-template-columns:repeat(12,auto);justify-content:space-between}.divider[data-v-e3fcbd86]{border-top:1px solid var(--color-fg);width:100%}.carSelector[data-v-e3fcbd86]{border:1px solid var(--color-menu);font-size:var(--font-settings);border-radius:3px;display:flex;flex-direction:column}.fa-ellipsis-vertical[data-v-b35defc2],.fa-circle-check[data-v-b35defc2]{color:var(--color-menu)}.errorWbBadge[data-v-b35defc2]{color:var(--color-bg);background-color:var(--color-evu);font-size:var(--font-small)}.close-config-button[data-v-b35defc2]{background:var(--color-menu);color:var(--color-bg);grid-column:11 / span 2;font-size:var(--font-settings-button)}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.modal-footer[data-v-eaefae30],.modal-header[data-v-eaefae30],.modal-body[data-v-eaefae30]{background:var(--color-bg)}.btn-close[data-v-eaefae30]{color:var(--color-fg)}.modal-footer[data-v-eaefae30]{text-align:right}.modal-header .btn-close[data-v-eaefae30]{color:var(--color-fg);background:var(--color-bg);border:0px}.modal.fade .modal-dialog[data-v-eaefae30]{transition:transform 1s ease-out;transform:none;scale:.6}.modal.show .modal-dialog[data-v-eaefae30]{transition:transform .3s ease-in;transform:none;scale:1}.tablerow[data-v-9260919a]{margin:14px;border-top:.1px solid var(--color-scale)}.tablecell[data-v-9260919a]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;padding-top:2px;padding-left:2px;padding-right:2px;vertical-align:baseline;line-height:1.4rem;font-size:var(--font-small)}.buttoncell[data-v-9260919a]{background-color:var(--color-bg);padding:0;margin:0}.left[data-v-9260919a]{text-align:left}.tablecell.right[data-v-9260919a]{text-align:right}.tablecolum1[data-v-9260919a]{color:var(--color-fg);text-align:left;margin:0;padding:0}.tableicon[data-v-9260919a]{color:var(--color-menu)}.fa-star[data-v-9260919a]{color:var(--color-evu)}.fa-clock[data-v-9260919a]{color:var(--color-battery)}.socEditor[data-v-9260919a]{border:1px solid var(--color-menu);background-color:var(--color-bg)}.socEditRow td[data-v-9260919a]{background-color:var(--color-bg)}.fa-circle-check[data-v-9260919a]{color:var(--color-menu)}.socEditTitle[data-v-9260919a]{color:var(--color-fg)}.statusbadge[data-v-9260919a]{background-color:var(--color-bg);font-weight:700;font-size:var(--font-verysmall)}.modebadge[data-v-9260919a]{color:var(--color-bg)}.cpname[data-v-9260919a]{font-size:var(--font-small)}.fa-edit[data-v-9260919a]{color:var(--color-menu)}.infolist[data-v-9260919a]{justify-content:center}.tableheader[data-v-b8c6b557]{margin:0;padding-left:0;background-color:var(--color-bg);color:var(--color-menu)}.alignleft[data-v-b8c6b557]{text-align:left}.aligncenter[data-v-b8c6b557]{text-align:center}.alignright[data-v-b8c6b557]{text-align:right}.table[data-v-b8c6b557]{border-spacing:1rem;background-color:var(--color-bg)}.priceWbBadge[data-v-b8c6b557]{background-color:var(--color-menu);font-weight:400}.fa-charging-station[data-v-b8c6b557]{color:var(--color-charging)}.plugIndicator[data-v-71bb7e5f]{color:#fff;border:1px solid white}.chargeButton[data-v-71bb7e5f]{color:#fff}.left[data-v-71bb7e5f]{float:left}.right[data-v-71bb7e5f]{float:right}.center[data-v-71bb7e5f]{margin:auto}.time-display[data-v-791e4be0]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.battery-title[data-v-f7f825f7]{color:var(--color-battery);font-size:var(--font-medium)}.battery-color[data-v-c2a8727a]{color:var(--color-battery)}.fg-color[data-v-c2a8727a]{color:var(--color-fg)}.menu-color[data-v-c2a8727a],.todaystring[data-v-c2a8727a]{color:var(--color-menu)}.devicename[data-v-20651ac6]{font-size:var(--font-medium)}.statusbutton[data-v-20651ac6]{font-size:var(--font-extralarge)}.sh-title[data-v-5b5cf6b3]{color:var(--color-title)}.tableheader[data-v-5b5cf6b3]{background-color:var(--color-bg);color:var(--color-menu)}.fa-ellipsis-vertical[data-v-5b5cf6b3],.fa-circle-check[data-v-5b5cf6b3]{color:var(--color-menu)}.smarthome[data-v-5b5cf6b3]{color:var(--color-devices)}.idWbBadge[data-v-01dd8c4d]{background-color:var(--color-menu);font-weight:400}.countername[data-v-01dd8c4d]{font-size:var(--font-medium)}.statusbutton[data-v-5f059284]{font-size:var(--font-large)}.modebutton[data-v-5f059284]{background-color:var(--color-menu);font-size:var(--font-verysmall);font-weight:400}.tempWbBadge[data-v-5f059284]{background-color:var(--color-battery);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.idWbBadge[data-v-9e2cb63e]{background-color:var(--color-menu);font-weight:400}.status-string[data-v-9e2cb63e]{text-align:center}.vehiclename[data-v-9e2cb63e]{font-size:var(--font-medium)}.statusbutton[data-v-716be083]{font-size:var(--font-large)}.modebutton[data-v-716be083]{background-color:var(--color-menu);font-size:var(--font-verysmall);font-weight:400}.tempWbBadge[data-v-716be083]{background-color:var(--color-battery);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.priceWbBadge[data-v-578b98b5]{background-color:var(--color-charging);font-weight:400}.providerWbBadge[data-v-578b98b5]{background-color:var(--color-menu);font-weight:400}.grapharea[data-v-578b98b5]{grid-column-start:1;grid-column-end:13;width:100%;object-fit:cover;max-height:100%;justify-items:stretch}.pricefigure[data-v-578b98b5]{justify-self:stretch}.modeWbBadge[data-v-258d8f17]{background-color:var(--color-pv);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.invertername[data-v-258d8f17]{font-size:var(--font-medium)}.powerWbBadge[data-v-8a9444cf]{background-color:var(--color-pv);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.button[data-v-17424929]{color:var(--color-fg)}.name[data-v-df7e578a]{font-size:1rem;color:#000;border:1px solid white}.content[data-v-df7e578a]{grid-column:1 / -1;border:solid 1px black;border-radius:10px}.sublist[data-v-df7e578a]{grid-column:1 / -1;display:grid;grid-template-columns:subgrid}.mqviewer[data-v-a349646d]{background-color:#fff;color:#000}.topiclist[data-v-a349646d]{display:grid;grid-template-columns:repeat(40,1fr)}.topnode[data-v-a349646d]{grid-column-start:1;grid-column-end:-1}.mqtitle[data-v-a349646d]{color:#000}.form-select[data-v-5e33ce1f]{background-color:var(--color-input);color:#000;border:1px solid var(--color-bg);font-size:var(--font-settings)}.fa-circle-check[data-v-785bc80b]{font-size:var(--font-large);background-color:var(--color-bg);color:var(--color-menu)}.closebutton[data-v-785bc80b]{justify-self:end}.settingscolumn[data-v-785bc80b]{padding:20px}.nav-tabs[data-v-0542a138]{border-bottom:.5px solid var(--color-menu);background-color:var(--color-bg)}.nav-tabs .nav-link[data-v-0542a138]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-0542a138]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-0542a138]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:.5px solid var(--color-menu);border-bottom:0px solid var(--color-menu);box-shadow:0 .5rem 1rem #00000026}.fa-circle-info[data-v-0542a138]{color:var(--color-fg)}.fa-charging-station[data-v-0542a138]{color:var(--color-charging)}.fa-car-battery[data-v-0542a138]{color:var(--color-battery)}.fa-plug[data-v-0542a138]{color:var(--color-devices)}.fa-bolt[data-v-0542a138]{color:var(--color-evu)}.fa-car[data-v-0542a138]{color:var(--color-charging)}.fa-coins[data-v-0542a138]{color:var(--color-battery)}.fa-solar-panel[data-v-0542a138]{color:var(--color-pv)}.navbar[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.dropdown-menu[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg)}.dropdown-item[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.btn[data-v-ed619966]{font-size:var(--font-medium);background-color:var(--color-bg);color:var(--color-fg)}.navbar-brand[data-v-ed619966]{font-weight:700;color:var(--color-fg);font-size:var(--font-normal)}.nav-link[data-v-ed619966]{color:var(--color-fg);border-color:red;font-size:var(--font-normal)}.navbar-toggler[data-v-ed619966]{color:var(--color-fg);border-color:var(--color-bg)}.navbar-time[data-v-ed619966]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius, .1em);border:var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) )}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration, 2s);animation-duration:var(--fa-animation-duration, 2s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, steps(8));animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle, none));transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-a:before{content:"A"}.fa-address-book:before,.fa-contact-book:before{content:""}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-anchor:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-double-down:before,.fa-angles-down:before{content:""}.fa-angle-double-left:before,.fa-angles-left:before{content:""}.fa-angle-double-right:before,.fa-angles-right:before{content:""}.fa-angle-double-up:before,.fa-angles-up:before{content:""}.fa-ankh:before{content:""}.fa-apple-alt:before,.fa-apple-whole:before{content:""}.fa-archway:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:""}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:""}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:""}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:""}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:""}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:""}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:""}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:""}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:""}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:""}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:""}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:""}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:""}.fa-arrow-trend-down:before{content:""}.fa-arrow-trend-up:before{content:""}.fa-arrow-turn-down:before,.fa-level-down:before{content:""}.fa-arrow-turn-up:before,.fa-level-up:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:""}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:""}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:""}.fa-arrow-up-from-bracket:before{content:""}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:""}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:""}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:""}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:""}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:""}.fa-arrows-h:before,.fa-arrows-left-right:before{content:""}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:""}.fa-arrows-up-down:before,.fa-arrows-v:before{content:""}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:""}.fa-asterisk:before{content:"*"}.fa-at:before{content:"@"}.fa-atom:before{content:""}.fa-audio-description:before{content:""}.fa-austral-sign:before{content:""}.fa-award:before{content:""}.fa-b:before{content:"B"}.fa-baby:before{content:""}.fa-baby-carriage:before,.fa-carriage-baby:before{content:""}.fa-backward:before{content:""}.fa-backward-fast:before,.fa-fast-backward:before{content:""}.fa-backward-step:before,.fa-step-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bag-shopping:before,.fa-shopping-bag:before{content:""}.fa-bahai:before{content:""}.fa-baht-sign:before{content:""}.fa-ban:before,.fa-cancel:before{content:""}.fa-ban-smoking:before,.fa-smoking-ban:before{content:""}.fa-band-aid:before,.fa-bandage:before{content:""}.fa-barcode:before{content:""}.fa-bars:before,.fa-navicon:before{content:""}.fa-bars-progress:before,.fa-tasks-alt:before{content:""}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:""}.fa-baseball-ball:before,.fa-baseball:before{content:""}.fa-baseball-bat-ball:before{content:""}.fa-basket-shopping:before,.fa-shopping-basket:before{content:""}.fa-basketball-ball:before,.fa-basketball:before{content:""}.fa-bath:before,.fa-bathtub:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-half:before{content:""}.fa-battery-2:before,.fa-battery-quarter:before{content:""}.fa-battery-4:before,.fa-battery-three-quarters:before{content:""}.fa-bed:before{content:""}.fa-bed-pulse:before,.fa-procedures:before{content:""}.fa-beer-mug-empty:before,.fa-beer:before{content:""}.fa-bell:before{content:""}.fa-bell-concierge:before,.fa-concierge-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bicycle:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-bitcoin-sign:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blog:before{content:""}.fa-bold:before{content:""}.fa-bolt:before,.fa-zap:before{content:""}.fa-bolt-lightning:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-atlas:before,.fa-book-atlas:before{content:""}.fa-bible:before,.fa-book-bible:before{content:""}.fa-book-journal-whills:before,.fa-journal-whills:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-open-reader:before,.fa-book-reader:before{content:""}.fa-book-quran:before,.fa-quran:before{content:""}.fa-book-dead:before,.fa-book-skull:before{content:""}.fa-bookmark:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before,.fa-border-top-left:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-archive:before,.fa-box-archive:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-brazilian-real-sign:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broom:before{content:""}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:""}.fa-brush:before{content:""}.fa-bug:before{content:""}.fa-bug-slash:before{content:""}.fa-building:before{content:""}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burger:before,.fa-hamburger:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before,.fa-bus-simple:before{content:""}.fa-briefcase-clock:before,.fa-business-time:before{content:""}.fa-c:before{content:"C"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-alt:before,.fa-calendar-days:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-week:before{content:""}.fa-calendar-times:before,.fa-calendar-xmark:before{content:""}.fa-camera-alt:before,.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-camera-rotate:before{content:""}.fa-campground:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-battery-car:before,.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-alt:before,.fa-car-rear:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:""}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-shopping:before,.fa-shopping-cart:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cedi-sign:before{content:""}.fa-cent-sign:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-blackboard:before,.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:""}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:""}.fa-charging-station:before{content:""}.fa-area-chart:before,.fa-chart-area:before{content:""}.fa-bar-chart:before,.fa-chart-bar:before{content:""}.fa-chart-column:before{content:""}.fa-chart-gantt:before{content:""}.fa-chart-line:before,.fa-line-chart:before{content:""}.fa-chart-pie:before,.fa-pie-chart:before{content:""}.fa-check:before{content:""}.fa-check-double:before{content:""}.fa-check-to-slot:before,.fa-vote-yea:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:""}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:""}.fa-check-circle:before,.fa-circle-check:before{content:""}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:""}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:""}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:""}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:""}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:""}.fa-circle-dot:before,.fa-dot-circle:before{content:""}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:""}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:""}.fa-circle-h:before,.fa-hospital-symbol:before{content:""}.fa-adjust:before,.fa-circle-half-stroke:before{content:""}.fa-circle-info:before,.fa-info-circle:before{content:""}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:""}.fa-circle-minus:before,.fa-minus-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-circle-pause:before,.fa-pause-circle:before{content:""}.fa-circle-play:before,.fa-play-circle:before{content:""}.fa-circle-plus:before,.fa-plus-circle:before{content:""}.fa-circle-question:before,.fa-question-circle:before{content:""}.fa-circle-radiation:before,.fa-radiation-alt:before{content:""}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:""}.fa-circle-stop:before,.fa-stop-circle:before{content:""}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:""}.fa-circle-user:before,.fa-user-circle:before{content:""}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:""}.fa-city:before{content:""}.fa-clapperboard:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock-four:before,.fa-clock:before{content:""}.fa-clock-rotate-left:before,.fa-history:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:""}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-clover:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-code-commit:before{content:""}.fa-code-compare:before{content:""}.fa-code-fork:before{content:""}.fa-code-merge:before{content:""}.fa-code-pull-request:before{content:""}.fa-coins:before{content:""}.fa-colon-sign:before{content:""}.fa-comment:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before,.fa-commenting:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comment-sms:before,.fa-sms:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compass-drafting:before,.fa-drafting-compass:before{content:""}.fa-compress:before{content:""}.fa-computer-mouse:before,.fa-mouse:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-couch:before{content:""}.fa-credit-card-alt:before,.fa-credit-card:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before,.fa-crop-simple:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-cruzeiro-sign:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-d:before{content:"D"}.fa-database:before{content:""}.fa-backspace:before,.fa-delete-left:before{content:""}.fa-democrat:before{content:""}.fa-desktop-alt:before,.fa-desktop:before{content:""}.fa-dharmachakra:before{content:""}.fa-diagram-next:before{content:""}.fa-diagram-predecessor:before{content:""}.fa-diagram-project:before,.fa-project-diagram:before{content:""}.fa-diagram-successor:before{content:""}.fa-diamond:before{content:""}.fa-diamond-turn-right:before,.fa-directions:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dna:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"$"}.fa-dolly-box:before,.fa-dolly:before{content:""}.fa-dong-sign:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dove:before{content:""}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:""}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:""}.fa-download:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-droplet:before,.fa-tint:before{content:""}.fa-droplet-slash:before,.fa-tint-slash:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-e:before{content:"E"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:""}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:""}.fa-earth-africa:before,.fa-globe-africa:before{content:""}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:""}.fa-earth-asia:before,.fa-globe-asia:before{content:""}.fa-earth-europe:before,.fa-globe-europe:before{content:""}.fa-earth-oceania:before,.fa-globe-oceania:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elevator:before{content:""}.fa-ellipsis-h:before,.fa-ellipsis:before{content:""}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:""}.fa-equals:before{content:"="}.fa-eraser:before{content:""}.fa-ethernet:before{content:""}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:""}.fa-exclamation:before{content:"!"}.fa-expand:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:""}.fa-eye-low-vision:before,.fa-low-vision:before{content:""}.fa-eye-slash:before{content:""}.fa-f:before{content:"F"}.fa-angry:before,.fa-face-angry:before{content:""}.fa-dizzy:before,.fa-face-dizzy:before{content:""}.fa-face-flushed:before,.fa-flushed:before{content:""}.fa-face-frown:before,.fa-frown:before{content:""}.fa-face-frown-open:before,.fa-frown-open:before{content:""}.fa-face-grimace:before,.fa-grimace:before{content:""}.fa-face-grin:before,.fa-grin:before{content:""}.fa-face-grin-beam:before,.fa-grin-beam:before{content:""}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:""}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:""}.fa-face-grin-squint:before,.fa-grin-squint:before{content:""}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:""}.fa-face-grin-stars:before,.fa-grin-stars:before{content:""}.fa-face-grin-tears:before,.fa-grin-tears:before{content:""}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:""}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:""}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:""}.fa-face-grin-wide:before,.fa-grin-alt:before{content:""}.fa-face-grin-wink:before,.fa-grin-wink:before{content:""}.fa-face-kiss:before,.fa-kiss:before{content:""}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:""}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:""}.fa-face-laugh:before,.fa-laugh:before{content:""}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:""}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:""}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:""}.fa-face-meh:before,.fa-meh:before{content:""}.fa-face-meh-blank:before,.fa-meh-blank:before{content:""}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:""}.fa-face-sad-cry:before,.fa-sad-cry:before{content:""}.fa-face-sad-tear:before,.fa-sad-tear:before{content:""}.fa-face-smile:before,.fa-smile:before{content:""}.fa-face-smile-beam:before,.fa-smile-beam:before{content:""}.fa-face-smile-wink:before,.fa-smile-wink:before{content:""}.fa-face-surprise:before,.fa-surprise:before{content:""}.fa-face-tired:before,.fa-tired:before{content:""}.fa-fan:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before,.fa-feather-pointed:before{content:""}.fa-file:before{content:""}.fa-file-arrow-down:before,.fa-file-download:before{content:""}.fa-file-arrow-up:before,.fa-file-upload:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-excel:before{content:""}.fa-arrow-right-from-file:before,.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-arrow-right-to-file:before,.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:""}.fa-file-medical:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-video:before{content:""}.fa-file-medical-alt:before,.fa-file-waveform:before{content:""}.fa-file-word:before{content:""}.fa-file-archive:before,.fa-file-zipper:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:""}.fa-filter-circle-xmark:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:""}.fa-burn:before,.fa-fire-flame-simple:before{content:""}.fa-fish:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-floppy-disk:before,.fa-save:before{content:""}.fa-florin-sign:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-folder-tree:before{content:""}.fa-font:before{content:""}.fa-football-ball:before,.fa-football:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before,.fa-forward-fast:before{content:""}.fa-forward-step:before,.fa-step-forward:before{content:""}.fa-franc-sign:before{content:""}.fa-frog:before{content:""}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:""}.fa-g:before{content:"G"}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:""}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:""}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:""}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-glasses:before{content:""}.fa-globe:before{content:""}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-greater-than:before{content:">"}.fa-greater-than-equal:before{content:""}.fa-grip-horizontal:before,.fa-grip:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-guarani-sign:before{content:""}.fa-guitar:before{content:""}.fa-gun:before{content:""}.fa-h:before{content:"H"}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-paper:before,.fa-hand:before{content:""}.fa-hand-back-fist:before,.fa-hand-rock:before{content:""}.fa-allergies:before,.fa-hand-dots:before{content:""}.fa-fist-raised:before,.fa-hand-fist:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:""}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:""}.fa-hands-bubbles:before,.fa-hands-wash:before{content:""}.fa-hands-clapping:before{content:""}.fa-hands-holding:before{content:""}.fa-hands-praying:before,.fa-praying-hands:before{content:""}.fa-handshake:before{content:""}.fa-hands-helping:before,.fa-handshake-angle:before{content:""}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-drive:before,.fa-hdd:before{content:""}.fa-hashtag:before{content:"#"}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-header:before,.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before,.fa-headphones-simple:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before,.fa-heart-crack:before{content:""}.fa-heart-pulse:before,.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:""}.fa-highlighter:before{content:""}.fa-hippo:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub-person:before,.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:""}.fa-hourglass-empty:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:""}.fa-home-lg:before,.fa-house-chimney:before{content:""}.fa-house-chimney-crack:before,.fa-house-damage:before{content:""}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:""}.fa-house-chimney-user:before{content:""}.fa-house-chimney-window:before{content:""}.fa-house-crack:before{content:""}.fa-house-laptop:before,.fa-laptop-house:before{content:""}.fa-house-medical:before{content:""}.fa-home-user:before,.fa-house-user:before{content:""}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:""}.fa-i:before{content:"I"}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-id-card-alt:before,.fa-id-card-clip:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-image-portrait:before,.fa-portrait:before{content:""}.fa-images:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-italic:before{content:""}.fa-j:before{content:"J"}.fa-jedi:before{content:""}.fa-fighter-jet:before,.fa-jet-fighter:before{content:""}.fa-joint:before{content:""}.fa-k:before{content:"K"}.fa-kaaba:before{content:""}.fa-key:before{content:""}.fa-keyboard:before{content:""}.fa-khanda:before{content:""}.fa-kip-sign:before{content:""}.fa-first-aid:before,.fa-kit-medical:before{content:""}.fa-kiwi-bird:before{content:""}.fa-l:before{content:"L"}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-medical:before{content:""}.fa-lari-sign:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:""}.fa-arrows-alt-h:before,.fa-left-right:before{content:""}.fa-lemon:before{content:""}.fa-less-than:before{content:"<"}.fa-less-than-equal:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:""}.fa-lira-sign:before{content:""}.fa-list-squares:before,.fa-list:before{content:""}.fa-list-check:before,.fa-tasks:before{content:""}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:""}.fa-list-dots:before,.fa-list-ul:before{content:""}.fa-litecoin-sign:before{content:""}.fa-location-arrow:before{content:""}.fa-location-crosshairs:before,.fa-location:before{content:""}.fa-location-dot:before,.fa-map-marker-alt:before{content:""}.fa-location-pin:before,.fa-map-marker:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-m:before{content:"M"}.fa-magnet:before{content:""}.fa-magnifying-glass:before,.fa-search:before{content:""}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:""}.fa-magnifying-glass-location:before,.fa-search-location:before{content:""}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:""}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:""}.fa-manat-sign:before{content:""}.fa-map:before{content:""}.fa-map-location:before,.fa-map-marked:before{content:""}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:""}.fa-map-pin:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-and-venus:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:""}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:""}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:""}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:""}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:""}.fa-mask:before{content:""}.fa-mask-face:before{content:""}.fa-masks-theater:before,.fa-theater-masks:before{content:""}.fa-expand-arrows-alt:before,.fa-maximize:before{content:""}.fa-medal:before{content:""}.fa-memory:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-comment-alt:before,.fa-message:before{content:""}.fa-meteor:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before,.fa-microphone-lines:before{content:""}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-mill-sign:before{content:""}.fa-compress-arrows-alt:before,.fa-minimize:before{content:""}.fa-minus:before,.fa-subtract:before{content:""}.fa-mitten:before{content:""}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-mobile-button:before{content:""}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:""}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mug-hot:before{content:""}.fa-coffee:before,.fa-mug-saucer:before{content:""}.fa-music:before{content:""}.fa-n:before{content:"N"}.fa-naira-sign:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-not-equal:before{content:""}.fa-note-sticky:before,.fa-sticky-note:before{content:""}.fa-notes-medical:before{content:""}.fa-o:before{content:"O"}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-oil-can:before{content:""}.fa-om:before{content:""}.fa-otter:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-p:before{content:"P"}.fa-pager:before{content:""}.fa-paint-roller:before{content:""}.fa-paint-brush:before,.fa-paintbrush:before{content:""}.fa-palette:before{content:""}.fa-pallet:before{content:""}.fa-panorama:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-passport:before{content:""}.fa-file-clipboard:before,.fa-paste:before{content:""}.fa-pause:before{content:""}.fa-paw:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before,.fa-pen-clip:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:""}.fa-edit:before,.fa-pen-to-square:before{content:""}.fa-pencil-alt:before,.fa-pencil:before{content:""}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:""}.fa-people-carry-box:before,.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-percent:before,.fa-percentage:before{content:"%"}.fa-male:before,.fa-person:before{content:""}.fa-biking:before,.fa-person-biking:before{content:""}.fa-person-booth:before{content:""}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:""}.fa-female:before,.fa-person-dress:before{content:""}.fa-hiking:before,.fa-person-hiking:before{content:""}.fa-person-praying:before,.fa-pray:before{content:""}.fa-person-running:before,.fa-running:before{content:""}.fa-person-skating:before,.fa-skating:before{content:""}.fa-person-skiing:before,.fa-skiing:before{content:""}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:""}.fa-person-snowboarding:before,.fa-snowboarding:before{content:""}.fa-person-swimming:before,.fa-swimmer:before{content:""}.fa-person-walking:before,.fa-walking:before{content:""}.fa-blind:before,.fa-person-walking-with-cane:before{content:""}.fa-peseta-sign:before{content:""}.fa-peso-sign:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before,.fa-phone-flip:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-volume:before,.fa-volume-control-phone:before{content:""}.fa-photo-film:before,.fa-photo-video:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-plug:before{content:""}.fa-add:before,.fa-plus:before{content:"+"}.fa-plus-minus:before{content:""}.fa-podcast:before{content:""}.fa-poo:before{content:""}.fa-poo-bolt:before,.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-power-off:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:""}.fa-print:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-puzzle-piece:before{content:""}.fa-q:before{content:"Q"}.fa-qrcode:before{content:""}.fa-question:before{content:"?"}.fa-quote-left-alt:before,.fa-quote-left:before{content:""}.fa-quote-right-alt:before,.fa-quote-right:before{content:""}.fa-r:before{content:"R"}.fa-radiation:before{content:""}.fa-rainbow:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-ad:before,.fa-rectangle-ad:before{content:""}.fa-list-alt:before,.fa-rectangle-list:before{content:""}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-recycle:before{content:""}.fa-registered:before{content:""}.fa-repeat:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-republican:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-ribbon:before{content:""}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:""}.fa-exchange-alt:before,.fa-right-left:before{content:""}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:""}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rotate:before,.fa-sync-alt:before{content:""}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:""}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:""}.fa-route:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-rupee-sign:before,.fa-rupee:before{content:""}.fa-rupiah-sign:before{content:""}.fa-s:before{content:"S"}.fa-sailboat:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-balance-scale:before,.fa-scale-balanced:before{content:""}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:""}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:""}.fa-school:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-screwdriver:before{content:""}.fa-screwdriver-wrench:before,.fa-tools:before{content:""}.fa-scroll:before{content:""}.fa-scroll-torah:before,.fa-torah:before{content:""}.fa-sd-card:before{content:""}.fa-section:before{content:""}.fa-seedling:before,.fa-sprout:before{content:""}.fa-server:before{content:""}.fa-shapes:before,.fa-triangle-circle-square:before{content:""}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:""}.fa-share-from-square:before,.fa-share-square:before{content:""}.fa-share-alt:before,.fa-share-nodes:before{content:""}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:""}.fa-shield:before{content:""}.fa-shield-alt:before,.fa-shield-blank:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:""}.fa-shoe-prints:before{content:""}.fa-shop:before,.fa-store-alt:before{content:""}.fa-shop-slash:before,.fa-store-alt-slash:before{content:""}.fa-shower:before{content:""}.fa-shrimp:before{content:""}.fa-random:before,.fa-shuffle:before{content:""}.fa-shuttle-space:before,.fa-space-shuttle:before{content:""}.fa-sign-hanging:before,.fa-sign:before{content:""}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-map-signs:before,.fa-signs-post:before{content:""}.fa-sim-card:before{content:""}.fa-sink:before{content:""}.fa-sitemap:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before,.fa-sliders:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-spa:before{content:""}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spoon:before,.fa-utensil-spoon:before{content:""}.fa-spray-can:before{content:""}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:""}.fa-square:before{content:""}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:""}.fa-caret-square-down:before,.fa-square-caret-down:before{content:""}.fa-caret-square-left:before,.fa-square-caret-left:before{content:""}.fa-caret-square-right:before,.fa-square-caret-right:before{content:""}.fa-caret-square-up:before,.fa-square-caret-up:before{content:""}.fa-check-square:before,.fa-square-check:before{content:""}.fa-envelope-square:before,.fa-square-envelope:before{content:""}.fa-square-full:before{content:""}.fa-h-square:before,.fa-square-h:before{content:""}.fa-minus-square:before,.fa-square-minus:before{content:""}.fa-parking:before,.fa-square-parking:before{content:""}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:""}.fa-phone-square:before,.fa-square-phone:before{content:""}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:""}.fa-plus-square:before,.fa-square-plus:before{content:""}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:""}.fa-poll:before,.fa-square-poll-vertical:before{content:""}.fa-square-root-alt:before,.fa-square-root-variable:before{content:""}.fa-rss-square:before,.fa-square-rss:before{content:""}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:""}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:""}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:""}.fa-stairs:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:""}.fa-stethoscope:before{content:""}.fa-stop:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-slash:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stroopwafel:before{content:""}.fa-subscript:before{content:""}.fa-suitcase:before{content:""}.fa-medkit:before,.fa-suitcase-medical:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superscript:before{content:""}.fa-swatchbook:before{content:""}.fa-synagogue:before{content:""}.fa-syringe:before{content:""}.fa-t:before{content:"T"}.fa-table:before{content:""}.fa-table-cells:before,.fa-th:before{content:""}.fa-table-cells-large:before,.fa-th-large:before{content:""}.fa-columns:before,.fa-table-columns:before{content:""}.fa-table-list:before,.fa-th-list:before{content:""}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:""}.fa-tablet-android:before,.fa-tablet:before{content:""}.fa-tablet-button:before{content:""}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:""}.fa-tablets:before{content:""}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:""}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-tenge-sign:before,.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-remove-format:before,.fa-text-slash:before{content:""}.fa-text-width:before{content:""}.fa-thermometer:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumb-tack:before,.fa-thumbtack:before{content:""}.fa-ticket:before{content:""}.fa-ticket-alt:before,.fa-ticket-simple:before{content:""}.fa-timeline:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tooth:before{content:""}.fa-torii-gate:before{content:""}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:""}.fa-tractor:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-subway:before,.fa-train-subway:before{content:""}.fa-train-tram:before,.fa-tram:before{content:""}.fa-transgender-alt:before,.fa-transgender:before{content:""}.fa-trash:before{content:""}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:""}.fa-trash-alt:before,.fa-trash-can:before{content:""}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-shipping-fast:before,.fa-truck-fast:before{content:""}.fa-ambulance:before,.fa-truck-medical:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:""}.fa-teletype:before,.fa-tty:before{content:""}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:""}.fa-level-down-alt:before,.fa-turn-down:before{content:""}.fa-level-up-alt:before,.fa-turn-up:before{content:""}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:""}.fa-u:before{content:"U"}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-underline:before{content:""}.fa-universal-access:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:""}.fa-arrows-alt-v:before,.fa-up-down:before{content:""}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:""}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:""}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:""}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:""}.fa-upload:before{content:""}.fa-user:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-clock:before{content:""}.fa-user-doctor:before,.fa-user-md:before{content:""}.fa-user-cog:before,.fa-user-gear:before{content:""}.fa-user-graduate:before{content:""}.fa-user-friends:before,.fa-user-group:before{content:""}.fa-user-injured:before{content:""}.fa-user-alt:before,.fa-user-large:before{content:""}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:""}.fa-user-lock:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-edit:before,.fa-user-pen:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before,.fa-user-xmark:before{content:""}.fa-users:before{content:""}.fa-users-cog:before,.fa-users-gear:before{content:""}.fa-users-slash:before{content:""}.fa-cutlery:before,.fa-utensils:before{content:""}.fa-v:before{content:"V"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:""}.fa-vault:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-vest:before{content:""}.fa-vest-patches:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-video-camera:before,.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-virus:before{content:""}.fa-virus-covid:before{content:""}.fa-virus-covid-slash:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before,.fa-volleyball:before{content:""}.fa-volume-high:before,.fa-volume-up:before{content:""}.fa-volume-down:before,.fa-volume-low:before{content:""}.fa-volume-off:before{content:""}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:""}.fa-vr-cardboard:before{content:""}.fa-w:before{content:"W"}.fa-wallet:before{content:""}.fa-magic:before,.fa-wand-magic:before{content:""}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:""}.fa-wand-sparkles:before{content:""}.fa-warehouse:before{content:""}.fa-water:before{content:""}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:""}.fa-wave-square:before{content:""}.fa-weight-hanging:before{content:""}.fa-weight-scale:before,.fa-weight:before{content:""}.fa-wheelchair:before{content:""}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:""}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:""}.fa-wind:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:""}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:""}.fa-wrench:before{content:""}.fa-x:before{content:"X"}.fa-x-ray:before{content:""}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:""}.fa-y:before{content:"Y"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:""}.fa-yin-yang:before{content:""}.fa-z:before{content:"Z"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*! +@charset "UTF-8";.popup[data-v-a154651e]{stroke:var(--color-axis);stroke-width:.2;opacity:1}.popup-textbox[data-v-a154651e]{text-anchor:middle}.popup-title[data-v-a154651e]{font-size:14px}.popup-content[data-v-a154651e]{font-size:17px}.form-select[data-v-98690e5d]{background-color:var(--color-input);border:1;border-color:var(--color-bg);color:var(--color-bg);text-align:start;font-size:var(--font-small)}.commitbutton[data-v-98690e5d]{background-color:var(--color-bg);color:var(--color-input)}option[data-v-98690e5d]{color:green}.form-select[data-v-98690e5d]{font-size:var(--font-verysmall);background-color:var(--color-menu);color:var(--color-fg)}.optiontable[data-v-98690e5d]{background-color:var(--color-menu)}.optionbutton[data-v-98690e5d]{font-size:var(--font-small);color:#fff;background-color:var(--color-menu);font-size:var(--font-verysmall);text-align:center}.dropdown-menu[data-v-98690e5d]{background-color:var(--color-menu)}.dropdown-toggle[data-v-98690e5d]{background-color:var(--color-menu);color:#fff;border:1px solid var(--color-bg);font-size:var(--font-verysmall)}.radiobutton[data-v-82ab6829]{border:0px solid var(--color-menu);opacity:1}.btn-outline-secondary.active[data-v-82ab6829]{background-color:var(--color-bg);border:0px solid var(--color-fg);opacity:.8}.btn-group[data-v-82ab6829]{border:1px solid var(--color-menu)}.rounded-pill[data-v-d75ec1a4]{background-color:var(--color-menu)}.arrowButton[data-v-d75ec1a4]{border:0}.datebadge[data-v-d75ec1a4]{background-color:var(--color-bg);color:var(--color-menu);border:1px solid var(--color-menu);font-size:var(--font-small);font-weight:400}.arrowButton[data-v-d75ec1a4],.fa-magnifying-glass[data-v-d40bf528],.fa-magnifying-glass[data-v-32c82102],.fa-magnifying-glass[data-v-dc8e49b2]{color:var(--color-menu)}.heading[data-v-f6af00e8]{color:var(--color-menu);font-weight:400;text-align:center}.content[data-v-f6af00e8]{color:var(--color-fg);font-weight:700}@supports (grid-template-columns: subgrid){.wb-subwidget[data-v-2aa2b95f]{border-top:.5px solid var(--color-scale);display:grid;grid-template-columns:subgrid;grid-column:1 / 13}.wb-subwidget-noborder[data-v-2aa2b95f]{margin-top:20px;display:grid;grid-template-columns:subgrid;grid-column:1 / 13;padding-top:10px}}@supports not (grid-template-columns: subgrid){.wb-subwidget[data-v-2aa2b95f]{border-top:.5px solid var(--color-scale);display:grid;grid-template-columns:repeat(12,auto);grid-column:1 / 13}.wb-subwidget-noborder[data-v-2aa2b95f]{margin-top:20px;display:grid;grid-template-columns:subgrid;grid-column:1 / 13}}.titlerow[data-v-2aa2b95f]{grid-column:1 / 13}@supports (grid-template-columns: subgrid){.contentrow[data-v-2aa2b95f]{display:grid;grid-template-columns:subgrid;grid-column:1 / 13;align-items:top}}@supports not (grid-template-columns: subgrid){.contentrow[data-v-2aa2b95f]{display:grid;align-items:top;grid-template-columns:repeat(12,auto)}}.widgetname[data-v-2aa2b95f]{font-weight:700;font-size:var(--font-large)}.infotext[data-v-25ab3fbb]{font-size:var(--font-settings);color:var(--color-battery)}.item-icon[data-v-25ab3fbb]{color:var(--color-menu);font-size:var(--font-settings)}.titlecolumn[data-v-25ab3fbb]{color:var(--color-fg);font-size:var(--font-settings);flex-grow:1}.selectors[data-v-25ab3fbb]{font-size:var(--font-settings)}.configitem[data-v-25ab3fbb]{font-size:var(--font-settings);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%}.contentrow[data-v-25ab3fbb]{display:flex;height:100%;width:100%}.minlabel[data-v-af945965],.maxlabel[data-v-af945965]{color:var(--color-menu)}.valuelabel[data-v-af945965]{color:var(--color-fg)}.minusButton[data-v-af945965],.plusButton[data-v-af945965]{color:var(--color-menu)}.rangeIndicator[data-v-af945965]{margin:0;padding:0;line-height:10px}.rangeinput[data-v-af945965]{width:100%}.radiobutton[data-v-88c9ea7a]{border:.2px solid var(--color-menu);opacity:1;font-size:var(--font-settings-button);border-radius:0}.btn-outline-secondary.active[data-v-88c9ea7a]{background-color:var(--color-fg);border:1px solid var(--color-menu);box-shadow:0 .5rem 1rem #00000026;opacity:1}.buttongrid[data-v-88c9ea7a]{display:grid;border:1px solid var(--color-menu);border-radius:.5rem;justify-items:stretch;justify-self:stretch;width:100%}.chargeConfigSelect[data-v-de6b86dd]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-de6b86dd]{color:var(--color-charging);font-size:var(--font-settings);font-weight:700}.chargeConfigSelect[data-v-d7ee4d2a]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-d7ee4d2a]{color:var(--color-pv);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-d7ee4d2a]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-d7ee4d2a]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-d7ee4d2a]{margin-right:5px}.heading[data-v-2f5cb5c1]{font-size:var(--font-settings);color:var(--color-charging);font-weight:700;margin-bottom:.5rem}.plandetails[data-v-2f5cb5c1]{display:flex;flex-direction:column}.tablecell[data-v-08df44d8]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;font-size:var(--font-settings)}.tableheader[data-v-08df44d8]{color:var(--color-menu);background-color:var(--color-bg);text-align:center;font-style:normal}.heading[data-v-08df44d8]{color:var(--color-battery);font-size:var(--font-settings);font-weight:700}.left[data-v-08df44d8]{text-align:left}.text-bold[data-v-08df44d8]{font-weight:700}.text-normal[data-v-08df44d8]{font-weight:400}.fa-circle-info[data-v-08df44d8]{color:var(--color-charging);cursor:pointer}.heading[data-v-eaa44cb2]{font-size:var(--font-settings);color:var(--color-charging);font-weight:700;margin-bottom:.5rem}.plandetails[data-v-eaa44cb2]{display:flex;flex-direction:column}.tablecell[data-v-543e8ca2]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;font-size:var(--font-settings)}.tableheader[data-v-543e8ca2]{color:var(--color-menu);background-color:var(--color-bg);text-align:center;font-style:normal}.heading[data-v-543e8ca2]{color:var(--color-battery);font-size:var(--font-settings);font-weight:700}.left[data-v-543e8ca2]{text-align:left}.right[data-v-543e8ca2]{text-align:right}.text-bold[data-v-543e8ca2]{font-weight:700}.text-normal[data-v-543e8ca2]{font-weight:400}.fa-circle-info[data-v-543e8ca2]{color:var(--color-charging);cursor:pointer}.color-charging[data-v-28b81885]{color:var(--color-charging)}.fa-circle-check[data-v-28b81885]{color:var(--color-menu)}.settingsheader[data-v-28b81885]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-28b81885]{color:var(--color-axis);font-size:16px}.jumpbutton[data-v-28b81885]{background-color:var(--color-menu);color:var(--color-bg);border:0;font-size:var(--font-settings-button)}.confirmButton[data-v-28b81885]{font-size:var(--font-settings-button)}.chargeConfigSelect[data-v-106a9fca]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-106a9fca]{color:var(--color-devices);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-106a9fca]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-106a9fca]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-106a9fca]{margin-right:5px}.status-string[data-v-e6ae9e07]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-e6ae9e07]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-e6ae9e07]{background:green;color:#00f}.nav-tabs .nav-link[data-v-e6ae9e07]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-e6ae9e07]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-e6ae9e07]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:1px solid var(--color-menu)}.settingsheader[data-v-e6ae9e07]{color:var(--color-charging);font-size:16px;font-weight:700}hr[data-v-e6ae9e07]{color:var(--color-menu)}.status-string[data-v-cd92fe69]{font-size:var(--font-settings);font-style:italic;color:var(--color-battery)}.nav-tabs .nav-link[data-v-cd92fe69]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-cd92fe69]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-cd92fe69]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:0px solid var(--color-menu)}.heading[data-v-cd92fe69]{color:var(--color-menu)}.item[data-v-cd92fe69]{grid-column:span 12}.tabarea[data-v-cd92fe69]{justify-self:stretch}.wb-widget[data-v-fb6ac7a4]{width:100%;height:100%;border-radius:30px}.widgetname[data-v-fb6ac7a4]{font-weight:700;color:var(--color-fg);font-size:var(--font-large)}.batIcon[data-v-a68c844a]{color:var(--color-menu)}.pillWbBadge[data-v-36112fa3]{font-size:(var--font-small);font-weight:regular;display:flex;justify-content:center;align-items:center}.targetCurrent[data-v-2cc82367]{color:var(--color-menu)}.fa-star[data-v-e3fcbd86]{color:var(--color-evu)}.fa-clock[data-v-e3fcbd86]{color:var(--color-charging)}.fa-car[data-v-e3fcbd86],.fa-circle-check[data-v-e3fcbd86]{color:var(--color-menu)}.socEditor[data-v-e3fcbd86],.priceEditor[data-v-e3fcbd86]{border:1px solid var(--color-menu);justify-self:stretch}.chargemodes[data-v-e3fcbd86]{grid-column:1 / 13;justify-self:center}.chargeinfo[data-v-e3fcbd86]{display:grid;grid-template-columns:repeat(12,auto);justify-content:space-between}.divider[data-v-e3fcbd86]{border-top:1px solid var(--color-fg);width:100%}.carSelector[data-v-e3fcbd86]{border:1px solid var(--color-menu);font-size:var(--font-settings);border-radius:3px;display:flex;flex-direction:column}.fa-ellipsis-vertical[data-v-b35defc2],.fa-circle-check[data-v-b35defc2]{color:var(--color-menu)}.errorWbBadge[data-v-b35defc2]{color:var(--color-bg);background-color:var(--color-evu);font-size:var(--font-small)}.close-config-button[data-v-b35defc2]{background:var(--color-menu);color:var(--color-bg);grid-column:11 / span 2;font-size:var(--font-settings-button)}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.modal-footer[data-v-eaefae30],.modal-header[data-v-eaefae30],.modal-body[data-v-eaefae30]{background:var(--color-bg)}.btn-close[data-v-eaefae30]{color:var(--color-fg)}.modal-footer[data-v-eaefae30]{text-align:right}.modal-header .btn-close[data-v-eaefae30]{color:var(--color-fg);background:var(--color-bg);border:0px}.modal.fade .modal-dialog[data-v-eaefae30]{transition:transform 1s ease-out;transform:none;scale:.6}.modal.show .modal-dialog[data-v-eaefae30]{transition:transform .3s ease-in;transform:none;scale:1}.tablerow[data-v-9260919a]{margin:14px;border-top:.1px solid var(--color-scale)}.tablecell[data-v-9260919a]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;padding-top:2px;padding-left:2px;padding-right:2px;vertical-align:baseline;line-height:1.4rem;font-size:var(--font-small)}.buttoncell[data-v-9260919a]{background-color:var(--color-bg);padding:0;margin:0}.left[data-v-9260919a]{text-align:left}.tablecell.right[data-v-9260919a]{text-align:right}.tablecolum1[data-v-9260919a]{color:var(--color-fg);text-align:left;margin:0;padding:0}.tableicon[data-v-9260919a]{color:var(--color-menu)}.fa-star[data-v-9260919a]{color:var(--color-evu)}.fa-clock[data-v-9260919a]{color:var(--color-battery)}.socEditor[data-v-9260919a]{border:1px solid var(--color-menu);background-color:var(--color-bg)}.socEditRow td[data-v-9260919a]{background-color:var(--color-bg)}.fa-circle-check[data-v-9260919a]{color:var(--color-menu)}.socEditTitle[data-v-9260919a]{color:var(--color-fg)}.statusbadge[data-v-9260919a]{background-color:var(--color-bg);font-weight:700;font-size:var(--font-verysmall)}.modebadge[data-v-9260919a]{color:var(--color-bg)}.cpname[data-v-9260919a]{font-size:var(--font-small)}.fa-edit[data-v-9260919a]{color:var(--color-menu)}.infolist[data-v-9260919a]{justify-content:center}.tableheader[data-v-b8c6b557]{margin:0;padding-left:0;background-color:var(--color-bg);color:var(--color-menu)}.alignleft[data-v-b8c6b557]{text-align:left}.aligncenter[data-v-b8c6b557]{text-align:center}.alignright[data-v-b8c6b557]{text-align:right}.table[data-v-b8c6b557]{border-spacing:1rem;background-color:var(--color-bg)}.priceWbBadge[data-v-b8c6b557]{background-color:var(--color-menu);font-weight:400}.fa-charging-station[data-v-b8c6b557]{color:var(--color-charging)}.plugIndicator[data-v-71bb7e5f]{color:#fff;border:1px solid white}.chargeButton[data-v-71bb7e5f]{color:#fff}.left[data-v-71bb7e5f]{float:left}.right[data-v-71bb7e5f]{float:right}.center[data-v-71bb7e5f]{margin:auto}.time-display[data-v-791e4be0]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.battery-title[data-v-f7f825f7]{color:var(--color-battery);font-size:var(--font-medium)}.battery-color[data-v-c2a8727a]{color:var(--color-battery)}.fg-color[data-v-c2a8727a]{color:var(--color-fg)}.menu-color[data-v-c2a8727a],.todaystring[data-v-c2a8727a]{color:var(--color-menu)}.devicename[data-v-20651ac6]{font-size:var(--font-medium)}.statusbutton[data-v-20651ac6]{font-size:var(--font-extralarge)}.sh-title[data-v-5b5cf6b3]{color:var(--color-title)}.tableheader[data-v-5b5cf6b3]{background-color:var(--color-bg);color:var(--color-menu)}.fa-ellipsis-vertical[data-v-5b5cf6b3],.fa-circle-check[data-v-5b5cf6b3]{color:var(--color-menu)}.smarthome[data-v-5b5cf6b3]{color:var(--color-devices)}.idWbBadge[data-v-01dd8c4d]{background-color:var(--color-menu);font-weight:400}.countername[data-v-01dd8c4d]{font-size:var(--font-medium)}.statusbutton[data-v-5f059284]{font-size:var(--font-large)}.modebutton[data-v-5f059284]{background-color:var(--color-menu);font-size:var(--font-verysmall);font-weight:400}.tempWbBadge[data-v-5f059284]{background-color:var(--color-battery);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.idWbBadge[data-v-9e2cb63e]{background-color:var(--color-menu);font-weight:400}.status-string[data-v-9e2cb63e]{text-align:center}.vehiclename[data-v-9e2cb63e]{font-size:var(--font-medium)}.statusbutton[data-v-716be083]{font-size:var(--font-large)}.modebutton[data-v-716be083]{background-color:var(--color-menu);font-size:var(--font-verysmall);font-weight:400}.tempWbBadge[data-v-716be083]{background-color:var(--color-battery);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.priceWbBadge[data-v-578b98b5]{background-color:var(--color-charging);font-weight:400}.providerWbBadge[data-v-578b98b5]{background-color:var(--color-menu);font-weight:400}.grapharea[data-v-578b98b5]{grid-column-start:1;grid-column-end:13;width:100%;object-fit:cover;max-height:100%;justify-items:stretch}.pricefigure[data-v-578b98b5]{justify-self:stretch}.modeWbBadge[data-v-258d8f17]{background-color:var(--color-pv);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.invertername[data-v-258d8f17]{font-size:var(--font-medium)}.powerWbBadge[data-v-8a9444cf]{background-color:var(--color-pv);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.button[data-v-17424929]{color:var(--color-fg)}.name[data-v-df7e578a]{font-size:1rem;color:#000;border:1px solid white}.content[data-v-df7e578a]{grid-column:1 / -1;border:solid 1px black;border-radius:10px}.sublist[data-v-df7e578a]{grid-column:1 / -1;display:grid;grid-template-columns:subgrid}.mqviewer[data-v-a349646d]{background-color:#fff;color:#000}.topiclist[data-v-a349646d]{display:grid;grid-template-columns:repeat(40,1fr)}.topnode[data-v-a349646d]{grid-column-start:1;grid-column-end:-1}.mqtitle[data-v-a349646d]{color:#000}.form-select[data-v-5e33ce1f]{background-color:var(--color-input);color:#000;border:1px solid var(--color-bg);font-size:var(--font-settings)}.fa-circle-check[data-v-785bc80b]{font-size:var(--font-large);background-color:var(--color-bg);color:var(--color-menu)}.closebutton[data-v-785bc80b]{justify-self:end}.settingscolumn[data-v-785bc80b]{padding:20px}.nav-tabs[data-v-9648e6c5]{border-bottom:.5px solid var(--color-menu);background-color:var(--color-bg)}.nav-tabs .nav-link[data-v-9648e6c5]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-9648e6c5]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-9648e6c5]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:.5px solid var(--color-menu);border-bottom:0px solid var(--color-menu);box-shadow:0 .5rem 1rem #00000026}.fa-circle-info[data-v-9648e6c5]{color:var(--color-fg)}.fa-charging-station[data-v-9648e6c5]{color:var(--color-charging)}.fa-car-battery[data-v-9648e6c5]{color:var(--color-battery)}.fa-plug[data-v-9648e6c5]{color:var(--color-devices)}.fa-bolt[data-v-9648e6c5]{color:var(--color-evu)}.fa-car[data-v-9648e6c5]{color:var(--color-charging)}.fa-coins[data-v-9648e6c5]{color:var(--color-battery)}.fa-solar-panel[data-v-9648e6c5]{color:var(--color-pv)}.navbar[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.dropdown-menu[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg)}.dropdown-item[data-v-ed619966]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.btn[data-v-ed619966]{font-size:var(--font-medium);background-color:var(--color-bg);color:var(--color-fg)}.navbar-brand[data-v-ed619966]{font-weight:700;color:var(--color-fg);font-size:var(--font-normal)}.nav-link[data-v-ed619966]{color:var(--color-fg);border-color:red;font-size:var(--font-normal)}.navbar-toggler[data-v-ed619966]{color:var(--color-fg);border-color:var(--color-bg)}.navbar-time[data-v-ed619966]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius, .1em);border:var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) )}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration, 2s);animation-duration:var(--fa-animation-duration, 2s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, steps(8));animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle, none));transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-a:before{content:"A"}.fa-address-book:before,.fa-contact-book:before{content:""}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-anchor:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-double-down:before,.fa-angles-down:before{content:""}.fa-angle-double-left:before,.fa-angles-left:before{content:""}.fa-angle-double-right:before,.fa-angles-right:before{content:""}.fa-angle-double-up:before,.fa-angles-up:before{content:""}.fa-ankh:before{content:""}.fa-apple-alt:before,.fa-apple-whole:before{content:""}.fa-archway:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:""}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:""}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:""}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:""}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:""}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:""}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:""}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:""}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:""}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:""}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:""}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:""}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:""}.fa-arrow-trend-down:before{content:""}.fa-arrow-trend-up:before{content:""}.fa-arrow-turn-down:before,.fa-level-down:before{content:""}.fa-arrow-turn-up:before,.fa-level-up:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:""}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:""}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:""}.fa-arrow-up-from-bracket:before{content:""}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:""}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:""}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:""}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:""}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:""}.fa-arrows-h:before,.fa-arrows-left-right:before{content:""}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:""}.fa-arrows-up-down:before,.fa-arrows-v:before{content:""}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:""}.fa-asterisk:before{content:"*"}.fa-at:before{content:"@"}.fa-atom:before{content:""}.fa-audio-description:before{content:""}.fa-austral-sign:before{content:""}.fa-award:before{content:""}.fa-b:before{content:"B"}.fa-baby:before{content:""}.fa-baby-carriage:before,.fa-carriage-baby:before{content:""}.fa-backward:before{content:""}.fa-backward-fast:before,.fa-fast-backward:before{content:""}.fa-backward-step:before,.fa-step-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bag-shopping:before,.fa-shopping-bag:before{content:""}.fa-bahai:before{content:""}.fa-baht-sign:before{content:""}.fa-ban:before,.fa-cancel:before{content:""}.fa-ban-smoking:before,.fa-smoking-ban:before{content:""}.fa-band-aid:before,.fa-bandage:before{content:""}.fa-barcode:before{content:""}.fa-bars:before,.fa-navicon:before{content:""}.fa-bars-progress:before,.fa-tasks-alt:before{content:""}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:""}.fa-baseball-ball:before,.fa-baseball:before{content:""}.fa-baseball-bat-ball:before{content:""}.fa-basket-shopping:before,.fa-shopping-basket:before{content:""}.fa-basketball-ball:before,.fa-basketball:before{content:""}.fa-bath:before,.fa-bathtub:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-half:before{content:""}.fa-battery-2:before,.fa-battery-quarter:before{content:""}.fa-battery-4:before,.fa-battery-three-quarters:before{content:""}.fa-bed:before{content:""}.fa-bed-pulse:before,.fa-procedures:before{content:""}.fa-beer-mug-empty:before,.fa-beer:before{content:""}.fa-bell:before{content:""}.fa-bell-concierge:before,.fa-concierge-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bicycle:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-bitcoin-sign:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blog:before{content:""}.fa-bold:before{content:""}.fa-bolt:before,.fa-zap:before{content:""}.fa-bolt-lightning:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-atlas:before,.fa-book-atlas:before{content:""}.fa-bible:before,.fa-book-bible:before{content:""}.fa-book-journal-whills:before,.fa-journal-whills:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-open-reader:before,.fa-book-reader:before{content:""}.fa-book-quran:before,.fa-quran:before{content:""}.fa-book-dead:before,.fa-book-skull:before{content:""}.fa-bookmark:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before,.fa-border-top-left:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-archive:before,.fa-box-archive:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-brazilian-real-sign:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broom:before{content:""}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:""}.fa-brush:before{content:""}.fa-bug:before{content:""}.fa-bug-slash:before{content:""}.fa-building:before{content:""}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burger:before,.fa-hamburger:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before,.fa-bus-simple:before{content:""}.fa-briefcase-clock:before,.fa-business-time:before{content:""}.fa-c:before{content:"C"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-alt:before,.fa-calendar-days:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-week:before{content:""}.fa-calendar-times:before,.fa-calendar-xmark:before{content:""}.fa-camera-alt:before,.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-camera-rotate:before{content:""}.fa-campground:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-battery-car:before,.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-alt:before,.fa-car-rear:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:""}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-shopping:before,.fa-shopping-cart:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cedi-sign:before{content:""}.fa-cent-sign:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-blackboard:before,.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:""}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:""}.fa-charging-station:before{content:""}.fa-area-chart:before,.fa-chart-area:before{content:""}.fa-bar-chart:before,.fa-chart-bar:before{content:""}.fa-chart-column:before{content:""}.fa-chart-gantt:before{content:""}.fa-chart-line:before,.fa-line-chart:before{content:""}.fa-chart-pie:before,.fa-pie-chart:before{content:""}.fa-check:before{content:""}.fa-check-double:before{content:""}.fa-check-to-slot:before,.fa-vote-yea:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:""}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:""}.fa-check-circle:before,.fa-circle-check:before{content:""}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:""}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:""}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:""}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:""}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:""}.fa-circle-dot:before,.fa-dot-circle:before{content:""}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:""}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:""}.fa-circle-h:before,.fa-hospital-symbol:before{content:""}.fa-adjust:before,.fa-circle-half-stroke:before{content:""}.fa-circle-info:before,.fa-info-circle:before{content:""}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:""}.fa-circle-minus:before,.fa-minus-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-circle-pause:before,.fa-pause-circle:before{content:""}.fa-circle-play:before,.fa-play-circle:before{content:""}.fa-circle-plus:before,.fa-plus-circle:before{content:""}.fa-circle-question:before,.fa-question-circle:before{content:""}.fa-circle-radiation:before,.fa-radiation-alt:before{content:""}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:""}.fa-circle-stop:before,.fa-stop-circle:before{content:""}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:""}.fa-circle-user:before,.fa-user-circle:before{content:""}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:""}.fa-city:before{content:""}.fa-clapperboard:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock-four:before,.fa-clock:before{content:""}.fa-clock-rotate-left:before,.fa-history:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:""}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-clover:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-code-commit:before{content:""}.fa-code-compare:before{content:""}.fa-code-fork:before{content:""}.fa-code-merge:before{content:""}.fa-code-pull-request:before{content:""}.fa-coins:before{content:""}.fa-colon-sign:before{content:""}.fa-comment:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before,.fa-commenting:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comment-sms:before,.fa-sms:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compass-drafting:before,.fa-drafting-compass:before{content:""}.fa-compress:before{content:""}.fa-computer-mouse:before,.fa-mouse:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-couch:before{content:""}.fa-credit-card-alt:before,.fa-credit-card:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before,.fa-crop-simple:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-cruzeiro-sign:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-d:before{content:"D"}.fa-database:before{content:""}.fa-backspace:before,.fa-delete-left:before{content:""}.fa-democrat:before{content:""}.fa-desktop-alt:before,.fa-desktop:before{content:""}.fa-dharmachakra:before{content:""}.fa-diagram-next:before{content:""}.fa-diagram-predecessor:before{content:""}.fa-diagram-project:before,.fa-project-diagram:before{content:""}.fa-diagram-successor:before{content:""}.fa-diamond:before{content:""}.fa-diamond-turn-right:before,.fa-directions:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dna:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"$"}.fa-dolly-box:before,.fa-dolly:before{content:""}.fa-dong-sign:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dove:before{content:""}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:""}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:""}.fa-download:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-droplet:before,.fa-tint:before{content:""}.fa-droplet-slash:before,.fa-tint-slash:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-e:before{content:"E"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:""}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:""}.fa-earth-africa:before,.fa-globe-africa:before{content:""}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:""}.fa-earth-asia:before,.fa-globe-asia:before{content:""}.fa-earth-europe:before,.fa-globe-europe:before{content:""}.fa-earth-oceania:before,.fa-globe-oceania:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elevator:before{content:""}.fa-ellipsis-h:before,.fa-ellipsis:before{content:""}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:""}.fa-equals:before{content:"="}.fa-eraser:before{content:""}.fa-ethernet:before{content:""}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:""}.fa-exclamation:before{content:"!"}.fa-expand:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:""}.fa-eye-low-vision:before,.fa-low-vision:before{content:""}.fa-eye-slash:before{content:""}.fa-f:before{content:"F"}.fa-angry:before,.fa-face-angry:before{content:""}.fa-dizzy:before,.fa-face-dizzy:before{content:""}.fa-face-flushed:before,.fa-flushed:before{content:""}.fa-face-frown:before,.fa-frown:before{content:""}.fa-face-frown-open:before,.fa-frown-open:before{content:""}.fa-face-grimace:before,.fa-grimace:before{content:""}.fa-face-grin:before,.fa-grin:before{content:""}.fa-face-grin-beam:before,.fa-grin-beam:before{content:""}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:""}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:""}.fa-face-grin-squint:before,.fa-grin-squint:before{content:""}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:""}.fa-face-grin-stars:before,.fa-grin-stars:before{content:""}.fa-face-grin-tears:before,.fa-grin-tears:before{content:""}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:""}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:""}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:""}.fa-face-grin-wide:before,.fa-grin-alt:before{content:""}.fa-face-grin-wink:before,.fa-grin-wink:before{content:""}.fa-face-kiss:before,.fa-kiss:before{content:""}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:""}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:""}.fa-face-laugh:before,.fa-laugh:before{content:""}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:""}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:""}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:""}.fa-face-meh:before,.fa-meh:before{content:""}.fa-face-meh-blank:before,.fa-meh-blank:before{content:""}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:""}.fa-face-sad-cry:before,.fa-sad-cry:before{content:""}.fa-face-sad-tear:before,.fa-sad-tear:before{content:""}.fa-face-smile:before,.fa-smile:before{content:""}.fa-face-smile-beam:before,.fa-smile-beam:before{content:""}.fa-face-smile-wink:before,.fa-smile-wink:before{content:""}.fa-face-surprise:before,.fa-surprise:before{content:""}.fa-face-tired:before,.fa-tired:before{content:""}.fa-fan:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before,.fa-feather-pointed:before{content:""}.fa-file:before{content:""}.fa-file-arrow-down:before,.fa-file-download:before{content:""}.fa-file-arrow-up:before,.fa-file-upload:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-excel:before{content:""}.fa-arrow-right-from-file:before,.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-arrow-right-to-file:before,.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:""}.fa-file-medical:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-video:before{content:""}.fa-file-medical-alt:before,.fa-file-waveform:before{content:""}.fa-file-word:before{content:""}.fa-file-archive:before,.fa-file-zipper:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:""}.fa-filter-circle-xmark:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:""}.fa-burn:before,.fa-fire-flame-simple:before{content:""}.fa-fish:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-floppy-disk:before,.fa-save:before{content:""}.fa-florin-sign:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-folder-tree:before{content:""}.fa-font:before{content:""}.fa-football-ball:before,.fa-football:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before,.fa-forward-fast:before{content:""}.fa-forward-step:before,.fa-step-forward:before{content:""}.fa-franc-sign:before{content:""}.fa-frog:before{content:""}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:""}.fa-g:before{content:"G"}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:""}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:""}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:""}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-glasses:before{content:""}.fa-globe:before{content:""}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-greater-than:before{content:">"}.fa-greater-than-equal:before{content:""}.fa-grip-horizontal:before,.fa-grip:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-guarani-sign:before{content:""}.fa-guitar:before{content:""}.fa-gun:before{content:""}.fa-h:before{content:"H"}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-paper:before,.fa-hand:before{content:""}.fa-hand-back-fist:before,.fa-hand-rock:before{content:""}.fa-allergies:before,.fa-hand-dots:before{content:""}.fa-fist-raised:before,.fa-hand-fist:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:""}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:""}.fa-hands-bubbles:before,.fa-hands-wash:before{content:""}.fa-hands-clapping:before{content:""}.fa-hands-holding:before{content:""}.fa-hands-praying:before,.fa-praying-hands:before{content:""}.fa-handshake:before{content:""}.fa-hands-helping:before,.fa-handshake-angle:before{content:""}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-drive:before,.fa-hdd:before{content:""}.fa-hashtag:before{content:"#"}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-header:before,.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before,.fa-headphones-simple:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before,.fa-heart-crack:before{content:""}.fa-heart-pulse:before,.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:""}.fa-highlighter:before{content:""}.fa-hippo:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub-person:before,.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:""}.fa-hourglass-empty:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:""}.fa-home-lg:before,.fa-house-chimney:before{content:""}.fa-house-chimney-crack:before,.fa-house-damage:before{content:""}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:""}.fa-house-chimney-user:before{content:""}.fa-house-chimney-window:before{content:""}.fa-house-crack:before{content:""}.fa-house-laptop:before,.fa-laptop-house:before{content:""}.fa-house-medical:before{content:""}.fa-home-user:before,.fa-house-user:before{content:""}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:""}.fa-i:before{content:"I"}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-id-card-alt:before,.fa-id-card-clip:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-image-portrait:before,.fa-portrait:before{content:""}.fa-images:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-italic:before{content:""}.fa-j:before{content:"J"}.fa-jedi:before{content:""}.fa-fighter-jet:before,.fa-jet-fighter:before{content:""}.fa-joint:before{content:""}.fa-k:before{content:"K"}.fa-kaaba:before{content:""}.fa-key:before{content:""}.fa-keyboard:before{content:""}.fa-khanda:before{content:""}.fa-kip-sign:before{content:""}.fa-first-aid:before,.fa-kit-medical:before{content:""}.fa-kiwi-bird:before{content:""}.fa-l:before{content:"L"}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-medical:before{content:""}.fa-lari-sign:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:""}.fa-arrows-alt-h:before,.fa-left-right:before{content:""}.fa-lemon:before{content:""}.fa-less-than:before{content:"<"}.fa-less-than-equal:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:""}.fa-lira-sign:before{content:""}.fa-list-squares:before,.fa-list:before{content:""}.fa-list-check:before,.fa-tasks:before{content:""}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:""}.fa-list-dots:before,.fa-list-ul:before{content:""}.fa-litecoin-sign:before{content:""}.fa-location-arrow:before{content:""}.fa-location-crosshairs:before,.fa-location:before{content:""}.fa-location-dot:before,.fa-map-marker-alt:before{content:""}.fa-location-pin:before,.fa-map-marker:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-m:before{content:"M"}.fa-magnet:before{content:""}.fa-magnifying-glass:before,.fa-search:before{content:""}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:""}.fa-magnifying-glass-location:before,.fa-search-location:before{content:""}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:""}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:""}.fa-manat-sign:before{content:""}.fa-map:before{content:""}.fa-map-location:before,.fa-map-marked:before{content:""}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:""}.fa-map-pin:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-and-venus:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:""}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:""}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:""}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:""}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:""}.fa-mask:before{content:""}.fa-mask-face:before{content:""}.fa-masks-theater:before,.fa-theater-masks:before{content:""}.fa-expand-arrows-alt:before,.fa-maximize:before{content:""}.fa-medal:before{content:""}.fa-memory:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-comment-alt:before,.fa-message:before{content:""}.fa-meteor:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before,.fa-microphone-lines:before{content:""}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-mill-sign:before{content:""}.fa-compress-arrows-alt:before,.fa-minimize:before{content:""}.fa-minus:before,.fa-subtract:before{content:""}.fa-mitten:before{content:""}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-mobile-button:before{content:""}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:""}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mug-hot:before{content:""}.fa-coffee:before,.fa-mug-saucer:before{content:""}.fa-music:before{content:""}.fa-n:before{content:"N"}.fa-naira-sign:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-not-equal:before{content:""}.fa-note-sticky:before,.fa-sticky-note:before{content:""}.fa-notes-medical:before{content:""}.fa-o:before{content:"O"}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-oil-can:before{content:""}.fa-om:before{content:""}.fa-otter:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-p:before{content:"P"}.fa-pager:before{content:""}.fa-paint-roller:before{content:""}.fa-paint-brush:before,.fa-paintbrush:before{content:""}.fa-palette:before{content:""}.fa-pallet:before{content:""}.fa-panorama:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-passport:before{content:""}.fa-file-clipboard:before,.fa-paste:before{content:""}.fa-pause:before{content:""}.fa-paw:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before,.fa-pen-clip:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:""}.fa-edit:before,.fa-pen-to-square:before{content:""}.fa-pencil-alt:before,.fa-pencil:before{content:""}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:""}.fa-people-carry-box:before,.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-percent:before,.fa-percentage:before{content:"%"}.fa-male:before,.fa-person:before{content:""}.fa-biking:before,.fa-person-biking:before{content:""}.fa-person-booth:before{content:""}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:""}.fa-female:before,.fa-person-dress:before{content:""}.fa-hiking:before,.fa-person-hiking:before{content:""}.fa-person-praying:before,.fa-pray:before{content:""}.fa-person-running:before,.fa-running:before{content:""}.fa-person-skating:before,.fa-skating:before{content:""}.fa-person-skiing:before,.fa-skiing:before{content:""}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:""}.fa-person-snowboarding:before,.fa-snowboarding:before{content:""}.fa-person-swimming:before,.fa-swimmer:before{content:""}.fa-person-walking:before,.fa-walking:before{content:""}.fa-blind:before,.fa-person-walking-with-cane:before{content:""}.fa-peseta-sign:before{content:""}.fa-peso-sign:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before,.fa-phone-flip:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-volume:before,.fa-volume-control-phone:before{content:""}.fa-photo-film:before,.fa-photo-video:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-plug:before{content:""}.fa-add:before,.fa-plus:before{content:"+"}.fa-plus-minus:before{content:""}.fa-podcast:before{content:""}.fa-poo:before{content:""}.fa-poo-bolt:before,.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-power-off:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:""}.fa-print:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-puzzle-piece:before{content:""}.fa-q:before{content:"Q"}.fa-qrcode:before{content:""}.fa-question:before{content:"?"}.fa-quote-left-alt:before,.fa-quote-left:before{content:""}.fa-quote-right-alt:before,.fa-quote-right:before{content:""}.fa-r:before{content:"R"}.fa-radiation:before{content:""}.fa-rainbow:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-ad:before,.fa-rectangle-ad:before{content:""}.fa-list-alt:before,.fa-rectangle-list:before{content:""}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-recycle:before{content:""}.fa-registered:before{content:""}.fa-repeat:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-republican:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-ribbon:before{content:""}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:""}.fa-exchange-alt:before,.fa-right-left:before{content:""}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:""}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rotate:before,.fa-sync-alt:before{content:""}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:""}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:""}.fa-route:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-rupee-sign:before,.fa-rupee:before{content:""}.fa-rupiah-sign:before{content:""}.fa-s:before{content:"S"}.fa-sailboat:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-balance-scale:before,.fa-scale-balanced:before{content:""}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:""}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:""}.fa-school:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-screwdriver:before{content:""}.fa-screwdriver-wrench:before,.fa-tools:before{content:""}.fa-scroll:before{content:""}.fa-scroll-torah:before,.fa-torah:before{content:""}.fa-sd-card:before{content:""}.fa-section:before{content:""}.fa-seedling:before,.fa-sprout:before{content:""}.fa-server:before{content:""}.fa-shapes:before,.fa-triangle-circle-square:before{content:""}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:""}.fa-share-from-square:before,.fa-share-square:before{content:""}.fa-share-alt:before,.fa-share-nodes:before{content:""}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:""}.fa-shield:before{content:""}.fa-shield-alt:before,.fa-shield-blank:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:""}.fa-shoe-prints:before{content:""}.fa-shop:before,.fa-store-alt:before{content:""}.fa-shop-slash:before,.fa-store-alt-slash:before{content:""}.fa-shower:before{content:""}.fa-shrimp:before{content:""}.fa-random:before,.fa-shuffle:before{content:""}.fa-shuttle-space:before,.fa-space-shuttle:before{content:""}.fa-sign-hanging:before,.fa-sign:before{content:""}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-map-signs:before,.fa-signs-post:before{content:""}.fa-sim-card:before{content:""}.fa-sink:before{content:""}.fa-sitemap:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before,.fa-sliders:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-spa:before{content:""}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spoon:before,.fa-utensil-spoon:before{content:""}.fa-spray-can:before{content:""}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:""}.fa-square:before{content:""}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:""}.fa-caret-square-down:before,.fa-square-caret-down:before{content:""}.fa-caret-square-left:before,.fa-square-caret-left:before{content:""}.fa-caret-square-right:before,.fa-square-caret-right:before{content:""}.fa-caret-square-up:before,.fa-square-caret-up:before{content:""}.fa-check-square:before,.fa-square-check:before{content:""}.fa-envelope-square:before,.fa-square-envelope:before{content:""}.fa-square-full:before{content:""}.fa-h-square:before,.fa-square-h:before{content:""}.fa-minus-square:before,.fa-square-minus:before{content:""}.fa-parking:before,.fa-square-parking:before{content:""}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:""}.fa-phone-square:before,.fa-square-phone:before{content:""}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:""}.fa-plus-square:before,.fa-square-plus:before{content:""}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:""}.fa-poll:before,.fa-square-poll-vertical:before{content:""}.fa-square-root-alt:before,.fa-square-root-variable:before{content:""}.fa-rss-square:before,.fa-square-rss:before{content:""}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:""}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:""}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:""}.fa-stairs:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:""}.fa-stethoscope:before{content:""}.fa-stop:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-slash:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stroopwafel:before{content:""}.fa-subscript:before{content:""}.fa-suitcase:before{content:""}.fa-medkit:before,.fa-suitcase-medical:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superscript:before{content:""}.fa-swatchbook:before{content:""}.fa-synagogue:before{content:""}.fa-syringe:before{content:""}.fa-t:before{content:"T"}.fa-table:before{content:""}.fa-table-cells:before,.fa-th:before{content:""}.fa-table-cells-large:before,.fa-th-large:before{content:""}.fa-columns:before,.fa-table-columns:before{content:""}.fa-table-list:before,.fa-th-list:before{content:""}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:""}.fa-tablet-android:before,.fa-tablet:before{content:""}.fa-tablet-button:before{content:""}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:""}.fa-tablets:before{content:""}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:""}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-tenge-sign:before,.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-remove-format:before,.fa-text-slash:before{content:""}.fa-text-width:before{content:""}.fa-thermometer:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumb-tack:before,.fa-thumbtack:before{content:""}.fa-ticket:before{content:""}.fa-ticket-alt:before,.fa-ticket-simple:before{content:""}.fa-timeline:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tooth:before{content:""}.fa-torii-gate:before{content:""}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:""}.fa-tractor:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-subway:before,.fa-train-subway:before{content:""}.fa-train-tram:before,.fa-tram:before{content:""}.fa-transgender-alt:before,.fa-transgender:before{content:""}.fa-trash:before{content:""}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:""}.fa-trash-alt:before,.fa-trash-can:before{content:""}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-shipping-fast:before,.fa-truck-fast:before{content:""}.fa-ambulance:before,.fa-truck-medical:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:""}.fa-teletype:before,.fa-tty:before{content:""}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:""}.fa-level-down-alt:before,.fa-turn-down:before{content:""}.fa-level-up-alt:before,.fa-turn-up:before{content:""}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:""}.fa-u:before{content:"U"}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-underline:before{content:""}.fa-universal-access:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:""}.fa-arrows-alt-v:before,.fa-up-down:before{content:""}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:""}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:""}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:""}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:""}.fa-upload:before{content:""}.fa-user:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-clock:before{content:""}.fa-user-doctor:before,.fa-user-md:before{content:""}.fa-user-cog:before,.fa-user-gear:before{content:""}.fa-user-graduate:before{content:""}.fa-user-friends:before,.fa-user-group:before{content:""}.fa-user-injured:before{content:""}.fa-user-alt:before,.fa-user-large:before{content:""}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:""}.fa-user-lock:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-edit:before,.fa-user-pen:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before,.fa-user-xmark:before{content:""}.fa-users:before{content:""}.fa-users-cog:before,.fa-users-gear:before{content:""}.fa-users-slash:before{content:""}.fa-cutlery:before,.fa-utensils:before{content:""}.fa-v:before{content:"V"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:""}.fa-vault:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-vest:before{content:""}.fa-vest-patches:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-video-camera:before,.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-virus:before{content:""}.fa-virus-covid:before{content:""}.fa-virus-covid-slash:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before,.fa-volleyball:before{content:""}.fa-volume-high:before,.fa-volume-up:before{content:""}.fa-volume-down:before,.fa-volume-low:before{content:""}.fa-volume-off:before{content:""}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:""}.fa-vr-cardboard:before{content:""}.fa-w:before{content:"W"}.fa-wallet:before{content:""}.fa-magic:before,.fa-wand-magic:before{content:""}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:""}.fa-wand-sparkles:before{content:""}.fa-warehouse:before{content:""}.fa-water:before{content:""}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:""}.fa-wave-square:before{content:""}.fa-weight-hanging:before{content:""}.fa-weight-scale:before,.fa-weight:before{content:""}.fa-wheelchair:before{content:""}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:""}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:""}.fa-wind:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:""}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:""}.fa-wrench:before{content:""}.fa-x:before{content:"X"}.fa-x-ray:before{content:""}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:""}.fa-y:before{content:"Y"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:""}.fa-yin-yang:before{content:""}.fa-z:before{content:"Z"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*! * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2022 Fonticons, Inc. diff --git a/packages/modules/web_themes/colors/web/assets/index-nJ6fMUq4.js b/packages/modules/web_themes/colors/web/assets/index-nJ6fMUq4.js deleted file mode 100644 index ae9d43f15f..0000000000 --- a/packages/modules/web_themes/colors/web/assets/index-nJ6fMUq4.js +++ /dev/null @@ -1,6 +0,0 @@ -var Na=Object.defineProperty;var Ha=(a,e,t)=>e in a?Na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var v=(a,e,t)=>Ha(a,typeof e!="symbol"?e+"":e,t);import{r as pe,m as Ra,c as g,a as Y,i as Ja,e as Te,u as Ft,t as at,b as kt,s as ge,d as B,o as i,f,g as n,n as te,h as x,j as l,p as la,k as qa,F as W,l as Q,q as $,v as w,w as Ya,x as H,y as de,z as _,A as R,B as b,C as xa,D as Je,E as mt,G as ot,H as st,I as ht,J as pt,K as it,L as Qa,M as He,N as Za,O as Oe,P as ft,Q as Xa,R as Ka,S as Sa,T as en,U as $a,V as tn,W as an,X as nn,Y as rn,Z as on,_ as sn,$ as ln,a0 as cn,a1 as un,a2 as dn}from"./vendor-DgMVsSab.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const p of r.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function t(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function o(s){if(s.ep)return;s.ep=!0;const r=t(s);fetch(s.href,r)}})();var Me=(a=>(a.instant_charging="instant_charging",a.pv_charging="pv_charging",a.scheduled_charging="scheduled_charging",a.eco_charging="eco_charging",a.stop="stop",a))(Me||{}),K=(a=>(a.counter="counter",a.inverter="inverter",a.pvSummary="pvSummary",a.battery="battery",a.batterySummary="batterySummary",a.chargepoint="chargepoint",a.chargeSummary="chargeSummary",a.device="device",a.deviceSummary="deviceSummary",a.house="house",a))(K||{});class Ma{constructor(e){v(this,"id");v(this,"name","Wechselrichter");v(this,"type","inverter");v(this,"color","var(--color-pv)");v(this,"power",0);v(this,"energy",0);v(this,"energy_month",0);v(this,"energy_year",0);v(this,"energy_total",0);v(this,"energyPv",0);v(this,"energyBat",0);v(this,"pvPercentage",0);v(this,"icon","");v(this,"showInGraph",!0);this.id=e}}const hn=[["EV","ev_mode"],["Speicher","bat_mode"],["MinSoc","min_soc_bat_mode"]];class pn{constructor(e){v(this,"id");v(this,"name","Gerät");v(this,"type",K.device);v(this,"power",0);v(this,"status","off");v(this,"energy",0);v(this,"runningTime",0);v(this,"configured",!1);v(this,"_showInGraph",!0);v(this,"color","white");v(this,"canSwitch",!1);v(this,"countAsHouse",!1);v(this,"energyPv",0);v(this,"energyBat",0);v(this,"pvPercentage",0);v(this,"tempConfigured",0);v(this,"temp",[300,300,300]);v(this,"on",!1);v(this,"isAutomatic",!0);v(this,"icon","");this.id=e}get showInGraph(){return this._showInGraph}set showInGraph(e){this._showInGraph=e,T.items["sh"+this.id].showInGraph=e,ae()}setShowInGraph(e){this._showInGraph=e}}const ne=pe(new Map);function qt(a){ne.has(a)?console.info("Duplicate sh device message: "+a):(ne.set(a,new pn(a)),ne.get(a).color="var(--color-sh"+ne.size+")")}const gn=0,Pa={host:location.hostname,port:location.protocol=="https:"?443:80,endpoint:"/ws",protocol:location.protocol=="https:"?"wss":"ws",connectTimeout:4e3,reconnectPeriod:4e3,clean:!1,clientId:Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,6)},xt={topic:"",qos:gn};let Ve;const{host:mn,port:fn,endpoint:vn,...Ca}=Pa,ia=`${Ca.protocol}://${mn}:${fn}${vn}`;try{console.debug("connectURL",ia),Ve=Ra.connect(ia,Ca),Ve.on("connect",()=>{console.info("MQTT connection successful")}),Ve.on("disconnect",()=>{console.info("MQTT disconnected")}),Ve.on("error",a=>{console.error("MQTT connection failed: ",a)})}catch(a){console.error("MQTT connect error: ",a)}function bn(a){Ve?Ve.on("message",a):console.error("MqttRegister: MQTT client not available")}function et(a){xt.topic=a;const{topic:e,qos:t}=xt;Ve.subscribe(e,{qos:t},o=>{if(o){console.error("MQTT Subscription error: "+o);return}})}function lt(a){xt.topic=a;const{topic:e}=xt;Ve.unsubscribe(e,t=>{if(t){console.error("MQTT Unsubscribe from "+a+" failed: "+t);return}})}async function St(a,e){let o=Ve.connected,s=0;for(;!o&&s<20;)console.warn("MQTT publish: Not connected. Waiting 0.1 seconds"),await yn(100),o=Ve.connected,s+=1;if(s<20)try{Ve.publish(a,e,{qos:0},r=>{r&&console.warn("MQTT publish error: ",r),console.info("MQTT publish: Message sent: ["+a+"]("+e+")")})}catch(r){console.warn("MQTT publish: caught error: "+r)}else console.error("MQTT publish: Lost connection to MQTT server. Please reload the page")}function Yt(){return Pa.clientId}function yn(a){return new Promise(e=>setTimeout(e,a))}class _n{constructor(e){v(this,"id");v(this,"name","Ladepunkt");v(this,"icon","Ladepunkt");v(this,"type",K.chargepoint);v(this,"ev",0);v(this,"template",0);v(this,"connectedPhases",0);v(this,"phase_1",0);v(this,"autoPhaseSwitchHw",!1);v(this,"controlPilotInterruptionHw",!1);v(this,"isEnabled",!0);v(this,"isPluggedIn",!1);v(this,"isCharging",!1);v(this,"_isLocked",!1);v(this,"_connectedVehicle",0);v(this,"chargeTemplate",null);v(this,"evTemplate",0);v(this,"_chargeMode",Me.pv_charging);v(this,"_hasPriority",!1);v(this,"currentPlan","");v(this,"averageConsumption",0);v(this,"vehicleName","");v(this,"rangeCharged",0);v(this,"rangeUnit","");v(this,"counter",0);v(this,"dailyYield",0);v(this,"energyPv",0);v(this,"energyBat",0);v(this,"pvPercentage",0);v(this,"faultState",0);v(this,"faultStr","");v(this,"phasesInUse",0);v(this,"power",0);v(this,"chargedSincePlugged",0);v(this,"stateStr","");v(this,"current",0);v(this,"currents",[0,0,0]);v(this,"phasesToUse",0);v(this,"isSocConfigured",!0);v(this,"isSocManual",!1);v(this,"waitingForSoc",!1);v(this,"color","white");v(this,"energy",0);v(this,"showInGraph",!0);v(this,"_timedCharging",!1);v(this,"_instantChargeLimitMode","");v(this,"_instantTargetCurrent",0);v(this,"_instantTargetSoc",0);v(this,"_instantMaxEnergy",0);v(this,"_instantTargetPhases",0);v(this,"_pvFeedInLimit",!1);v(this,"_pvMinCurrent",0);v(this,"_pvMaxSoc",0);v(this,"_pvMinSoc",0);v(this,"_pvMinSocCurrent",0);v(this,"_pvMinSocPhases",1);v(this,"_pvChargeLimitMode","");v(this,"_pvTargetSoc",0);v(this,"_pvMaxEnergy",0);v(this,"_pvTargetPhases",0);v(this,"_ecoMinCurrent",0);v(this,"_ecoTargetPhases",0);v(this,"_ecoChargeLimitMode","");v(this,"_ecoTargetSoc",0);v(this,"_ecoMaxEnergy",0);v(this,"_etActive",!1);v(this,"_etMaxPrice",20);this.id=e}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e,_e("cpLock",e,this.id)}updateIsLocked(e){this._isLocked=e}get connectedVehicle(){return this._connectedVehicle}set connectedVehicle(e){this._connectedVehicle=e,_e("cpVehicle",e,this.id)}updateConnectedVehicle(e){this._connectedVehicle=e}get soc(){return Z[this.connectedVehicle]?Z[this.connectedVehicle].soc:0}set soc(e){Z[this.connectedVehicle]&&(Z[this.connectedVehicle].soc=e)}get chargeMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.selected)??Me.stop}set chargeMode(e){console.log("set mode"),this.chargeTemplate&&(console.log("active"),this.chargeTemplate.chargemode.selected=e,le(this.id))}get hasPriority(){var e;return((e=this.chargeTemplate)==null?void 0:e.prio)??!1}set hasPriority(e){this.chargeTemplate&&(this.chargeTemplate.prio=e,_e("cpPriority",e,this.id))}get timedCharging(){return this.chargeTemplate?this.chargeTemplate.time_charging.active:!1}set timedCharging(e){this.chargeTemplate.time_charging.active=e,_e("cpTimedCharging",e,this.id)}get instantTargetCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.current)??0}set instantTargetCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.current=e,le(this.id))}get instantChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.selected)??"none"}set instantChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.selected=e,le(this.id))}get instantTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.soc)??0}set instantTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.soc=e,le(this.id))}get instantMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.limit.amount)??0}set instantMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.limit.amount=e,le(this.id))}get instantTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.instant_charging.phases_to_use)??0}set instantTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.instant_charging.phases_to_use=e,le(this.id))}get pvFeedInLimit(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.feed_in_limit)??!1}set pvFeedInLimit(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.feed_in_limit=e,le(this.id))}get pvMinCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_current)??0}set pvMinCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_current=e,le(this.id))}get pvMaxSoc(){return this._pvMaxSoc}set pvMaxSoc(e){this._pvMaxSoc=e,_e("cpPvMaxSoc",e,this.id)}updatePvMaxSoc(e){this._pvMaxSoc=e}get pvMinSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_soc)??0}set pvMinSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_soc=e,le(this.id))}get pvMinSocCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.min_soc_current)??0}set pvMinSocCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.min_soc_current=e,le(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,le(this.id))}get pvMinSocPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.phases_to_use_min_soc)??0}get pvChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.selected)??"none"}set pvChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.selected=e,le(this.id))}get pvTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.soc)??0}set pvTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.soc=e,le(this.id))}get pvMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.limit.amount)??0}set pvMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.limit.amount=e,le(this.id))}get pvTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.pv_charging.phases_to_use)??0}set pvTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use=e,le(this.id))}get ecoMinCurrent(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.current)??0}set ecoMinCurrent(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.current=e,le(this.id))}get ecoTargetPhases(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.phases_to_use)??0}set ecoTargetPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.phases_to_use=e,le(this.id))}get ecoChargeLimitMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.selected)??"none"}set ecoChargeLimitMode(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.selected=e,le(this.id))}get ecoTargetSoc(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.soc)??0}set ecoTargetSoc(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.soc=e,le(this.id))}get ecoMaxEnergy(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.limit.amount)??0}set ecoMaxEnergy(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.limit.amount=e,le(this.id))}get etMaxPrice(){var e;return(((e=this.chargeTemplate)==null?void 0:e.chargemode.eco_charging.max_price)??0)*1e5}set etMaxPrice(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.eco_charging.max_price=Math.ceil(e*1e3)/1e8,le(this.id))}get etActive(){return this.chargeTemplate&&this.chargeTemplate.chargemode.selected==Me.eco_charging}get realCurrent(){switch(this.phasesInUse){case 0:return 0;case 1:return this.currents[0];case 2:return(this.currents[0]+this.currents[1])/2;case 3:return(this.currents[0]+this.currents[1]+this.currents[2])/3;default:return 0}}toPowerItem(){return{name:this.name,type:K.chargepoint,power:this.power,energy:this.dailyYield,energyPv:this.energyPv,energyBat:this.energyBat,pvPercentage:this.pvPercentage,color:this.color,icon:this.icon,showInGraph:!0}}}class wn{constructor(e){v(this,"id");v(this,"name","__invalid");v(this,"tags",[]);v(this,"config",{});v(this,"soc",0);v(this,"range",0);v(this,"_chargeTemplateId",0);v(this,"isSocConfigured",!1);v(this,"isSocManual",!1);v(this,"_evTemplateId",0);this.id=e}get chargeTemplateId(){return this._chargeTemplateId}set chargeTemplateId(e){this._chargeTemplateId=e,_e("vhChargeTemplateId",e,this.id)}updateChargeTemplateId(e){this._chargeTemplateId=e}get evTemplateId(){return this._evTemplateId}set evTemplateId(e){this._evTemplateId=e,_e("vhEvTemplateId",e,this.id)}updateEvTemplateId(e){this._evTemplateId=e}get chargepoint(){for(const e of Object.values(O))if(e.connectedVehicle==this.id)return e}get visible(){return this.name!="__invalid"&&(this.id!=0||m.showStandardVehicle)}}const O=pe({}),Z=pe({}),Nt=pe({}),kn=pe({});function xn(a){if(!(a in O)){O[a]=new _n(a);const e="var(--color-cp"+(Object.values(O).length-1)+")";O[a].color=e;const t="cp"+a;ie[t]?ie["cp"+a].color=e:ie[t]={name:"Ladepunkt",color:e,icon:"Ladepunkt"}}}function Sn(){Object.keys(O).forEach(a=>{delete O[parseInt(a)]})}const fe=g(()=>{const a=[],e=Object.values(O),t=Object.values(Z).filter(r=>r.visible);let o=-1;switch(e.length){case 0:o=t[0]?t[0].id:-1;break;default:o=e[0].connectedVehicle}let s=-1;switch(e.length){case 0:case 1:s=t[0]?t[0].id:-1;break;default:s=e[1].connectedVehicle}return o==s&&(s=t[1]?t[1].id:-1),o!=-1&&a.push(o),s!=-1&&a.push(s),a}),Qt=[{name:"keine",id:"none"},{name:"Ladestand",id:"soc"},{name:"Energie",id:"amount"}],Ia={cpLock:"openWB/set/chargepoint/%/set/manual_lock",chargeMode:"openWB/set/vehicle/template/charge_template/%/chargemode/selected",cpPriority:"openWB/set/vehicle/template/charge_template/%/prio",cpTimedCharging:"openWB/set/vehicle/template/charge_template/%/time_charging/active",pvBatteryPriority:"openWB/set/general/chargemode_config/pv_charging/bat_mode",cpVehicle:"openWB/set/chargepoint/%/config/ev",cpInstantChargeLimitMode:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/selected",cpInstantTargetCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/current",cpInstantTargetSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/soc",cpInstantMaxEnergy:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/amount",cpPvFeedInLimit:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/feed_in_limit",cpPvMinCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_current",cpPvMaxSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/max_soc",cpPvMinSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc",cpPvMinSocCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc_current",cpEtMaxPrice:"openWB/set/vehicle/template/charge_template/%/et/max_price",vhChargeTemplateId:"openWB/set/vehicle/%/charge_template",vhEvTemplateId:"openWB/set/vehicle/%/ev_template",shSetManual:"openWB/set/LegacySmartHome/config/set/Devices/%/mode",shSwitchOn:"openWB/set/LegacySmartHome/config/set/Devices/%/device_manual_control",socUpdate:"openWB/set/vehicle/%/get/force_soc_update",setSoc:"openWB/set/vehicle/%/soc_module/calculated_soc_state/manual_soc",priceCharging:"openWB/set/vehicle/template/charge_template/%/et/active",chargeTemplate:"openWB/set/chargepoint/%/set/charge_template"};function _e(a,e,t=0){if(isNaN(t)){console.warn("Invalid index");return}let o=Ia[a];if(!o){console.warn("No topic for update type "+a);return}switch(a){default:o=o.replace("%",String(t))}switch(typeof e){case"number":St(o,JSON.stringify(+e));break;default:St(o,JSON.stringify(e))}}function Zt(a){St("openWB/set/command/"+Yt()+"/todo",JSON.stringify(a))}function le(a){St(Ia.chargeTemplate.replace("%",String(a)),JSON.stringify(O[a].chargeTemplate))}const ke=500,Ce=500,N={top:15,right:20,bottom:10,left:25},Xt=["charging","house","batIn","devices"];class $n{constructor(){v(this,"data",[]);v(this,"_graphMode","");v(this,"waitForData",!0)}get graphMode(){return this._graphMode}set graphMode(e){this._graphMode=e}}const y=pe(new $n),Ba=Y(Ja),Ze=g(()=>[0,ke-N.left-2*N.right].map(a=>Ba.value.applyX(a)));let gt=!0,ct=!0;function ca(){gt=!1}function ua(){gt=!0}function da(){ct=!1}function ha(){ct=!0}function Mn(a){ct=a}function vt(a){y.data=a,y.waitForData=!1}const me=pe({refreshTopicPrefix:"openWB/graph/alllivevaluesJson",updateTopic:"openWB/graph/lastlivevaluesJson",configTopic:"openWB/graph/config/#",initialized:!1,initCounter:0,graphRefreshCounter:0,rawDataPacks:[],duration:0,activate(a){this.unsubscribeUpdates(),this.subscribeRefresh(),a&&(y.data=[]),y.waitForData=!0,et(this.configTopic),this.initialized=!1,this.initCounter=0,this.graphRefreshCounter=0,this.rawDataPacks=[],Vn(),ut.value=!0},deactivate(){this.unsubscribeRefresh(),this.unsubscribeUpdates(),lt(this.configTopic)},subscribeRefresh(){for(let a=1;a<17;a++)et(this.refreshTopicPrefix+a)},unsubscribeRefresh(){for(let a=1;a<17;a++)lt(this.refreshTopicPrefix+a)},subscribeUpdates(){et(this.updateTopic)},unsubscribeUpdates(){lt(this.updateTopic)}}),ue=pe({topic:"openWB/log/daily/#",date:new Date,activate(a){if(y.graphMode=="day"||y.graphMode=="today"){y.graphMode=="today"&&(this.date=new Date);const e=this.date.getFullYear().toString()+(this.date.getMonth()+1).toString().padStart(2,"0")+this.date.getDate().toString().padStart(2,"0");this.topic="openWB/log/daily/"+e,et(this.topic),a&&(y.data=[]),y.waitForData=!0,Zt({command:"getDailyLog",data:{date:e}})}},deactivate(){lt(this.topic)},back(){this.date=new Date(this.date.setTime(this.date.getTime()-864e5))},forward(){this.date=new Date(this.date.setTime(this.date.getTime()+864e5))},setDate(a){this.date=a},getDate(){return this.date}}),ze=pe({topic:"openWB/log/monthly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(a){const e=this.year.toString()+this.month.toString().padStart(2,"0");y.data=[],et(this.topic),a&&(y.data=[]),y.waitForData=!0,Zt({command:"getMonthlyLog",data:{date:e}})},deactivate(){lt(this.topic)},back(){this.month-=1,this.month<1&&(this.month=12,this.year-=1),this.activate()},forward(){const a=new Date;a.getFullYear()==this.year?this.month-112&&(this.month=1,this.year+=1)),this.activate()},getDate(){return new Date(this.year,this.month)}}),Ye=pe({topic:"openWB/log/yearly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(a){const e=this.year.toString();et(this.topic),a&&(y.data=[]),y.waitForData=!0,Zt({command:"getYearlyLog",data:{date:e}})},deactivate(){lt(this.topic)},back(){this.year-=1,this.activate()},forward(){this.year0&&(T.items[a].energyPv+=1e3/12*(e[a]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),T.items[a].energyBat+=1e3/12*(e[a]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}function In(a,e){e[a]>0&&(T.items[a].energyPv+=1e3*(e[a]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),T.items[a].energyBat+=1e3*(e[a]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}const Bn=["evuIn","pv","batOut","evuOut"],Xe=Y(!1);function Kt(a,e){Object.entries(a).length>0?(Xe.value=!1,Object.entries(a.counter).forEach(([t,o])=>{(e.length==0||e.includes(t))&&(T.items.evuIn.energy+=o.energy_imported,T.items.evuOut.energy+=o.energy_exported)}),T.items.pv.energy=a.pv.all.energy_exported,a.bat.all&&(T.items.batIn.energy=a.bat.all.energy_imported,T.items.batOut.energy=a.bat.all.energy_exported),Object.entries(a.cp).forEach(([t,o])=>{t=="all"?(T.setEnergy("charging",o.energy_imported),o.energy_imported_pv!=null&&(T.setEnergyPv("charging",o.energy_imported_pv),T.setEnergyBat("charging",o.energy_imported_bat))):T.setEnergy(t,o.energy_imported)}),T.setEnergy("devices",0),Object.entries(a.sh).forEach(([t,o])=>{T.setEnergy(t,o.energy_imported);const s=t.substring(2);ne.get(+s).countAsHouse||(T.items.devices.energy+=o.energy_imported)}),a.hc&&a.hc.all?(T.setEnergy("house",a.hc.all.energy_imported),a.hc.all.energy_imported_pv!=null&&(T.setEnergyPv("house",a.hc.all.energy_imported_pv),T.setEnergyBat("house",a.hc.all.energy_imported_bat))):T.calculateHouseEnergy(),T.keys().forEach(t=>{Bn.includes(t)||(T.setPvPercentage(t,Math.round((T.items[t].energyPv+T.items[t].energyBat)/T.items[t].energy*100)),Xt.includes(t)&&(F[t].energy=T.items[t].energy,F[t].energyPv=T.items[t].energyPv,F[t].energyBat=T.items[t].energyBat,F[t].pvPercentage=T.items[t].pvPercentage))}),y.graphMode=="today"&&(Object.values(O).forEach(t=>{const o=T.items["cp"+t.id];o&&(t.energyPv=o.energyPv,t.energyBat=o.energyBat,t.pvPercentage=o.pvPercentage)}),ne.forEach(t=>{const o=T.items["sh"+t.id];o&&(t.energy=o.energy,t.energyPv=o.energyPv,t.energyBat=o.energyBat,t.pvPercentage=o.pvPercentage)}))):Xe.value=!0,ut.value=!0}const Le=g(()=>{const a=Te(y.data,e=>new Date(e.date));return a[0]&&a[1]?Ft().domain(a).range([0,ke-N.left-2*N.right]):at().range([0,0])});function Vn(){T.keys().forEach(a=>{Xt.includes(a)&&(F[a].energy=T.items[a].energy,F[a].energyPv=0,F[a].energyBat=0,F[a].pvPercentage=0)}),Object.values(O).forEach(a=>{a.energyPv=0,a.energyBat=0,a.pvPercentage=0}),ne.forEach(a=>{a.energyPv=0,a.energyBat=0,a.pvPercentage=0})}const Qe=g(()=>{const a=Te(y.data,e=>e.date);return a[1]?kt().domain(Array.from({length:a[1]},(e,t)=>t+1)).paddingInner(.4).range([0,ke-N.left-2]):kt().range([0,0])});function Ct(){switch(y.graphMode){case"live":y.graphMode="today",m.showRightButton=!0,ve();break;case"today":y.graphMode="day",ue.deactivate(),ue.back(),ue.activate(),ve();break;case"day":ue.back(),ve();break;case"month":ze.back();break;case"year":Ye.back();break}}function ea(){const a=new Date;switch(y.graphMode){case"live":break;case"today":y.graphMode="live",m.showRightButton=!1,ve();break;case"day":ue.forward(),ue.date.getDate()==a.getDate()&&ue.date.getMonth()==a.getMonth()&&ue.date.getFullYear()==a.getFullYear()&&(y.graphMode="today"),ve();break;case"month":ze.forward();break;case"year":Ye.forward();break}}function ta(){switch(y.graphMode){case"live":Ct();break;case"day":case"today":y.graphMode="month",ve();break;case"month":y.graphMode="year",ve();break}}function aa(){switch(y.graphMode){case"year":y.graphMode="month",ve();break;case"month":y.graphMode="today",ve();break;case"today":case"day":y.graphMode="live",ve();break}}function pa(a){if(y.graphMode=="day"||y.graphMode=="today"){ue.setDate(a);const e=new Date;ue.date.getDate()==e.getDate()&&ue.date.getMonth()==e.getMonth()&&ue.date.getFullYear()==e.getFullYear()?y.graphMode="today":y.graphMode="day",ve()}}const Ne=Y(new Map);class Ln{constructor(){v(this,"_showRelativeArcs",!1);v(this,"showTodayGraph",!0);v(this,"_graphPreference","today");v(this,"_usageStackOrder",0);v(this,"_displayMode","dark");v(this,"_showGrid",!1);v(this,"_smartHomeColors","normal");v(this,"_decimalPlaces",1);v(this,"_showQuickAccess",!0);v(this,"_simpleCpList",!1);v(this,"_shortCpList","no");v(this,"_showAnimations",!0);v(this,"_preferWideBoxes",!1);v(this,"_maxPower",4e3);v(this,"_fluidDisplay",!1);v(this,"_showClock","no");v(this,"_showButtonBar",!0);v(this,"_showCounters",!1);v(this,"_showVehicles",!1);v(this,"_showStandardVehicle",!0);v(this,"_showPrices",!1);v(this,"_showInverters",!1);v(this,"_alternativeEnergy",!1);v(this,"_sslPrefs",!1);v(this,"_debug",!1);v(this,"_lowerPriceBound",0);v(this,"_upperPriceBound",0);v(this,"_showPmLabels",!0);v(this,"isEtEnabled",!1);v(this,"etPrice",20.5);v(this,"showRightButton",!0);v(this,"showLeftButton",!0);v(this,"animationDuration",300);v(this,"animationDelay",100);v(this,"zoomGraph",!1);v(this,"zoomedWidget",1)}get showRelativeArcs(){return this._showRelativeArcs}set showRelativeArcs(e){this._showRelativeArcs=e,ae()}setShowRelativeArcs(e){this._showRelativeArcs=e}get graphPreference(){return this._graphPreference}set graphPreference(e){this._graphPreference=e,ae()}setGraphPreference(e){this._graphPreference=e}get usageStackOrder(){return this._usageStackOrder}set usageStackOrder(e){this._usageStackOrder=e,ae()}setUsageStackOrder(e){this._usageStackOrder=e}get displayMode(){return this._displayMode}set displayMode(e){this._displayMode=e,En(e)}setDisplayMode(e){this._displayMode=e}get showGrid(){return this._showGrid}set showGrid(e){this._showGrid=e,ae()}setShowGrid(e){this._showGrid=e}get decimalPlaces(){return this._decimalPlaces}set decimalPlaces(e){this._decimalPlaces=e,ae()}setDecimalPlaces(e){this._decimalPlaces=e}get smartHomeColors(){return this._smartHomeColors}set smartHomeColors(e){this._smartHomeColors=e,ga(e),ae()}setSmartHomeColors(e){this._smartHomeColors=e,ga(e)}get showQuickAccess(){return this._showQuickAccess}set showQuickAccess(e){this._showQuickAccess=e,ae()}setShowQuickAccess(e){this._showQuickAccess=e}get simpleCpList(){return this._simpleCpList}set simpleCpList(e){this._simpleCpList=e,ae()}setSimpleCpList(e){this._simpleCpList=e}get shortCpList(){return this._shortCpList}set shortCpList(e){this._shortCpList=e,ae()}setShortCpList(e){this._shortCpList=e}get showAnimations(){return this._showAnimations}set showAnimations(e){this._showAnimations=e,ae()}setShowAnimations(e){this._showAnimations=e}get preferWideBoxes(){return this._preferWideBoxes}set preferWideBoxes(e){this._preferWideBoxes=e,ae()}setPreferWideBoxes(e){this._preferWideBoxes=e}get maxPower(){return this._maxPower}set maxPower(e){this._maxPower=e,ae()}setMaxPower(e){this._maxPower=e}get fluidDisplay(){return this._fluidDisplay}set fluidDisplay(e){this._fluidDisplay=e,ae()}setFluidDisplay(e){this._fluidDisplay=e}get showClock(){return this._showClock}set showClock(e){this._showClock=e,ae()}setShowClock(e){this._showClock=e}get sslPrefs(){return this._sslPrefs}set sslPrefs(e){this._sslPrefs=e,ae()}setSslPrefs(e){this.sslPrefs=e}get debug(){return this._debug}set debug(e){this._debug=e,ae()}setDebug(e){this._debug=e}get showButtonBar(){return this._showButtonBar}set showButtonBar(e){this._showButtonBar=e,ae()}setShowButtonBar(e){this._showButtonBar=e}get showCounters(){return this._showCounters}set showCounters(e){this._showCounters=e,ae()}setShowCounters(e){this._showCounters=e}get showVehicles(){return this._showVehicles}set showVehicles(e){this._showVehicles=e,ae()}setShowVehicles(e){this._showVehicles=e}get showStandardVehicle(){return this._showStandardVehicle}set showStandardVehicle(e){this._showStandardVehicle=e,ae()}setShowStandardVehicle(e){this._showStandardVehicle=e}get showPrices(){return this._showPrices}set showPrices(e){this._showPrices=e,ae()}setShowPrices(e){this._showPrices=e}get showInverters(){return this._showInverters}set showInverters(e){this._showInverters=e,ua(),ha(),ae()}setShowInverters(e){this._showInverters=e}get alternativeEnergy(){return this._alternativeEnergy}set alternativeEnergy(e){this._alternativeEnergy=e,ua(),ha(),ae()}setAlternativeEnergy(e){this._alternativeEnergy=e}get lowerPriceBound(){return this._lowerPriceBound}set lowerPriceBound(e){this._lowerPriceBound=e,ae()}setLowerPriceBound(e){this._lowerPriceBound=e}get upperPriceBound(){return this._upperPriceBound}set upperPriceBound(e){this._upperPriceBound=e,ae()}setUpperPriceBound(e){this._upperPriceBound=e}get showPmLabels(){return this._showPmLabels}set showPmLabels(e){this._showPmLabels=e,ae()}setShowPmLabels(e){this._showPmLabels=e}}const m=pe(new Ln);function Va(){Wn();const a=ge("html");a.classed("theme-dark",m.displayMode=="dark"),a.classed("theme-light",m.displayMode=="light"),a.classed("theme-blue",m.displayMode=="blue"),a.classed("shcolors-standard",m.smartHomeColors=="standard"),a.classed("shcolors-advanced",m.smartHomeColors=="advanced"),a.classed("shcolors-normal",m.smartHomeColors=="normal")}const Tn=992,$t=pe({x:document.documentElement.clientWidth,y:document.documentElement.clientHeight});function On(){$t.x=document.documentElement.clientWidth,$t.y=document.documentElement.clientHeight,Va()}const We=g(()=>$t.x>=Tn),ye={instant_charging:{mode:Me.instant_charging,name:"Sofort",color:"var(--color-charging)",icon:"fa-bolt"},pv_charging:{mode:Me.pv_charging,name:"PV",color:"var(--color-pv)",icon:"fa-solar-panel"},scheduled_charging:{mode:Me.scheduled_charging,name:"Zielladen",color:"var(--color-battery)",icon:"fa-bullseye"},eco_charging:{mode:Me.eco_charging,name:"Eco",color:"var(--color-devices)",icon:"fa-coins"},stop:{mode:Me.stop,name:"Stop",color:"var(--color-fg)",icon:"fa-power-off"}};class An{constructor(){v(this,"batterySoc",0);v(this,"isBatteryConfigured",!0);v(this,"chargeMode","0");v(this,"_pvBatteryPriority","ev_mode");v(this,"displayLiveGraph",!0);v(this,"isEtEnabled",!0);v(this,"etMaxPrice",0);v(this,"etCurrentPrice",0);v(this,"cpDailyExported",0);v(this,"evuId",0);v(this,"etProvider","")}get pvBatteryPriority(){return this._pvBatteryPriority}set pvBatteryPriority(e){this._pvBatteryPriority=e,_e("pvBatteryPriority",e)}updatePvBatteryPriority(e){this._pvBatteryPriority=e}}function ae(){Dn()}function En(a){const e=ge("html");e.classed("theme-dark",a=="dark"),e.classed("theme-light",a=="light"),e.classed("theme-blue",a=="blue"),ae()}function zn(){m.maxPower=J.evuIn.power+J.pv.power+J.batOut.power,ae()}function ga(a){const e=ge("html");e.classed("shcolors-normal",a=="normal"),e.classed("shcolors-standard",a=="standard"),e.classed("shcolors-advanced",a=="advanced")}const qe={chargemode:"Der Lademodus für das Fahrzeug an diesem Ladepunkt",vehicle:"Das Fahrzeug, das an diesem Ladepounkt geladen wird",locked:"Für das Laden sperren",priority:"Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar",timeplan:"Das Laden nach Zeitplan für dieses Fahrzeug aktivieren",minsoc:"Immer mindestens bis zum eingestellten Ladestand laden. Wenn notwendig mit Netzstrom.",minpv:"Durchgehend mit mindestens dem eingestellten Strom laden. Wenn notwendig mit Netzstrom.",pricebased:"Laden bei dynamischem Stromtarif, wenn eingestellter Maximalpreis unterboten wird.",pvpriority:"Ladepriorität bei PV-Produktion. Bevorzung von Fahzeugen, Speicher, oder Fahrzeugen bis zum eingestellten Mindest-Ladestand. Die Einstellung ist für alle Ladepunkte gleich."};function Dn(){const a={};a.hideSH=[...ne.values()].filter(e=>!e.showInGraph).map(e=>e.id),a.showLG=m.graphPreference=="live",a.displayM=m.displayMode,a.stackO=m.usageStackOrder,a.showGr=m.showGrid,a.decimalP=m.decimalPlaces,a.smartHomeC=m.smartHomeColors,a.relPM=m.showRelativeArcs,a.maxPow=m.maxPower,a.showQA=m.showQuickAccess,a.simpleCP=m.simpleCpList,a.shortCP=m.shortCpList,a.animation=m.showAnimations,a.wideB=m.preferWideBoxes,a.fluidD=m.fluidDisplay,a.clock=m.showClock,a.showButtonBar=m.showButtonBar,a.showCounters=m.showCounters,a.showVehicles=m.showVehicles,a.showStandardV=m.showStandardVehicle,a.showPrices=m.showPrices,a.showInv=m.showInverters,a.altEngy=m.alternativeEnergy,a.lowerP=m.lowerPriceBound,a.upperP=m.upperPriceBound,a.sslPrefs=m.sslPrefs,a.pmLabels=m.showPmLabels,a.debug=m.debug,document.cookie="openWBColorTheme="+JSON.stringify(a)+";max-age=16000000;"+(m.sslPrefs?"SameSite=None;Secure":"SameSite=Strict")}function Wn(){const e=document.cookie.split(";").filter(t=>t.split("=")[0]==="openWBColorTheme");if(e.length>0){const t=JSON.parse(e[0].split("=")[1]);t.decimalP!==void 0&&m.setDecimalPlaces(+t.decimalP),t.smartHomeC!==void 0&&m.setSmartHomeColors(t.smartHomeC),t.hideSH!==void 0&&t.hideSH.forEach(o=>{ne.get(o)==null&&qt(o),ne.get(o).setShowInGraph(!1)}),t.showLG!==void 0&&m.setGraphPreference(t.showLG?"live":"today"),t.maxPow!==void 0&&m.setMaxPower(+t.maxPow),t.relPM!==void 0&&m.setShowRelativeArcs(t.relPM),t.displayM!==void 0&&m.setDisplayMode(t.displayM),t.stackO!==void 0&&m.setUsageStackOrder(t.stackO),t.showGr!==void 0&&m.setShowGrid(t.showGr),t.showQA!==void 0&&m.setShowQuickAccess(t.showQA),t.simpleCP!==void 0&&m.setSimpleCpList(t.simpleCP),t.shortCP!==void 0&&m.setShortCpList(t.shortCP),t.animation!=null&&m.setShowAnimations(t.animation),t.wideB!=null&&m.setPreferWideBoxes(t.wideB),t.fluidD!=null&&m.setFluidDisplay(t.fluidD),t.clock!=null&&m.setShowClock(t.clock),t.showButtonBar!==void 0&&m.setShowButtonBar(t.showButtonBar),t.showCounters!==void 0&&m.setShowCounters(t.showCounters),t.showVehicles!==void 0&&m.setShowVehicles(t.showVehicles),t.showStandardV!==void 0&&m.setShowStandardVehicle(t.showStandardV),t.showPrices!==void 0&&m.setShowPrices(t.showPrices),t.showInv!==void 0&&m.setShowInverters(t.showInv),t.altEngy!==void 0&&m.setAlternativeEnergy(t.altEngy),t.lowerP!==void 0&&m.setLowerPriceBound(t.lowerP),t.upperP!==void 0&&m.setUpperPriceBound(t.upperP),t.sslPrefs!==void 0&&m.setSslPrefs(t.sslPrefs),t.pmLabels!==void 0&&m.setShowPmLabels(t.pmLabels),t.debug!==void 0&&m.setDebug(t.debug)}}const ie=pe({evuIn:{name:"Netz",color:"var(--color-evu)",icon:""},pv:{name:"PV",color:"var(--color-pv",icon:""},batOut:{name:"Bat >",color:"var(--color-battery)",icon:""},evuOut:{name:"Export",color:"var(--color-export)",icon:""},charging:{name:"Laden",color:"var(--color-charging)",icon:""},devices:{name:"Geräte",color:"var(--color-devices)",icon:""},batIn:{name:"> Bat",color:"var(--color-battery)",icon:""},house:{name:"Haus",color:"var(--color-house)",icon:""},cp1:{name:"Ladepunkt",color:"var(--color-cp1)",icon:"Ladepunkt"},cp2:{name:"Ladepunkt",color:"var(--color-cp2)",icon:"Ladepunkt"},cp3:{name:"Ladepunkt",color:"var(--color-cp3)",icon:"Ladepunkt"},cp4:{name:"Ladepunkt",color:"var(--color-cp4)",icon:"Ladepunkt"},cp5:{name:"Ladepunkt",color:"var(--color-cp5)",icon:"Ladepunkt"},cp6:{name:"Ladepunkt",color:"var(--color-cp6)",icon:"Ladepunkt"},cp7:{name:"Ladepunkt",color:"var(--color-cp7)",icon:"Ladepunkt"},cp8:{name:"Ladepunkt",color:"var(--color-cp8)",icon:"Ladepunkt"},sh1:{name:"Gerät",color:"var(--color-sh1)",icon:"Gerät"},sh2:{name:"Gerät",color:"var(--color-sh2)",icon:"Gerät"},sh3:{name:"Gerät",color:"var(--color-sh3)",icon:"Gerät"},sh4:{name:"Gerät",color:"var(--color-sh4)",icon:"Gerät"},sh5:{name:"Gerät",color:"var(--color-sh5)",icon:"Gerät"},sh6:{name:"Gerät",color:"var(--color-sh6)",icon:"Gerät"},sh7:{name:"Gerät",color:"var(--color-sh7)",icon:"Gerät"},sh8:{name:"Gerät",color:"var(--color-sh8)",icon:"Gerät"},sh9:{name:"Gerät",color:"var(--color-sh9)",icon:"Gerät"},pv1:{name:"PV",color:"var(--color-pv1)",icon:"Wechselrichter"},pv2:{name:"PV",color:"var(--color-pv2)",icon:"Wechselrichter"},pv3:{name:"PV",color:"var(--color-pv3)",icon:"Wechselrichter"},pv4:{name:"PV",color:"var(--color-pv4)",icon:"Wechselrichter"},pv5:{name:"PV",color:"var(--color-pv5)",icon:"Wechselrichter"},pv6:{name:"PV",color:"var(--color-pv6)",icon:"Wechselrichter"},pv7:{name:"PV",color:"var(--color-pv7)",icon:"Wechselrichter"},pv8:{name:"PV",color:"var(--color-pv8)",icon:"Wechselrichter"},pv9:{name:"PV",color:"var(--color-pv9)",icon:"Wechselrichter"},bat1:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat2:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat3:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat4:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat5:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat6:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat7:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat8:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"},bat9:{name:"Speicher",color:"var(--color-battery)",icon:"Speicher"}});class La{constructor(){v(this,"_items",{});this.addItem("evuIn"),this.addItem("pv"),this.addItem("batOut"),this.addItem("evuOut"),this.addItem("charging"),this.addItem("devices"),this.addItem("batIn"),this.addItem("house")}get items(){return this._items}keys(){return Object.keys(this._items)}values(){return Object.values(this._items)}addItem(e,t,o){let s;if(t)s=t;else switch(e){case"evuIn":s=K.counter;break;case"pv":s=K.inverter;break;case"batOut":s=K.battery;break;case"evuOut":s=K.counter;break;case"charging":s=K.chargepoint;break;case"devices":s=K.device;break;case"batIn":s=K.battery;break;case"house":s=K.house;break;default:s=K.counter}this._items[e]=o?De(e,s,o):De(e,s)}setEnergy(e,t){this.keys().includes(e)||this.addItem(e),this._items[e].energy=t}setEnergyPv(e,t){this.keys().includes(e)||this.addItem(e),this._items[e].energyPv=t}setEnergyBat(e,t){this.keys().includes(e)||this.addItem(e),this._items[e].energyBat=t}setPvPercentage(e,t){this.keys().includes(e)||this.addItem(e),this._items[e].pvPercentage=t<=100?t:100}calculateHouseEnergy(){this._items.house.energy=this._items.evuIn.energy+this._items.pv.energy+this._items.batOut.energy-this._items.evuOut.energy-this._items.batIn.energy-this._items.charging.energy-this._items.devices.energy}}let T=pe(new La);function na(){T=new La}const J=pe({evuIn:De("evuIn",K.counter),pv:De("pv",K.pvSummary),batOut:De("batOut",K.batterySummary)}),F=pe({evuOut:De("evuOut",K.counter),charging:De("charging",K.chargeSummary),devices:De("devices",K.deviceSummary),batIn:De("batIn",K.batterySummary),house:De("house",K.house)}),he=pe(new An);Y("");const ut=Y(!1);function De(a,e,t){return{name:ie[a]?ie[a].name:"item",type:e,power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:t||(ie[a]?ie[a].color:"var(--color-charging)"),icon:ie[a]?ie[a].icon:"",showInGraph:!0}}const Ht=Y(new Date),be=Y(new Map),Gn=a=>{be.value.set(a,new Ma(a)),jn()};function jn(){[...be.value.values()].sort((e,t)=>e.id-t.id).forEach((e,t)=>{e.color=ie["pv"+(t+1)].color})}class Un{constructor(e){v(this,"id");v(this,"name","Speicher");v(this,"type",K.battery);v(this,"color","var(--color-battery)");v(this,"dailyYieldExport",0);v(this,"dailyYieldImport",0);v(this,"monthlyYieldExport",0);v(this,"monthlyYieldImport",0);v(this,"yearlyYieldExport",0);v(this,"yearlyYieldImport",0);v(this,"exported",0);v(this,"faultState",0);v(this,"faultStr","");v(this,"imported",0);v(this,"power",0);v(this,"soc",0);v(this,"energy",0);v(this,"energyPv",0);v(this,"energyBat",0);v(this,"pvPercentage",0);v(this,"showInGraph",!0);v(this,"icon","Speicher");this.id=e}}class Fn{constructor(){v(this,"dailyExport",0);v(this,"dailyImport",0);v(this,"exported",0);v(this,"imported",0);v(this,"power",0);v(this,"soc",0)}}pe(new Fn);const se=Y(new Map),Ta=a=>{se.value.set(a,new Un(a)),se.value.get(a).color=ie["bat"+se.value.size].color};function Nn(){se.value=new Map}function Pe(a,e=1){let t;if(a>=1e3&&e<4){switch(e){case 0:t=Math.round(a/1e3);break;case 1:t=Math.round(a/100)/10;break;case 2:t=Math.round(a/10)/100;break;case 3:t=Math.round(a)/1e3;break;default:t=Math.round(a/100)/10;break}return(t==null?void 0:t.toLocaleString(void 0,{minimumFractionDigits:e}))+" kW"}else return Math.round(a).toLocaleString()+" W"}function Re(a,e=1,t=!1){let o;if(a>1e6&&(t=!0,a=a/1e3),a>=1e3&&e<4){switch(e){case 0:o=Math.round(a/1e3);break;case 1:o=Math.round(a/100)/10;break;case 2:o=Math.round(a/10)/100;break;case 3:o=Math.round(a)/1e3;break;default:o=Math.round(a/100)/10;break}return o.toLocaleString(void 0,{minimumFractionDigits:e})+(t?" MWh":" kWh")}else return Math.round(a).toLocaleString()+(t?" kWh":" Wh")}function Hn(a){const e=Math.floor(a/3600),t=(a%3600/60).toFixed(0);return e>0?e+"h "+t+" min":t+" min"}function Oa(a){return a.toLocaleTimeString(["de-DE"],{hour:"2-digit",minute:"2-digit"})}function Rn(a,e){return["Jan","Feb","März","April","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Dez"][a]+" "+e}function Jn(a){return a!=999?(Math.round(a*10)/10).toLocaleString(void 0,{minimumFractionDigits:1})+"°":"-"}function qn(a){const e=document.documentElement,t=getComputedStyle(e);a=a.slice(4,-1);const o=t.getPropertyValue(a).trim(),s=parseInt(o.slice(1,3),16),r=parseInt(o.slice(3,5),16),p=parseInt(o.slice(5,7),16);return(s*299+r*587+p*114)/1e3>125?"black":"white"}const Yn={y:"0",class:"popup-title"},Qn={dy:"1em",x:"0",class:"popup-content"},Zn=B({__name:"PMPopup",props:{consumer:{}},setup(a){const e=a;function t(o){return o.length>8?o.substring(0,8)+".":o}return(o,s)=>(i(),f("g",null,[n("rect",{x:"-40",y:"-17",rx:"10",ry:"10",width:"80",height:"40","corner-radius":"20",filter:"url(#f1)",class:"popup",style:te({fill:e.consumer.color})},null,4),n("text",{dy:"0",x:"0",y:"0",class:"popup-textbox",style:te({fill:l(qn)(e.consumer.color)})},[n("tspan",Yn,x(t(e.consumer.name)),1),n("tspan",Qn,x(l(Pe)(Math.abs(e.consumer.power))),1)],4)]))}}),j=(a,e)=>{const t=a.__vccOpts||a;for(const[o,s]of e)t[o]=s;return t},Xn=j(Zn,[["__scopeId","data-v-a154651e"]]),Kn=["d","fill","stroke"],er={key:0},tr=["transform"],ar=20,Aa=B({__name:"PMArc",props:{upperArc:{type:Boolean},plotdata:{},radius:{},showLabels:{type:Boolean},categoriesToShow:{}},setup(a){const e=a,t=Math.PI/40,o=g(()=>e.plotdata.length-1),s=g(()=>e.upperArc?la().value(c=>Math.abs(c.power)).startAngle(-Math.PI/2+t).endAngle(Math.PI/2-t).sort(null):la().value(c=>c.power).startAngle(Math.PI*1.5-t).endAngle(Math.PI/2+t).sort(null)),r=g(()=>qa().innerRadius(e.radius*.88).outerRadius(e.radius).cornerRadius(ar));function p(c,d){return d==o.value?c.data.power>0?"var(--color-scale)":"null":c.data.color}const h=g(()=>e.plotdata.reduce((c,d)=>c+Math.abs(d.power),0));return(c,d)=>(i(),f(W,null,[d[0]||(d[0]=n("g",null,[n("defs",null,[n("filter",{id:"f1"},[n("feDropShadow",{dx:"1",dy:"1",rx:"10",ry:"10",stdDeviation:"1","flood-opacity":"0.7","flood-color":"var(--color-axis)"})])])],-1)),(i(!0),f(W,null,Q(s.value(e.plotdata.filter(u=>u.power!=0)),(u,k)=>(i(),f("g",{key:u.data.name},[n("path",{d:r.value(u),fill:u.data.color,stroke:p(u,k)},null,8,Kn)]))),128)),e.showLabels?(i(),f("g",er,[(i(!0),f(W,null,Q(s.value(c.plotdata.filter(u=>u.power!=0)),u=>(i(),f("g",{key:u.data.name,transform:"translate("+r.value.centroid(u)+")"},[c.categoriesToShow.includes(u.data.type)&&Math.abs(u.data.power)/h.value>.05?(i(),$(Xn,{key:0,consumer:u.data},null,8,["consumer"])):w("",!0)],8,tr))),128))])):w("",!0)],64))}}),nr=B({__name:"PMSourceArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{},showLabels:{type:Boolean}},setup(a){const e=a,t=[K.inverter,K.battery],o=g(()=>({name:"",type:K.counter,power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:"",showInGraph:!0})),s=g(()=>[J.evuIn].concat(r.value,p.value,o.value)),r=g(()=>be.value.size>1?[...be.value.values()].sort((h,c)=>h.power-c.power):[J.pv]),p=g(()=>se.value.size>1?[...se.value.values()].filter(h=>h.power<0).sort((h,c)=>h.power-c.power):[J.batOut]);return Ya(()=>{let h=J.pv.power+J.evuIn.power+J.batOut.power;h>m.maxPower&&(m.maxPower=h)}),(h,c)=>(i(),$(Aa,{"upper-arc":!0,plotdata:s.value,radius:e.radius,"show-labels":e.showLabels,"categories-to-show":t},null,8,["plotdata","radius","show-labels"]))}}),rr=B({__name:"PMUsageArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{},showLabels:{type:Boolean}},setup(a){const e=a,t=[K.chargepoint,K.battery,K.device],o=g(()=>({name:"",type:K.counter,power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:"",showInGraph:!0})),s=g(()=>[F.evuOut].concat(r.value,p.value,h.value,F.house,o.value)),r=g(()=>Object.values(O).length>1?Object.values(O).sort((c,d)=>d.power-c.power):[F.charging]),p=g(()=>{let c=0;for(const k of ne.values())k.configured&&!k.countAsHouse&&!k.showInGraph&&(c+=k.power);const d={name:"Geräte",type:K.device,power:c,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-devices)",icon:"",showInGraph:!0};let u=[...ne.values()].filter(k=>k.configured);return u.length>1?[d].concat(u.filter(k=>!k.countAsHouse&&k.showInGraph).sort((k,M)=>M.power-k.power)):[F.devices]}),h=g(()=>se.value.size>1?[...se.value.values()].filter(c=>c.power>0).sort((c,d)=>d.power-c.power):[F.batIn]);return(c,d)=>(i(),$(Aa,{"upper-arc":!1,plotdata:s.value,radius:e.radius,"show-labels":e.showLabels,"categories-to-show":t},null,8,["plotdata","radius","show-labels"]))}}),bt=B({__name:"FormatWatt",props:{watt:{}},setup(a){const e=a,t=g(()=>Pe(e.watt,m.decimalPlaces));return(o,s)=>x(t.value)}}),or={key:0,id:"pmLabel"},sr=["x","y","fill","text-anchor"],lr=22,Ee=B({__name:"PMLabel",props:{x:{},y:{},data:{},props:{},anchor:{},labeltext:{},labelicon:{},labelcolor:{}},setup(a){const e=a,t=g(()=>e.labeltext?e.labeltext:e.props?e.props.icon+" ":e.labelicon?e.labelicon+" ":""),o=g(()=>e.labelcolor?e.labelcolor:e.props?e.props.color:""),s=g(()=>!e.data||e.data.power>0),r=g(()=>e.labeltext?"":"fas");return(p,h)=>s.value?(i(),f("g",or,[n("text",{x:p.x,y:p.y,fill:o.value,"text-anchor":p.anchor,"font-size":lr,class:"pmLabel"},[n("tspan",{class:H(r.value)},x(t.value),3),n("tspan",null,[p.data!==void 0?(i(),$(bt,{key:0,watt:p.data.power},null,8,["watt"])):w("",!0)])],8,sr)])):w("",!0)}}),ir={class:"wb-widget p-0 m-0 shadow"},cr={class:"d-flex justify-content-between"},ur={class:"m-4 me-0 mb-0"},dr={class:"p-4 pb-0 ps-0 m-0",style:{"text-align":"right"}},hr={class:"px-4 pt-4 pb-2 wb-subwidget"},pr={class:"row"},gr={class:"col m-0 p-0"},mr={class:"container-fluid m-0 p-0"},fr={key:0},vr={class:"px-4 py-2 wb-subwidget"},br={class:"row"},yr={class:"col"},_r={class:"container-fluid m-0 p-0"},yt=B({__name:"WBWidget",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(a){const e=a,t=g(()=>e.fullWidth?"col-12":e.variableWidth&&m.preferWideBoxes?"col-lg-6":"col-lg-4");return(o,s)=>(i(),f("div",{class:H(["p-2 m-0 d-flex",t.value])},[n("div",ir,[n("div",cr,[n("h3",ur,[de(o.$slots,"title",{},()=>[s[0]||(s[0]=n("div",{class:"p-0"},"(title goes here)",-1))]),de(o.$slots,"subtitle")]),n("div",dr,[de(o.$slots,"buttons")])]),n("div",hr,[n("div",pr,[n("div",gr,[n("div",mr,[de(o.$slots,"default")])])])]),o.$slots.footer!=null?(i(),f("div",fr,[s[1]||(s[1]=n("hr",null,null,-1)),n("div",vr,[n("div",br,[n("div",yr,[n("div",_r,[de(o.$slots,"footer")])])])])])):w("",!0)])],2))}});class wr{constructor(){v(this,"active",!1);v(this,"etPriceList",new Map);v(this,"etProvider","");v(this,"etMaxPrice",0)}get etCurrentPriceString(){const[e]=oe.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+" ct"}}const oe=pe(new wr),kr={id:"powermeter",class:"p-0 m-0"},xr=["viewBox"],Sr=["transform"],$r=["x"],Mr=["y"],Ke=500,Fe=20,ma=20,Pr=B({__name:"PowerMeter",setup(a){const e=Ke,t=Math.PI/40,o=[[4],[4,6],[1,4,6],[0,2,4,6],[0,2,3,5,6]],s=[{x:-85,y:e/2*1/5},{x:0,y:e/2*1/5},{x:85,y:e/2*1/5},{x:-85,y:e/2*2/5},{x:0,y:e/2*2/5},{x:85,y:e/2*2/5},{x:0,y:e/2*3/5}],r=g(()=>Ke/2-Fe),p=g(()=>{let I="",P=Object.values(J).filter(V=>V.power>0);return P.length==1&&P[0].name=="PV"?I="Aktueller Verbrauch: ":I="Bezug/Verbrauch: ",I+Pe(F.house.power+F.charging.power+F.devices.power+F.batIn.power,m.decimalPlaces)}),h=g(()=>{let I=J.pv.power+J.evuIn.power+J.batOut.power;return m.maxPower>I?Pe(m.maxPower,m.decimalPlaces):Pe(I,m.decimalPlaces)}),c=g(()=>Object.values(O)),d=g(()=>{let I=0;return m.showRelativeArcs&&(I=m.maxPower-(J.pv.power+J.evuIn.power+J.batOut.power)),I<0?0:I}),u=g(()=>[F.evuOut,F.charging,F.devices,F.batIn,F.house].filter(I=>I.power>0)),k=g(()=>o[u.value.length-1]);function M(I){return s[k.value[I]]}function A(I){return I.length>12?I.slice(0,11)+".":I}const G=g(()=>{const[I]=oe.etPriceList.values();return Math.round(I*10)/10});function q(){m.showPmLabels=!m.showPmLabels}return(I,P)=>(i(),$(yt,{"full-width":!0},{title:_(()=>P[0]||(P[0]=[R(" Aktuelle Leistung ")])),default:_(()=>[n("figure",kr,[(i(),f("svg",{viewBox:"0 0 "+Ke+" "+l(e)},[n("g",{transform:"translate("+Ke/2+","+l(e)/2+")"},[b(nr,{radius:r.value,"corner-radius":ma,"circle-gap-size":t,"empty-power":d.value,"show-labels":l(m).showPmLabels},null,8,["radius","empty-power","show-labels"]),b(rr,{radius:r.value,"corner-radius":ma,"circle-gap-size":t,"empty-power":d.value,"show-labels":l(m).showPmLabels},null,8,["radius","empty-power","show-labels"]),b(Ee,{x:0,y:-l(e)/10*2,data:l(J).pv,props:l(ie).pv,anchor:"middle",config:l(m)},null,8,["y","data","props","config"]),b(Ee,{x:0,y:-l(e)/10*3,data:l(J).evuIn,props:l(ie).evuIn,anchor:"middle",config:l(m)},null,8,["y","data","props","config"]),b(Ee,{x:0,y:-l(e)/10,data:l(J).batOut,props:l(ie).batOut,anchor:"middle",config:l(m)},null,8,["y","data","props","config"]),l(oe).active?(i(),$(Ee,{key:0,x:0,y:-l(e)/10,data:l(J).batOut,props:l(ie).batOut,anchor:"middle",config:l(m)},null,8,["y","data","props","config"])):w("",!0),(i(!0),f(W,null,Q(u.value,(V,S)=>(i(),$(Ee,{key:S,x:M(S).x,y:M(S).y,data:V,labelicon:V.icon,labelcolor:V.color,anchor:"middle",config:l(m)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),l(fe)[0]!=null&&l(Z)[l(fe)[0]]!=null?(i(),$(Ee,{key:1,x:-500/2-Fe/4+10,y:-l(e)/2+Fe+5,labeltext:A(l(Z)[l(fe)[0]].name)+": "+Math.round(l(Z)[l(fe)[0]].soc)+"%",labelcolor:c.value[0]?c.value[0].color:"var(--color-charging)",anchor:"start",config:l(m)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),l(fe)[1]!=null&&l(Z)[l(fe)[1]]!=null?(i(),$(Ee,{key:2,x:Ke/2+Fe/4-10,y:-l(e)/2+Fe+5,labeltext:A(l(Z)[l(fe)[1]].name)+": "+Math.round(l(Z)[l(fe)[1]].soc)+"%",labelcolor:c.value[1]?c.value[1].color:"var(--color-charging)",anchor:"end",config:l(m)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),l(he).batterySoc>0?(i(),$(Ee,{key:3,x:-500/2-Fe/4+10,y:l(e)/2-Fe+15,labeltext:"Speicher: "+l(he).batterySoc+"%",labelcolor:l(F).batIn.color,anchor:"start",config:l(m)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),l(oe).active?(i(),$(Ee,{key:4,x:Ke/2+Fe/4-10,y:l(e)/2-Fe+15,value:G.value,labeltext:l(oe).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:l(m)},null,8,["x","y","value","labeltext","config"])):w("",!0),b(Ee,{x:0,y:0,labeltext:p.value,labelcolor:"var(--color-fg)",anchor:"middle",config:l(m)},null,8,["labeltext","config"]),l(m).showRelativeArcs?(i(),f("text",{key:5,x:Ke/2-44,y:"2","text-anchor":"middle",fill:"var(--color-axis)","font-size":"12"}," Peak: "+x(h.value),9,$r)):w("",!0),n("text",{x:0,y:l(e)/2*3.8/5,"text-anchor":"middle",fill:"var(--color-menu)","font-size":"28",class:"fas",type:"button",onClick:q},x(""),8,Mr)],8,Sr)],8,xr))])]),_:1}))}}),Cr=["origin","origin2","transform"],Ir=B({__name:"PgSourceGraph",props:{width:{},height:{},margin:{}},setup(a){const e=a,t={house:"var(--color-house)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",pv:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)"};var o,s;const r=m.showAnimations?m.animationDuration:0,p=m.showAnimations?m.animationDelay:0,h=g(()=>{const C=ge("g#pgSourceGraph");if(y.data.length>0){y.graphMode=="month"||y.graphMode=="year"?V(C,Qe.value):P(C,Le.value),C.selectAll(".axis").remove();const z=C.append("g").attr("class","axis");z.call(G.value),z.selectAll(".tick").attr("font-size",12),z.selectAll(".tick line").attr("stroke",I.value).attr("stroke-width",q.value),z.select(".domain").attr("stroke","var(--color-bg)")}return"pgSourceGraph.vue"}),c=g(()=>xa().value((C,z)=>C[z]??0).keys(k.value)),d=g(()=>c.value(y.data)),u=g(()=>Je().range([e.height-10,0]).domain(y.graphMode=="year"?[0,Math.ceil(M.value[1]*10)/10]:[0,Math.ceil(M.value[1])])),k=g(()=>{let C=[];const z=["batOut","evuIn"];if(m.showInverters){const E=/pv\d+/;y.data.length>0&&(C=Object.keys(y.data[0]).reduce((L,re)=>(re.match(E)&&L.push(re),L),[]))}switch(y.graphMode){case"live":return m.showInverters?["pv","batOut","evuIn"]:["selfUsage","evuOut","batOut","evuIn"];case"today":case"day":return C.forEach(E=>{var L;t[E]=((L=be.value.get(+E.slice(2)))==null?void 0:L.color)??"var(--color-pv)"}),m.showInverters?[...C,...z]:["selfUsage","evuOut","batOut","evuIn"];default:return["evuIn","batOut","selfUsage","evuOut"]}}),M=g(()=>{let C=Te(y.data,z=>Math.max(z.pv+z.evuIn+z.batOut,z.selfUsage+z.evuOut));return C[0]!=null&&C[1]!=null?(y.graphMode=="year"&&(C[0]=C[0]/1e3,C[1]=C[1]/1e3),C):[0,0]}),A=g(()=>y.graphMode=="month"||y.graphMode=="year"?-e.width-e.margin.right-22:-e.width),G=g(()=>mt(u.value).tickSizeInner(A.value).ticks(4).tickFormat(C=>(C==0?"":Math.round(C*10)/10).toLocaleString(void 0))),q=g(()=>m.showGrid?"0.5":"1"),I=g(()=>m.showGrid?"var(--color-grid)":"var(--color-bg)");function P(C,z){const E=ot().x((re,$e)=>z(y.data[$e].date)).y(u.value(0)).curve(st),L=ot().x((re,$e)=>z(y.data[$e].date)).y0(re=>u.value(y.graphMode=="year"?re[0]/1e3:re[0])).y1(re=>u.value(y.graphMode=="year"?re[1]/1e3:re[1])).curve(st);gt?(C.selectAll("*").remove(),o=C.append("svg").attr("x",0).attr("width",e.width).selectAll(".sourceareas").data(d.value).enter().append("path").attr("fill",($e,D)=>t[k.value[D]]).attr("d",$e=>E($e)),o.transition().duration(r).delay(p).ease(ht).attr("d",$e=>L($e)),ca()):o.data(d.value).transition().duration(0).ease(ht).attr("d",re=>L(re))}function V(C,z){y.data.length>0&&(gt?(C.selectAll("*").remove(),s=C.selectAll(".sourcebar").data(d.value).enter().append("g").attr("fill",(E,L)=>t[k.value[L]]).selectAll("rect").data(E=>E).enter().append("rect").attr("x",(E,L)=>z(y.data[L].date)??0).attr("y",()=>u.value(0)).attr("height",0).attr("width",z.bandwidth()),s.transition().duration(r).delay(p).ease(ht).attr("height",E=>y.graphMode=="year"?u.value(E[0]/1e3)-u.value(E[1]/1e3):u.value(E[0])-u.value(E[1])).attr("y",E=>y.graphMode=="year"?u.value(E[1]/1e3):u.value(E[1])),ca()):(C.selectAll("*").remove(),s=C.selectAll(".sourcebar").data(d.value).enter().append("g").attr("fill",(E,L)=>t[k.value[L]]).selectAll("rect").data(E=>E).enter().append("rect").attr("x",(E,L)=>z(y.data[L].date)??0).attr("y",E=>y.graphMode=="year"?u.value(E[1]/1e3):u.value(E[1])).attr("width",z.bandwidth()).attr("height",E=>y.graphMode=="year"?u.value(E[0]/1e3)-u.value(E[1]/1e3):u.value(E[0])-u.value(E[1]))))}const S=g(()=>{const C=ge("g#pgSourceGraph");if(y.graphMode!="month"&&y.graphMode!="year"&&y.data.length>0){Le.value.range(Ze.value);const z=ot().x((E,L)=>Le.value(y.data[L].date)).y0(E=>u.value(E[0])).y1(E=>u.value(E[1])).curve(st);C.selectAll("path").attr("d",E=>E?z(E):""),C.selectAll("g#sourceToolTips").select("rect").attr("x",E=>Le.value(E.date)).attr("width",e.width/y.data.length)}return"zoomed"});return(C,z)=>(i(),f("g",{id:"pgSourceGraph",origin:h.value,origin2:S.value,transform:"translate("+C.margin.left+","+C.margin.top+")"},null,8,Cr))}}),Br=["origin","origin2","transform"],Vr=B({__name:"PgUsageGraph",props:{width:{},height:{},margin:{},stackOrder:{}},setup(a){const e=a,t=g(()=>m.showInverters?[["house","charging","devices","batIn","evuOut"],["charging","devices","batIn","house","evuOut"],["devices","batIn","charging","house","evuOut"],["batIn","charging","house","devices","evuOut"]]:[["house","charging","devices","batIn"],["charging","devices","batIn","house"],["devices","batIn","charging","house"],["batIn","charging","house","devices"]]),o={house:"var(--color-house)",charging:"var(--color-charging)",batIn:"var(--color-battery)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)",cp0:"var(--color-cp0)",cp1:"var(--color-cp1)",cp2:"var(--color-cp2)",cp3:"var(--color-cp3)",sh1:"var(--color-sh1)",sh2:"var(--color-sh2)",sh3:"var(--color-sh3)",sh4:"var(--color-sh4)",devices:"var(--color-devices)"};var s,r;const p=m.showAnimations?m.animationDuration:0,h=m.showAnimations?m.animationDelay:0,c=g(()=>{const S=ge("g#pgUsageGraph");y.graphMode=="month"||y.graphMode=="year"?P(S):I(S),S.selectAll(".axis").remove();const C=S.append("g").attr("class","axis");return C.call(q.value),C.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),m.showGrid?C.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):C.selectAll(".tick line").attr("stroke","var(--color-bg)"),C.select(".domain").attr("stroke","var(--color-bg)"),"pgUsageGraph.vue"}),d=g(()=>xa().value((S,C)=>S[C]??0).keys(M.value)),u=g(()=>d.value(y.data)),k=g(()=>Je().range([e.height+10,2*e.height]).domain(y.graphMode=="year"?[0,Math.ceil(A.value[1]*10)/10]:[0,Math.ceil(A.value[1])])),M=g(()=>{if(y.graphMode!="today"&&y.graphMode!="day"&&y.graphMode!="live")return t.value[e.stackOrder];{const S=t.value[e.stackOrder].slice(),C=S.indexOf("charging");S.splice(C,1);const z=/cp\d+/;let E=[];return y.data.length>0&&(E=Object.keys(y.data[0]).reduce((L,re)=>(re.match(z)&&L.push(re),L),[])),E.forEach((L,re)=>{var $e;S.splice(C+re,0,L),o[L]=(($e=O[+L.slice(2)])==null?void 0:$e.color)??"black"}),S}}),A=g(()=>{let S=Te(y.data,C=>C.house+C.charging+C.batIn+C.devices+C.evuOut);return S[0]!=null&&S[1]!=null?(y.graphMode=="year"&&(S[0]=S[0]/1e3,S[1]=S[1]/1e3),S):[0,0]}),G=g(()=>y.graphMode=="month"||y.graphMode=="year"?-e.width-e.margin.right-22:-e.width),q=g(()=>mt(k.value).tickSizeInner(G.value).ticks(4).tickFormat(S=>(S==0?"":Math.round(S*10)/10).toLocaleString(void 0)));function I(S){const C=ot().x((E,L)=>Le.value(y.data[L].date)).y(k.value(0)).curve(st),z=ot().x((E,L)=>Le.value(y.data[L].date)).y0(E=>k.value(E[0])).y1(E=>k.value(E[1])).curve(st);m.showAnimations?ct?(S.selectAll("*").remove(),s=S.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(u.value).enter().append("path").attr("d",L=>C(L)).attr("fill",(L,re)=>o[M.value[re]]),s.transition().duration(300).delay(100).ease(ht).attr("d",L=>z(L)),da()):(S.selectAll("*").remove(),S.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(u.value).enter().append("path").attr("d",L=>z(L)).attr("fill",(L,re)=>o[M.value[re]])):(S.selectAll("*").remove(),S.append("svg").attr("x",0).attr("width",e.width).selectAll(".usageareas").data(u.value).enter().append("path").attr("d",L=>z(L)).attr("fill",(L,re)=>o[M.value[re]]))}function P(S){ct?(S.selectAll("*").remove(),r=S.selectAll(".usagebar").data(u.value).enter().append("g").attr("fill",(C,z)=>o[t.value[e.stackOrder][z]]).selectAll("rect").data(C=>C).enter().append("rect").attr("x",(C,z)=>Qe.value(y.data[z].date)??0).attr("y",()=>k.value(0)).attr("height",0).attr("width",Qe.value.bandwidth()),r.transition().duration(p).delay(h).ease(ht).attr("y",C=>y.graphMode=="year"?k.value(C[0]/1e3):k.value(C[0])).attr("height",C=>y.graphMode=="year"?k.value(C[1]/1e3)-k.value(C[0]/1e3):k.value(C[1])-k.value(C[0])),da()):(S.selectAll("*").remove(),r=S.selectAll(".usagebar").data(u.value).enter().append("g").attr("fill",(C,z)=>o[t.value[e.stackOrder][z]]).selectAll("rect").data(C=>C).enter().append("rect").attr("x",(C,z)=>Qe.value(y.data[z].date)??0).attr("y",C=>y.graphMode=="year"?k.value(C[0]/1e3):k.value(C[0])).attr("height",C=>y.graphMode=="year"?k.value(C[1]/1e3)-k.value(C[0]/1e3):k.value(C[1])-k.value(C[0])).attr("width",Qe.value.bandwidth()))}const V=g(()=>{const S=ge("g#pgUsageGraph");if(y.graphMode!="month"&&y.graphMode!="year"){Le.value.range(Ze.value);const C=ot().x((z,E)=>Le.value(y.data[E].date)).y0(z=>k.value(z[0])).y1(z=>k.value(z[1])).curve(st);S.selectAll("path").attr("d",z=>z?C(z):"")}return"zoomed"});return(S,C)=>(i(),f("g",{id:"pgUsageGraph",origin:c.value,origin2:V.value,transform:"translate("+S.margin.left+","+S.margin.top+")"},null,8,Br))}}),Lr=["width"],Tr=["transform"],Or=["width"],Ar=["transform"],Er=["origin","origin2","transform"],zr=["origin","transform"],Dr={key:0},Wr=["width","height"],Gr={key:1},jr=["y","width","height"],Bt=12,Ur=B({__name:"PgXAxis",props:{width:{},height:{},margin:{}},setup(a){const e=a,t=g(()=>pt(Le.value).ticks(6).tickSizeInner(p.value).tickFormat(it("%H:%M"))),o=g(()=>Qa(Le.value).ticks(6).tickSizeInner(p.value+3).tickFormat(it(""))),s=g(()=>pt(Qe.value).ticks(4).tickSizeInner(p.value).tickFormat(u=>u.toString())),r=g(()=>pt(Qe.value).ticks(4).tickSizeInner(p.value).tickFormat(()=>"")),p=g(()=>y.graphMode!=="month"&&y.graphMode!=="year"?m.showGrid?-(e.height/2-7):-10:0),h=g(()=>{let u=ge("g#PGXAxis"),k=ge("g#PgUnit");return u.selectAll("*").remove(),k.selectAll("*").remove(),y.graphMode=="month"||y.graphMode=="year"?u.call(s.value):u.call(t.value),u.selectAll(".tick > text").attr("fill",(M,A)=>A>=0||y.graphMode=="month"||y.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",Bt),m.showGrid?u.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):u.selectAll(".tick line").attr("stroke","var(--color-bg)"),u.select(".domain").attr("stroke","var(--color-bg)"),k.append("text").attr("x",0).attr("y",12).attr("fill","var(--color-axis)").attr("font-size",Bt).text(y.graphMode=="year"?"MWh":y.graphMode=="month"?"kWh":"kW").attr("text-anchor","start"),"PGXAxis.vue"}),c=g(()=>{let u=ge("g#PGXAxis2");return u.selectAll("*").remove(),y.graphMode=="month"||y.graphMode=="year"?u.call(r.value):u.call(o.value),u.selectAll(".tick > text").attr("fill",(k,M)=>M>=0||y.graphMode=="month"||y.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",Bt),m.showGrid?(u.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"),u.select(".domain").attr("stroke","var(--color-bg)")):u.selectAll(".tick line").attr("stroke","var(--color-bg)"),u.select(".domain").attr("stroke","var(--color-bg)"),"PGXAxis2.vue"}),d=g(()=>{if(y.graphMode!="month"&&y.graphMode!="year"){const u=ge("g#PGXAxis"),k=ge("g#PGXAxis2");y.graphMode=="month"||y.graphMode=="year"?(Qe.value.range(Ze.value),u.call(s.value),k.call(r.value)):(Le.value.range(Ze.value),u.call(t.value),k.call(o.value))}return"zoomed"});return(u,k)=>(i(),f(W,null,[(i(),f("svg",{x:"0",width:e.width},[n("g",{id:"PgUnit",transform:"translate(0,"+(u.height/2+9)+")"},null,8,Tr)],8,Lr)),(i(),f("svg",{x:0,width:e.width+10},[n("g",{transform:"translate("+u.margin.left+","+u.margin.top+")"},[n("g",{id:"PGXAxis",class:"axis",origin:h.value,origin2:d.value,transform:"translate(0,"+(u.height/2-6)+")"},null,8,Er),n("g",{id:"PGXAxis2",class:"axis",origin:c.value,transform:"translate(0,"+(u.height/2+-6)+")"},null,8,zr),l(m).showGrid?(i(),f("g",Dr,[n("rect",{x:"0",y:"0",width:u.width,height:u.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,Wr)])):w("",!0),l(m).showGrid?(i(),f("g",Gr,[n("rect",{x:"0",y:u.height/2+10,width:u.width,height:u.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,jr)])):w("",!0)],8,Ar)],8,Or))],64))}}),Fr=["width"],Nr=["id",".origin","d"],Hr=["id","d","stroke"],Rr=["x","y","text-anchor"],Vt=B({__name:"PgSoc",props:{width:{},height:{},margin:{},order:{}},setup(a){const e=a,t=g(()=>{let M=Te(y.data,A=>A.date);return M[0]&&M[1]?at().domain(M).range([0,e.width]):at().range([0,0])}),o=g(()=>Je().range([e.height-10,0]).domain([0,100])),s=g(()=>{let A=He().x(G=>t.value(G.date)).y(G=>o.value(e.order==2?G.batSoc:e.order==0?G["soc"+fe.value[0]]:G["soc"+fe.value[1]])??o.value(0))(y.data);return A||""}),r=g(()=>e.order),p=g(()=>{switch(e.order){case 2:return"Speicher";case 1:return Z[fe.value[1]]!=null?Z[fe.value[1]].name:"???";default:return Z[fe.value[0]]!=null?Z[fe.value[0]].name:"???"}}),h=g(()=>{switch(e.order){case 0:return"var(--color-cp1)";case 1:return"var(--color-cp2)";case 2:return"var(--color-battery)";default:return"red"}}),c=g(()=>{switch(e.order){case 0:return 3;case 1:return e.width-3;case 2:return e.width/2;default:return 0}}),d=g(()=>{if(y.data.length>0){let M;switch(e.order){case 0:return M=0,o.value(y.data[M]["soc"+fe.value[0]]+2);case 1:return M=y.data.length-1,Math.max(12,o.value(y.data[M]["soc"+fe.value[1]]+2));case 2:return M=Math.round(y.data.length/2),o.value(y.data[M].batSoc+2);default:return 0}}else return 0}),u=g(()=>{switch(e.order){case 0:return"start";case 1:return"end";case 2:return"middle";default:return"middle"}}),k=g(()=>{if(y.graphMode!="month"&&y.graphMode!="year"){const M=ge("path#soc-"+r.value),A=ge("path#socdashes-"+r.value);t.value.range(Ze.value);const G=He().x(q=>t.value(q.date)).y(q=>o.value(e.order==2?q.batSoc:e.order==1?q["soc"+fe.value[0]]:q["soc"+fe.value[1]])??o.value(0));M.attr("d",G(y.data)),A.attr("d",G(y.data))}return"zoomed"});return(M,A)=>(i(),f("svg",{x:"0",width:e.width},[n("g",null,[n("path",{id:"soc-"+r.value,".origin":k.value,class:"soc-baseline",d:s.value,stroke:"var(--color-bg)","stroke-width":"1",fill:"none"},null,40,Nr),n("path",{id:"socdashes-"+r.value,class:"soc-dashes",d:s.value,stroke:h.value,"stroke-width":"1",style:{strokeDasharray:"3,3"},fill:"none"},null,8,Hr),n("text",{class:"cpname",x:c.value,y:d.value,style:te({fill:h.value,fontSize:10}),"text-anchor":u.value},x(p.value),13,Rr)])],8,Fr))}}),Jr=["transform"],qr=B({__name:"PgSocAxis",props:{width:{},height:{},margin:{}},setup(a){const e=a,t=g(()=>Je().range([e.height-10,0]).domain([0,100])),o=g(()=>Za(t.value).ticks(5).tickFormat(r=>r.toString()+"%"));function s(){let r=ge("g#PGSocAxis");r.call(o.value),r.selectAll(".tick").attr("font-size",12),r.selectAll(".tick line").attr("stroke","var(--color-bg)"),r.select(".domain").attr("stroke","var(--color-bg)")}return Oe(()=>{s()}),(r,p)=>(i(),f("g",{id:"PGSocAxis",class:"axis",transform:"translate("+(r.width-20)+",0)"},null,8,Jr))}}),Yr={class:"d-flex align-self-top justify-content-center align-items-center"},Qr={class:"input-group input-group-xs"},Zr={key:0,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},Xr={class:"dropdown-menu"},Kr={class:"table optiontable"},eo=["onClick"],to={key:1,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},ao={class:"dropdown-menu"},no={class:"table optiontable"},ro=["onClick"],oo={key:2,class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},so={class:"dropdown-menu"},lo={class:"table optiontable"},io=["onClick"],co=B({__name:"DateInput",props:{modelValue:{type:Date,required:!0},mode:{type:String,default:"day"}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=new Date().getFullYear();let s=Array.from({length:10},(A,G)=>o-G);const r=Y(!0),p=e,h=[[0,1,2,3],[4,5,6,7],[8,9,10,11]],c=Y(t.modelValue.getDate()),d=Y(t.modelValue.getMonth()),u=Y(t.modelValue.getFullYear()),k=g(()=>{const G=new Date(u.value,d.value,1).getDay();let q=0;switch(d.value){case 1:case 3:case 5:case 7:case 8:case 10:case 12:q=31;break;case 4:case 6:case 9:case 11:q=30;break;case 2:Math.trunc(u.value/4)*4==u.value?q=29:q=28}let I=[],P=[0,0,0,0,0,0,0],V=G;for(let S=0;S(i(),f("span",Yr,[n("div",Qr,[t.mode=="day"||t.mode=="today"?(i(),f("button",Zr,x(c.value),1)):w("",!0),n("div",Xr,[n("table",Kr,[(i(!0),f(W,null,Q(k.value,(q,I)=>(i(),f("tr",{key:I,class:""},[(i(!0),f(W,null,Q(q,(P,V)=>(i(),f("td",{key:V},[P!=0?(i(),f("span",{key:0,type:"button",class:"btn optionbutton",onClick:S=>c.value=P},x(P),9,eo)):w("",!0)]))),128))]))),128))])]),t.mode!="year"&&t.mode!="live"?(i(),f("button",to,x(d.value+1),1)):w("",!0),n("div",ao,[n("table",no,[(i(),f(W,null,Q(h,(q,I)=>n("tr",{key:I,class:""},[(i(!0),f(W,null,Q(q,(P,V)=>(i(),f("td",{key:V,class:"p-0 m-0"},[n("span",{type:"button",class:"btn btn-sm optionbutton",onClick:S=>d.value=P},x(P+1),9,ro)]))),128))])),64))])]),t.mode!="live"?(i(),f("button",oo,x(u.value),1)):w("",!0),n("div",so,[n("table",lo,[(i(!0),f(W,null,Q(l(s),(q,I)=>(i(),f("tr",{key:I,class:""},[n("td",null,[n("span",{type:"button",class:"btn optionbutton",onClick:P=>u.value=q},x(q),9,io)])]))),128))])]),t.mode!="live"?(i(),f("button",{key:3,class:"button-outline-secondary",type:"button",onClick:M},G[0]||(G[0]=[n("span",{class:"fa-solid fa-circle-check"},null,-1)]))):w("",!0)])]))}}),uo=j(co,[["__scopeId","data-v-98690e5d"]]),ho={class:"btn-group m-0",role:"group","aria-label":"radiobar"},po=["id","value"],go=B({__name:"RadioBarInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=e,s=g({get(){return t.modelValue},set(h){o("update:modelValue",h)}});function r(h){let c=t.options[h].color?t.options[h].color:"var(--color-fg)";return t.options[h].active?{color:"var(--color-bg)",background:c}:{color:c}}function p(h){let c=h.target;for(;c&&!c.value&&c.parentElement;)c=c.parentElement;c.value&&(s.value=c.value)}return(h,c)=>(i(),f("div",null,[n("div",ho,[(i(!0),f(W,null,Q(h.options,(d,u)=>(i(),f("button",{id:"radio-"+d.value,key:u,class:H(["btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2",d.value==s.value?"active":""]),value:d.value,style:te(r(u)),onClick:p},[n("span",{style:te(r(u))},[d.icon?(i(),f("i",{key:0,class:H(["fa-solid",d.icon])},null,2)):w("",!0),R(" "+x(d.text),1)],4)],14,po))),128))])]))}}),Ea=j(go,[["__scopeId","data-v-82ab6829"]]),mo=B({__name:"PgSelector",props:{widgetid:{},showLeftButton:{type:Boolean},showRightButton:{type:Boolean},ignoreLive:{type:Boolean}},emits:["shiftLeft","shiftRight","shiftUp","shiftDown"],setup(a){const e=a,t=Y(0),o=g(()=>{if(y.waitForData)return"Lädt";switch(y.graphMode){case"live":return e.ignoreLive?"heute":`${me.duration} min`;case"today":return"heute";case"day":return ue.date.getDate()+"."+(ue.date.getMonth()+1)+".";case"month":return Rn(ze.month-1,ze.year);case"year":return Ye.year.toString();default:return"???"}}),s=["live","today","day","month","year"],r=["Live","Heute","Tag","Monat","Jahr"],p=g({get(){return y.graphMode},set(V){switch(V){case"day":k();break;case"today":M();break;case"live":u();break;case"month":A();break;case"year":G()}}}),h=g(()=>{switch(y.graphMode){case"live":case"today":return ue.getDate();case"month":return ze.getDate();default:return ue.getDate()}});function c(V){pa(V)}function d(){t.value+=1,t.value>2&&(t.value=0)}function u(){y.graphMode!="live"&&(y.graphMode="live",ve())}function k(){y.graphMode!="day"&&y.graphMode!="today"&&(y.graphMode="day",ve())}function M(){y.graphMode!="today"&&(y.graphMode="today",pa(new Date),ve())}function A(){y.graphMode!="month"&&(y.graphMode="month",ve())}function G(){y.graphMode!="year"&&(y.graphMode="year",ve())}const q=g(()=>t.value>0?{border:"1px solid var(--color-frame)"}:""),I=g(()=>t.value==1?"justify-content-between":"justify-content-end"),P=g(()=>t.value==1?"justify-content-between":"justify-content-center");return(V,S)=>(i(),f("div",{class:"d-flex flex-column justify-content-center pgselector rounded",style:te(q.value)},[t.value==2?(i(),$(Ea,{key:0,id:"pgm2",modelValue:p.value,"onUpdate:modelValue":S[0]||(S[0]=C=>p.value=C),class:"m-2",options:s.map((C,z)=>({text:r[z],value:C,color:"var(--color-menu)",active:C==l(y).graphMode}))},null,8,["modelValue","options"])):w("",!0),t.value==1?(i(),f("span",{key:1,type:"button",class:H(["arrowButton d-flex align-self-center mb-3 mt-3",{disabled:!e.showLeftButton}]),onClick:S[1]||(S[1]=C=>V.$emit("shiftUp"))},S[6]||(S[6]=[n("i",{class:"fa-solid fa-xl fa-chevron-circle-up"},null,-1)]),2)):w("",!0),n("div",{class:H(["d-flex align-items-center",P.value])},[t.value==1?(i(),f("span",{key:0,type:"button",class:H(["p-1",{disabled:!e.showLeftButton}]),onClick:S[2]||(S[2]=C=>V.$emit("shiftLeft"))},S[7]||(S[7]=[n("span",{class:"fa-solid fa-xl fa-chevron-circle-left arrowButton"},null,-1)]),2)):w("",!0),t.value<2?(i(),f("span",{key:1,type:"button",class:"btn-outline-secondary p-2 px-3 badge rounded-pill datebadge",onClick:d},x(o.value),1)):w("",!0),t.value==2?(i(),$(uo,{key:2,"model-value":h.value,mode:l(y).graphMode,"onUpdate:modelValue":c},null,8,["model-value","mode"])):w("",!0),t.value==1?(i(),f("span",{key:3,id:"graphRightButton",type:"button",class:H(["arrowButton fa-solid fa-xl fa-chevron-circle-right p-1",{disabled:!e.showRightButton}]),onClick:S[3]||(S[3]=C=>V.$emit("shiftRight"))},null,2)):w("",!0)],2),n("div",{class:H(["d-flex align-items-center",I.value])},[t.value==1?(i(),f("span",{key:0,type:"button",class:"p-1",onClick:d},S[8]||(S[8]=[n("span",{class:"fa-solid fa-xl fa-gear"},null,-1)]))):w("",!0),t.value==1?(i(),f("span",{key:1,id:"graphLeftButton",type:"button",class:H(["arrowButton fa-solid fa-xl fa-chevron-circle-down p-1",{disabled:!e.showLeftButton}]),onClick:S[4]||(S[4]=C=>V.$emit("shiftDown"))},null,2)):w("",!0),t.value>0?(i(),f("span",{key:2,type:"button",class:"p-1",onClick:S[5]||(S[5]=C=>t.value=0)},S[9]||(S[9]=[n("span",{class:"fa-solid fa-xl fa-circle-check"},null,-1)]))):w("",!0)],2)],4))}}),ra=j(mo,[["__scopeId","data-v-d75ec1a4"]]),fo=["x","fill"],vo=["x"],Be=B({__name:"PgToolTipLine",props:{cat:{},name:{},indent:{},power:{},width:{}},setup(a){const e=a;return(t,o)=>(i(),f(W,null,[t.power>0?(i(),f("tspan",{key:0,x:t.indent,dy:"1.3em",class:H(t.name?"":"fas"),fill:l(ie)[t.cat].color},x(t.name?t.name:l(ie)[t.cat].icon)+"   ",11,fo)):w("",!0),n("tspan",{"text-anchor":"end",x:t.width-t.indent},[e.power>0?(i(),$(bt,{key:0,watt:t.power*1e3},null,8,["watt"])):w("",!0)],8,vo)],64))}}),bo=["transform"],yo=["width","height"],_o={"text-anchor":"start",x:"5",y:"20","font-size":"16",fill:"var(--color-fg)"},wo=["x"],ko=B({__name:"PgToolTipItem",props:{entry:{},boxwidth:{},xScale:{type:[Function,Object]}},setup(a){const e=a,t=g(()=>Object.values(e.entry).filter(c=>c>0).length),o=g(()=>t.value*16),s=g(()=>Object.entries(e.entry).filter(([c,d])=>c.startsWith("pv")&&c.length>2&&d>0).map(([c,d])=>({power:d,name:Ne.value.get(c)?h(Ne.value.get(c)):"Wechselr.",id:c}))),r=g(()=>Object.entries(e.entry).filter(([c,d])=>c.startsWith("cp")&&c.length>2&&d>0).map(([c,d])=>({power:d,name:Ne.value.get(c)?h(Ne.value.get(c)):"Ladep.",id:c}))),p=g(()=>Object.entries(e.entry).filter(([c,d])=>c.startsWith("sh")&&c.length>2&&d>0).map(([c,d])=>({power:d,name:Ne.value.get(c)?h(Ne.value.get(c)):"Gerät",id:c})));function h(c){return c.length>6?c.slice(0,6)+"...":c}return(c,d)=>(i(),f("g",{class:"ttmessage",transform:"translate("+c.xScale(c.entry.date)+",0)"},[n("rect",{rx:"5",width:c.boxwidth,height:o.value,fill:"var(--color-bg)",opacity:"80%",stroke:"var(--color-menu)"},null,8,yo),n("text",_o,[n("tspan",{"text-anchor":"middle",x:c.boxwidth/2,dy:"0em"},x(l(it)("%H:%M")(new Date(c.entry.date))),9,wo),d[0]||(d[0]=n("line",{y:"120",x1:"5",x2:"100",stroke:"var(--color-fg)","stroke-width":"1"},null,-1)),b(Be,{cat:"evuIn",indent:5,power:c.entry.evuIn,width:c.boxwidth},null,8,["power","width"]),b(Be,{cat:"batOut",indent:5,power:c.entry.batOut,width:c.boxwidth},null,8,["power","width"]),b(Be,{cat:"pv",indent:5,power:c.entry.pv,width:c.boxwidth},null,8,["power","width"]),(i(!0),f(W,null,Q(s.value,u=>(i(),$(Be,{key:u.id,cat:"pv",name:u.name,power:u.power,indent:10,width:c.boxwidth},null,8,["name","power","width"]))),128)),b(Be,{cat:"house",indent:5,power:c.entry.house,width:c.boxwidth},null,8,["power","width"]),b(Be,{cat:"charging",indent:5,power:c.entry.charging,width:c.boxwidth},null,8,["power","width"]),(i(!0),f(W,null,Q(r.value,u=>(i(),$(Be,{key:u.id,cat:"charging",name:u.name,power:u.power,indent:10,width:c.boxwidth},null,8,["name","power","width"]))),128)),b(Be,{cat:"devices",indent:5,power:c.entry.devices,width:c.boxwidth},null,8,["power","width"]),(i(!0),f(W,null,Q(p.value,u=>(i(),$(Be,{key:u.id,cat:"devices",name:u.name,power:u.power,indent:10,width:c.boxwidth},null,8,["name","power","width"]))),128)),b(Be,{cat:"batIn",indent:5,power:c.entry.batIn,width:c.boxwidth},null,8,["power","width"]),b(Be,{cat:"evuOut",indent:5,power:c.entry.evuOut,width:c.boxwidth},null,8,["power","width"])])],8,bo))}}),xo=["origin","transform"],So=["x","height","width"],fa=140,$o=B({__name:"PgToolTips",props:{width:{},height:{},margin:{},data:{}},setup(a){const e=a,t=g(()=>{const r=Te(e.data,p=>new Date(p.date));return r[0]&&r[1]?Ft().domain(r).range([0,e.width-e.margin.right]):at().range([0,0])}),o=g(()=>{const r=Te(e.data,p=>new Date(p.date));return r[0]&&r[1]?Ft().domain(r).range([0,e.width-e.margin.right-fa]):at().range([0,0])}),s=g(()=>((y.graphMode=="day"||y.graphMode=="today")&&(t.value.range(Ze.value),ge("g#pgToolTips").selectAll("g.ttarea").select("rect").attr("x",(r,p)=>e.data.length>p?t.value(e.data[p].date):0).attr("width",e.data.length>0?(Ze.value[1]-Ze.value[0])/e.data.length:0)),"PgToolTips.vue:autozoom"));return(r,p)=>(i(),f("g",{id:"pgToolTips",origin:s.value,transform:"translate("+r.margin.left+","+r.margin.top+")"},[(i(!0),f(W,null,Q(r.data,h=>(i(),f("g",{key:h.date,class:"ttarea"},[n("rect",{x:t.value(h.date),y:"0",height:r.height,class:"ttrect",width:l(y).data.length>0?r.width/l(y).data.length:0,opacity:"1%",fill:"var(--color-charging)"},null,8,So),b(ko,{entry:h,boxwidth:fa,"x-scale":o.value},null,8,["entry","x-scale"])]))),128))],8,xo))}}),Mo={class:"d-flex justify-content-end"},Po={id:"powergraphFigure",class:"p-0 m-0"},Co=["viewBox"],Io=["transform"],Bo=["x","y"],Vo=2,Lo=B({__name:"PowerGraph",setup(a){const e=g(()=>{switch(y.graphMode){case"year":return"Jahresübersicht";case"month":return"Monatsübersicht";default:return"Leistung / Ladestand"}});function t(){let h=m.usageStackOrder+1;h>Vo&&(h=0),m.usageStackOrder=h,Mn(!0)}function o(h){const c=[[0,N.top],[ke,Ce-N.top]];h.call(Ka().scaleExtent([1,8]).translateExtent([[0,0],[ke,Ce]]).extent(c).filter(r).on("zoom",s))}function s(h){Ba.value=h.transform}function r(h){return h.preventDefault(),(!h.ctrlKey||h.type==="wheel")&&!h.button}function p(){m.zoomedWidget=1,m.zoomGraph=!m.zoomGraph}return Oe(()=>{const h=ge("svg#powergraph");o(h)}),(h,c)=>(i(),$(yt,{"full-width":!0},{title:_(()=>[R(x(e.value),1)]),buttons:_(()=>[n("div",Mo,[b(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!1,onShiftLeft:l(Ct),onShiftRight:l(ea),onShiftUp:l(ta),onShiftDown:l(aa)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),l(We)?(i(),f("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:p},c[0]||(c[0]=[n("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):w("",!0)])]),default:_(()=>[ft(n("figure",Po,[(i(),f("svg",{id:"powergraph",class:"powergraphSvg",viewBox:"0 0 "+l(ke)+" "+l(Ce)},[b(Ir,{width:l(ke)-l(N).left-2*l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N)},null,8,["width","height","margin"]),b(Vr,{width:l(ke)-l(N).left-2*l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N),"stack-order":l(m).usageStackOrder},null,8,["width","height","margin","stack-order"]),b(Ur,{width:l(ke)-l(N).left-l(N).right,height:l(Ce)-l(N).top-l(N).bottom,margin:l(N)},null,8,["width","height","margin"]),n("g",{transform:"translate("+l(N).left+","+l(N).top+")"},[(l(y).graphMode=="day"||l(y).graphMode=="today"||l(y).graphMode=="live")&&Object.values(l(Z)).filter(d=>d.visible).length>0?(i(),$(Vt,{key:0,width:l(ke)-l(N).left-2*l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N),order:0},null,8,["width","height","margin"])):w("",!0),(l(y).graphMode=="day"||l(y).graphMode=="today"||l(y).graphMode=="live")&&Object.values(l(Z)).filter(d=>d.visible).length>1?(i(),$(Vt,{key:1,width:l(ke)-l(N).left-2*l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N),order:1},null,8,["width","height","margin"])):w("",!0),(l(y).graphMode=="day"||l(y).graphMode=="today"||l(y).graphMode=="live")&&l(he).isBatteryConfigured?(i(),$(Vt,{key:2,width:l(ke)-l(N).left-2*l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N),order:2},null,8,["width","height","margin"])):w("",!0),l(y).graphMode=="day"||l(y).graphMode=="today"||l(y).graphMode=="live"?(i(),$(qr,{key:3,width:l(ke)-l(N).left-l(N).right,height:(l(Ce)-l(N).top-l(N).bottom)/2,margin:l(N)},null,8,["width","height","margin"])):w("",!0)],8,Io),l(y).graphMode=="day"||l(y).graphMode=="today"?(i(),$($o,{key:0,width:l(ke)-l(N).left-l(N).right,height:l(Ce)-l(N).top-l(N).bottom,margin:l(N),data:l(y).data},null,8,["width","height","margin","data"])):w("",!0),n("g",{id:"button",type:"button",onClick:t},[n("text",{x:l(ke)-10,y:l(Ce)-10,color:"var(--color-menu)","text-anchor":"end"},c[1]||(c[1]=[n("tspan",{fill:"var(--color-menu)",class:"fas fa-lg"},x(""),-1)]),8,Bo)])],8,Co))],512),[[Xa,l(y).data.length>0]])]),_:1}))}}),To=j(Lo,[["__scopeId","data-v-d40bf528"]]),Oo=["id"],Ao=["x","width","height","fill"],Eo=["x","width","height"],zo=["x","y","width","height"],Do=B({__name:"EmBar",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(a){const e=a,t=g(()=>e.height-e.yScale(e.item.energy)-e.margin.top-e.margin.bottom),o=g(()=>{let r=0;return e.item.energyPv>0&&(r=e.height-e.yScale(e.item.energyPv)-e.margin.top-e.margin.bottom),r>t.value&&(r=t.value),r}),s=g(()=>{let r=0;return e.item.energyBat>0&&(r=e.height-e.yScale(e.item.energyBat)-e.margin.top-e.margin.bottom),r>t.value&&(r=t.value),r});return(r,p)=>(i(),f("g",{id:"bar-"+e.item.name,transform:"scale(1,-1) translate (0,-445)"},[n("rect",{class:"bar",x:e.xScale(r.item.name),y:"0",width:e.xScale.bandwidth(),height:t.value,fill:r.item.color},null,8,Ao),n("rect",{class:"bar",x:e.xScale(r.item.name)+e.xScale.bandwidth()/6,y:"0",width:e.xScale.bandwidth()*2/3,height:o.value,fill:"var(--color-pv)","fill-opacity":"66%"},null,8,Eo),n("rect",{class:"bar",x:e.xScale(r.item.name)+e.xScale.bandwidth()/6,y:o.value,width:e.xScale.bandwidth()*2/3,height:s.value,fill:"var(--color-battery)","fill-opacity":"66%"},null,8,zo)],8,Oo))}}),Wo={id:"emBargraph"},Go=B({__name:"EMBarGraph",props:{plotdata:{},xScale:{},yScale:{},margin:{},height:{}},setup(a){const e=a;function t(s){if(s.name=="PV"){const r=y.graphMode=="live"||y.graphMode=="day"?J:T.items,h=(y.graphMode=="live"||y.graphMode=="day"?F:T.items).evuOut.energy,c=r.pv.energy;return Math.round((c-h)/c*100)}else if(s.name=="Netz"){const r=y.graphMode=="live"||y.graphMode=="day"?J:T.items,p=y.graphMode=="live"||y.graphMode=="day"?F:T.items,h=p.evuOut.energy,c=r.evuIn.energy,d=r.pv.energy,u=r.batOut.energy,k=p.batIn.energy;return Math.round((d+u-h-k)/(d+u+c-h-k)*100)}else return s.pvPercentage}function o(s){return s.name=="PV"?"Eigen":"Aut"}return(s,r)=>(i(),f("g",Wo,[(i(!0),f(W,null,Q(e.plotdata,(p,h)=>(i(),f("g",{key:h},[b(Do,{item:p,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":o(p),autarchy:t(p)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128)),r[0]||(r[0]=n("animateTransform",{"attribute-name":"transform",type:"scale",from:"1 0",to:"1 1",begin:"0s",dur:"2s"},null,-1))]))}}),jo=["origin"],Uo=B({__name:"EMYAxis",props:{yScale:{type:[Function,Object]},width:{},fontsize:{}},setup(a){const e=a,t=g(()=>mt(e.yScale).tickFormat(r=>s(r)).ticks(6).tickSizeInner(-e.width)),o=g(()=>{const r=ge("g#emYAxis");return r.attr("class","axis").call(t.value),r.append("text").attr("y",6).attr("dy","0.71em").attr("text-anchor","end").text("energy"),r.selectAll(".tick").attr("font-size",e.fontsize),m.showGrid?r.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):r.selectAll(".tick line").attr("stroke","var(--color-bg)"),r.select(".domain").attr("stroke","var(--color-bg)"),"emYAxis.vue"});function s(r){return r>0?y.graphMode=="year"?(r/1e6).toString():(r/1e3).toString():""}return(r,p)=>(i(),f("g",{id:"emYAxis",class:"axis",origin:o.value},null,8,jo))}}),Fo=["id"],No=["x","y","font-size"],Ho=["x","y","font-size","fill"],Ro=["x","y","font-size","fill"],Jo=B({__name:"EmLabel",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(a){const e=a,t=g(()=>e.autarchy?e.yScale(e.item.energy)-25:e.yScale(e.item.energy)-10),o=g(()=>{let c=16,d=e.barcount;return d<=5?c=16:d==6?c=14:d>6&&d<=8?c=13:d==9?c=11:d==10?c=10:c=9,c}),s=g(()=>{let c=12,d=e.barcount;return d<=5?c=12:d==6?c=11:d>6&&d<=8||d==9?c=8:d==10?c=7:c=6,c});function r(c,d){return d.length>s.value?d.substring(0,s.value)+".":d}function p(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function h(){return"var(--color-pv)"}return(c,d)=>(i(),f("g",{id:"barlabel-"+e.item.name},[n("text",{x:e.xScale(c.item.name)+e.xScale.bandwidth()/2,y:t.value,"font-size":o.value,"text-anchor":"middle",fill:"var(--color-menu)"},x(l(Re)(c.item.energy,l(m).decimalPlaces,!1)),9,No),n("text",{x:e.xScale(c.item.name)+e.xScale.bandwidth()/2,y:e.yScale(c.item.energy)-10,"font-size":o.value-2,"text-anchor":"middle",fill:h()},x(p()),9,Ho),n("text",{x:e.xScale(c.item.name)+e.xScale.bandwidth()/2,y:e.height-e.margin.bottom-5,"font-size":o.value,"text-anchor":"middle",fill:c.item.color,class:H(c.item.icon.length<=2?"fas":"")},x(r(c.item.name,c.item.icon)),11,Ro)],8,Fo))}}),qo={id:"emBarLabels"},Yo=B({__name:"EMLabels",props:{plotdata:{},xScale:{},yScale:{},height:{},margin:{}},setup(a){const e=a;function t(s){if(s.name=="PV"){const r=y.graphMode=="live"||y.graphMode=="today"?J:T.items,h=(y.graphMode=="live"||y.graphMode=="today"?F:T.items).evuOut.energy,c=r.pv.energy;return Math.round((c-h)/c*100)}else if(s.name=="Netz"){const r=y.graphMode=="live"||y.graphMode=="today"?J:T.items,p=y.graphMode=="live"||y.graphMode=="today"?F:T.items,h=p.evuOut.energy,c=r.evuIn.energy,d=r.pv.energy,u=r.batOut.energy,k=p.batIn.energy;return d+u-h-k>0?Math.round((d+u-h-k)/(d+u+c-h-k)*100):0}else return s.pvPercentage}function o(s){return s.name=="PV"?"Eigen":"Aut"}return(s,r)=>(i(),f("g",qo,[(i(!0),f(W,null,Q(e.plotdata,(p,h)=>(i(),f("g",{key:h},[b(Jo,{item:p,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":o(p),autarchy:t(p)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128))]))}}),Qo={class:"d-flex justify-content-end"},Zo={id:"energymeter",class:"p-0 m-0"},Xo={viewBox:"0 0 500 500"},Ko=["transform"],es=["x"],ts={key:0},va=500,Lt=500,ba=12,as="Energie",ns=B({__name:"EnergyMeter",setup(a){const e={top:25,bottom:30,left:25,right:0},t=g(()=>{let c=Object.values(J),d=r.value;const u=T.items;let k=[];switch(m.debug&&p(),ut.value==!0&&(ut.value=!1),y.graphMode){default:case"live":case"today":k=c.concat(d);break;case"day":case"month":case"year":Object.values(u).length==0?Xe.value=!0:(Xe.value=!1,k=[u.evuIn,u.pv,u.evuOut,u.batOut,u.charging],Object.values(O).length>1&&Object.keys(O).forEach(M=>{u["cp"+M]&&k.push(u["cp"+M])}),k.push(u.devices),ne.forEach((M,A)=>{M.showInGraph&&u["sh"+A]&&k.push(u["sh"+A])}),k=k.concat([u.batIn,u.house]))}return k.filter(M=>M.energy&&M.energy>0)}),o=g(()=>kt().range([0,va-e.left-e.right]).domain(t.value.map(c=>c.name)).padding(.4)),s=g(()=>Je().range([Lt-e.bottom-e.top,15]).domain([0,Sa(t.value,c=>c.energy)])),r=g(()=>{const c=Object.values(O).length,d=[...ne.values()].filter(k=>k.configured).length;let u=F;return[...[u.evuOut,u.charging].concat(c>1?Object.values(O).map(k=>k.toPowerItem()):[]),...[u.devices].concat(d>1?[...ne.values()].filter(k=>k.configured&&k.showInGraph):[]).concat([F.batIn,F.house])]});function p(){console.debug(["source summary:",J]),console.debug(["usage details:",r.value]),console.debug(["historic summary:",T])}function h(){m.zoomedWidget=2,m.zoomGraph=!m.zoomGraph}return(c,d)=>(i(),$(yt,{"full-width":!0},{title:_(()=>[R(x(as))]),buttons:_(()=>[n("div",Qo,[b(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:l(Ct),onShiftRight:l(ea),onShiftUp:l(ta),onShiftDown:l(aa)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),l(We)?(i(),f("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:h},d[0]||(d[0]=[n("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):w("",!0)])]),default:_(()=>[n("figure",Zo,[(i(),f("svg",Xo,[n("g",{transform:"translate("+e.left+","+e.top+")"},[b(Go,{plotdata:t.value,"x-scale":o.value,"y-scale":s.value,height:Lt,margin:e},null,8,["plotdata","x-scale","y-scale"]),b(Uo,{"y-scale":s.value,width:va,fontsize:ba,config:l(m)},null,8,["y-scale","config"]),n("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":ba},x(l(y).graphMode=="year"?"MWh":"kWh"),9,es),b(Yo,{plotdata:t.value,"x-scale":o.value,"y-scale":s.value,height:Lt,margin:e,config:l(m)},null,8,["plotdata","x-scale","y-scale","config"])],8,Ko)]))]),l(Xe)?(i(),f("p",ts,"No data")):w("",!0)]),_:1}))}}),rs=j(ns,[["__scopeId","data-v-32c82102"]]),os=["id"],ss=["y","width","fill"],ls=["y","width"],is=["y","x","width"],cs=B({__name:"EnergyBar",props:{id:{},item:{},yScale:{},xScale:{},itemHeight:{}},setup(a){const e=a,t=g(()=>e.xScale(e.item.energy)),o=g(()=>{let r=0;return e.item.energyPv>0&&(r=e.xScale(e.item.energyPv)),r>t.value&&(r=t.value),r}),s=g(()=>{let r=0;return e.item.energyBat>0&&(r=e.xScale(e.item.energyBat)),r>t.value&&(r=t.value),r});return(r,p)=>(i(),f("g",{id:`bar-${e.item.name}`},[n("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2-4,x:"0",rx:"6",ry:"6",height:"12",width:t.value,fill:r.item.color},null,8,ss),n("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2+10,x:"0",rx:"3",ry:"3",height:"7",width:o.value,fill:"var(--color-pv)","fill-opacity":"100%"},null,8,ls),n("rect",{class:"bar",y:e.yScale(e.id)+e.itemHeight/2+10,x:o.value,rx:"3",ry:"3",height:"7",width:s.value,fill:"var(--color-battery)","fill-opacity":"100%"},null,8,is)],8,os))}}),us={id:"emBargraph"},ds=B({__name:"BarGraph",props:{plotdata:{},yscale:{},xscale:{},itemHeight:{}},setup(a){const e=a;return(t,o)=>(i(),f("g",us,[(i(!0),f(W,null,Q(e.plotdata,(s,r)=>(i(),f("g",{key:r},[b(cs,{id:r.toString(),item:s,"x-scale":e.xscale,"y-scale":e.yscale,"item-height":t.itemHeight},null,8,["id","item","x-scale","y-scale","item-height"])]))),128))]))}}),hs=["id"],ps=["y","x","fill"],gs=["y","x"],ms=["y","x","font-size"],Tt=24,fs=B({__name:"EnergyLabel",props:{id:{},item:{},yscale:{},margin:{},width:{},itemHeight:{},autarchy:{},autText:{}},setup(a){const e=a,t=g(()=>e.yscale(e.id)+e.itemHeight/3);function o(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function s(r){return r.length>14?r.slice(0,13)+"...":r}return(r,p)=>(i(),f("g",{id:"barlabel-"+e.id},[n("text",{y:t.value,x:e.margin.left,"font-size":Tt,"text-anchor":"start",fill:r.item.color,class:H(r.item.icon.length<=2?"fas":"")},x(s(e.item.icon)),11,ps),n("text",{y:t.value,x:e.width/2+e.margin.left,"font-size":Tt,"text-anchor":"middle",fill:"var(--color-menu)"},x(l(Re)(r.item.energy,l(m).decimalPlaces,!1)),9,gs),n("text",{y:t.value,x:e.width-e.margin.right,"font-size":Tt-2,"text-anchor":"end",fill:"var(--color-pv)"},x(o()),9,ms)],8,hs))}}),vs={id:"emBarLabels"},bs=B({__name:"EnergyLabels",props:{plotdata:{},yscale:{},width:{},itemHeight:{},margin:{}},setup(a){const e=a;function t(s){if(s.name=="PV"){const r=y.graphMode=="live"||y.graphMode=="today"?J:T.items,h=(y.graphMode=="live"||y.graphMode=="today"?F:T.items).evuOut.energy,c=r.pv.energy;return Math.round((c-h)/c*100)}else if(s.name=="Netz"){const r=y.graphMode=="live"||y.graphMode=="today"?J:T.items,p=y.graphMode=="live"||y.graphMode=="today"?F:T.items,h=p.evuOut.energy,c=r.evuIn.energy,d=r.pv.energy,u=r.batOut.energy,k=p.batIn.energy;return d+u-h-k>0?Math.round((d+u-h-k)/(d+u+c-h-k)*100):0}else return s.pvPercentage}function o(s){return s.name=="PV"?"Eigen":"Aut"}return(s,r)=>(i(),f("g",vs,[(i(!0),f(W,null,Q(e.plotdata,(p,h)=>(i(),f("g",{key:h},[b(fs,{id:h.toString(),item:p,yscale:e.yscale,margin:e.margin,width:e.width,"item-height":s.itemHeight,"aut-text":o(p),autarchy:t(p)},null,8,["id","item","yscale","margin","width","item-height","aut-text","autarchy"])]))),128))]))}}),ys={class:"d-flex justify-content-end"},_s={id:"energymeter",class:"p-0 m-0"},ws=["viewBox"],ks=["transform"],xs=["x"],Ss={key:0},ya=500,Ot=60,$s=12,Ms="Energie",Ps=B({__name:"EnergyMeter2",setup(a){const e={top:0,bottom:30,left:0,right:0},t=g(()=>o.value.length*Ot+e.top+e.bottom),o=g(()=>{let u=Object.values(J),k=p.value;const M=T.items;let A=[];switch(m.debug&&c(),ut.value==!0&&(ut.value=!1),y.graphMode){default:case"live":case"today":A=h(u).concat(k);break;case"day":case"month":case"year":Object.values(M).length==0?Xe.value=!0:(Xe.value=!1,A=[M.evuIn,M.pv,M.evuOut,M.batOut,M.charging],Object.values(O).length>1&&Object.keys(O).forEach(G=>{M["cp"+G]&&A.push(M["cp"+G])}),A.push(M.devices),ne.forEach((G,q)=>{G.showInGraph&&M["sh"+q]&&A.push(M["sh"+q])}),A=A.concat([M.batIn,M.house]))}return A.filter(G=>G.energy&&G.energy>0)}),s=g(()=>Je().range([0,ya-e.left-e.right]).domain([0,Sa(o.value,u=>u.energy)])),r=g(()=>kt().range([e.top,t.value-e.bottom]).domain(o.value.map((u,k)=>k.toString())).padding(.1)),p=g(()=>{const u=Object.values(O).length,k=[...ne.values()].filter(A=>A.configured).length;let M=F;return[...[M.evuOut,M.charging].concat(u>1?Object.values(O).map(A=>A.toPowerItem()):[]),...[M.devices].concat(k>1?[...ne.values()].filter(A=>A.configured&&A.showInGraph):[]).concat([F.batIn,F.house])]});function h(u){let k=0;return be.value.size>1&&be.value.forEach(M=>{u.splice(2+k++,0,{name:M.name,type:K.inverter,power:M.power,energy:M.energy,energyPv:0,energyBat:0,pvPercentage:0,color:M.color,icon:M.name,showInGraph:!0})}),se.value.size>1&&se.value.forEach(M=>{u.splice(3+k++,0,{name:M.name,type:K.battery,power:M.power,energy:M.dailyYieldExport,energyPv:0,energyBat:0,pvPercentage:0,color:M.color,icon:M.name,showInGraph:!0})}),u}function c(){console.debug(["source summary:",J]),console.debug(["usage details:",p.value]),console.debug(["historic summary:",T])}function d(){m.zoomedWidget=2,m.zoomGraph=!m.zoomGraph}return(u,k)=>(i(),$(yt,{"full-width":!0},{title:_(()=>[R(x(Ms))]),buttons:_(()=>[n("div",ys,[b(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:l(Ct),onShiftRight:l(ea),onShiftUp:l(ta),onShiftDown:l(aa)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),l(We)?(i(),f("span",{key:0,type:"button",class:"ms-1 p-0 pt-1",onClick:d},k[0]||(k[0]=[n("span",{class:"fa-solid fa-lg ps-1 fa-magnifying-glass"},null,-1)]))):w("",!0)])]),default:_(()=>[n("figure",_s,[(i(),f("svg",{viewBox:"0 0 500 "+t.value},[n("g",{transform:"translate("+e.left+","+e.top+")"},[b(ds,{plotdata:o.value,xscale:s.value,yscale:r.value,"item-height":Ot},null,8,["plotdata","xscale","yscale"]),n("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":$s},x(l(y).graphMode=="year"?"MWh":"kWh"),9,xs),b(bs,{plotdata:o.value,yscale:r.value,width:ya,"item-height":Ot,margin:e},null,8,["plotdata","yscale"])],8,ks)],8,ws))]),l(Xe)?(i(),f("p",Ss,"No data")):w("",!0)]),_:1}))}}),Cs=j(Ps,[["__scopeId","data-v-dc8e49b2"]]),Is={class:"d-flex flex-column align-items-center justify-content-start infoitem"},Bs=B({__name:"InfoItem",props:{heading:{},small:{type:Boolean}},setup(a){const e=a,t=g(()=>e.small?{"font-size":"var(--font-small)"}:{"font-size":"var(--font-small)"}),o=g(()=>e.small?{"font-size":"var(--font-small)"}:{"font-size":"var(--font-normal)"}),s=g(()=>e.small?"mt-0":"mt-1");return(r,p)=>(i(),f("span",Is,[n("span",{class:H(["d-flex heading",s.value]),style:te(t.value)},x(e.heading),7),n("span",{class:"d-flex my-0 me-0 align-items-center content",style:te(o.value)},[de(r.$slots,"default",{},void 0,!0)],4)]))}}),ee=j(Bs,[["__scopeId","data-v-f6af00e8"]]),Vs={class:"d-flex justify-content-between align-items-center titlerow"},Ls={class:"buttonarea d-flex float-right justify-content-end align-items-center"},Ts={class:"contentrow grid-col-12"},Os=B({__name:"WbSubwidget",props:{titlecolor:{},fullwidth:{type:Boolean},small:{type:Boolean}},setup(a){const e=a,t=g(()=>{let s={"font-weight":"bold",color:"var(--color-fg)","font-size":"var(--font-normal)"};return e.titlecolor&&(s.color=e.titlecolor),e.small&&(s["font-size"]="var(--font-verysmall)"),s}),o=g(()=>e.fullwidth?"grid-col-12":"grid-col-4");return(s,r)=>(i(),f("div",{class:H(["wb-subwidget-noborder px-0 pe-1 my-0 pb-2",o.value])},[n("div",Vs,[n("div",{class:"d-flex widgetname p-0 m-0",style:te(t.value)},[de(s.$slots,"title",{},void 0,!0)],4),n("div",Ls,[de(s.$slots,"buttons",{},void 0,!0)])]),n("div",Ts,[de(s.$slots,"default",{},void 0,!0)])],2))}}),nt=j(Os,[["__scopeId","data-v-2aa2b95f"]]),As={class:"grid-col-12 mt-0 mb-0 px-0 py-0 configitem"},Es={class:"titlecolumn m-0 p-0 d-flex justify-content-between align-items-baseline"},zs={class:"d-flex justify-content-end align-items-baseline"},Ds={class:"d-flex align-items-center"},Ws={class:"d-flex"},Gs={class:"d-flex justify-content-end m-0 p-0"},js={class:"ms-1 mb-2 p-0 pt-2 d-flex justify-content-stretch align-items-center contentrow"},Us=B({__name:"ConfigItem",props:{title:{},infotext:{},icon:{},fullwidth:{type:Boolean}},setup(a){const e=a,t=Y(!1);function o(){t.value=!t.value}const s=g(()=>{let r={color:"var(--color-charging)"};return t.value&&(r.color="var(--color-battery)"),r});return(r,p)=>(i(),$(nt,{fullwidth:!!r.fullwidth},{default:_(()=>[n("div",As,[n("div",Es,[n("span",zs,[n("span",{class:"d-flex align-items-baseline m-0 p-0",onClick:o},[e.icon?(i(),f("i",{key:0,class:H(["fa-solid fa-sm m-0 p-0 me-2 item-icon",e.icon])},null,2)):w("",!0),R(" "+x(r.title),1)])]),n("span",Ds,[n("span",Ws,[e.infotext?(i(),f("i",{key:0,class:"fa-solid fa-sm fa-circle-question ms-4 me-2",style:te(s.value),onClick:o},null,4)):w("",!0)]),n("span",Gs,[de(r.$slots,"inline-item",{},void 0,!0)])])]),t.value?(i(),f("p",{key:0,class:"infotext shadow m-0 ps-2 mb-1 p-1",onClick:o},[p[0]||(p[0]=n("i",{class:"me-1 fa-solid fa-sm fa-circle-info"},null,-1)),R(" "+x(r.infotext),1)])):w("",!0),n("div",js,[de(r.$slots,"default",{},void 0,!0)])])]),_:3},8,["fullwidth"]))}}),U=j(Us,[["__scopeId","data-v-25ab3fbb"]]),Fs={class:"d-flex flex-column rangeinput"},Ns={class:"d-flex flex-fill justify-content-between align-items-center"},Hs={class:"d-flex flex-fill flex-column justify-content-center m-0 p-0"},Rs={key:0,id:"rangeIndicator",class:"rangeIndicator"},Js={viewBox:"0 0 100 2"},qs=["width"],Ys=["x","width"],Qs=["x","width"],Zs=["id","min","max","step"],Xs={class:"d-flex justify-content-between align-items-center"},Ks={class:"minlabel ps-4"},el={class:"valuelabel"},tl={class:"maxlabel pe-4"},al=B({__name:"RangeInput",props:{id:{},min:{},max:{},step:{},unit:{},decimals:{},showSubrange:{type:Boolean},subrangeMin:{},subrangeMax:{},modelValue:{}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=t.decimals??0,s=e,r=g({get(){return Math.round(t.modelValue*Math.pow(10,o))/Math.pow(10,o)},set(k){s("update:modelValue",k)}});function p(){r.value>t.min&&(r.value=Math.round((r.value-t.step)*Math.pow(10,o))/Math.pow(10,o))}function h(){r.valueJe().domain([t.min,t.max]).range([0,100])),d=g(()=>c.value(t.subrangeMin?t.subrangeMin:0)),u=g(()=>t.subrangeMin&&t.subrangeMax?c.value(t.subrangeMax)-c.value(t.subrangeMin):0);return(k,M)=>(i(),f("span",Fs,[n("span",Ns,[n("span",{type:"button",class:"minusButton",onClick:p},M[1]||(M[1]=[n("i",{class:"fa fa-xl fa-minus-square me-2"},null,-1)])),n("div",Hs,[t.showSubrange?(i(),f("figure",Rs,[(i(),f("svg",Js,[n("g",null,[n("rect",{class:"below",x:0,y:"0",width:d.value,height:"2",rx:"1",ry:"1",fill:"var(--color-evu)"},null,8,qs),n("rect",{class:"bar",x:d.value,y:"0",width:u.value,height:"2",rx:"1",ry:"1",fill:"var(--color-charging)"},null,8,Ys),n("rect",{class:"above",x:d.value+u.value,y:"0",width:d.value,height:"2",rx:"1",ry:"1",fill:"var(--color-pv)"},null,8,Qs)])]))])):w("",!0),ft(n("input",{id:k.id,"onUpdate:modelValue":M[0]||(M[0]=A=>r.value=A),type:"range",class:"form-range flex-fill",min:k.min,max:k.max,step:k.step},null,8,Zs),[[en,r.value,void 0,{number:!0}]])]),n("span",{type:"button",class:"plusButton",onClick:h},M[2]||(M[2]=[n("i",{class:"fa fa-xl fa-plus-square ms-2"},null,-1)]))]),n("span",Xs,[n("span",Ks,x(k.min),1),n("span",el,x(r.value)+" "+x(k.unit),1),n("span",tl,x(k.max),1)])]))}}),we=j(al,[["__scopeId","data-v-af945965"]]),nl=["id","value"],rl=B({__name:"RadioInput2",props:{options:{},modelValue:{},columns:{}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=e,s=g({get(){return t.modelValue},set(h){o("update:modelValue",h)}});function r(h){const c=t.options[h][2]||"var(--color-fg)",d="var(--color-bg)";return t.options[h][1]==s.value?{color:d,background:t.options[h][2]||"var(--color-menu)"}:{color:c,background:d}}function p(h){let c=h.target;for(;c&&!c.value&&c.parentElement;)c=c.parentElement;c.value&&(typeof t.options[0][1]=="number"?s.value=Number(c.value):s.value=c.value)}return(h,c)=>(i(),f("div",{class:"buttongrid",style:te({"grid-template-columns":"repeat("+(t.columns||3)+", 1fr)"})},[(i(!0),f(W,null,Q(t.options,(d,u)=>(i(),f("button",{id:"radio-"+d[1],key:u,class:H(["btn btn-outline-secondary radiobutton me-0 mb-0 px-2",d[1]==s.value?"active":""]),value:d[1],style:te(r(u)),onClick:p},[n("span",{style:te(r(u))},[d[3]?(i(),f("i",{key:0,class:H(["fa-solid",d[3]])},null,2)):w("",!0),R(" "+x(d[0]),1)],4)],14,nl))),128))],4))}}),xe=j(rl,[["__scopeId","data-v-88c9ea7a"]]),ol={class:"mt-2"},sl={key:0},ll=B({__name:"ConfigInstant",props:{chargepoint:{}},setup(a){const t=Y(a.chargepoint),o=g({get(){return t.value.instantMaxEnergy/1e3},set(s){t.value.instantMaxEnergy=s*1e3}});return(s,r)=>(i(),f("div",ol,[r[5]||(r[5]=n("p",{class:"heading ms-1"},"Sofortladen:",-1)),b(U,{title:"Stromstärke",icon:"fa-bolt",fullwidth:!0},{default:_(()=>[b(we,{id:"targetCurrent",modelValue:t.value.instantTargetCurrent,"onUpdate:modelValue":r[0]||(r[0]=p=>t.value.instantTargetCurrent=p),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),b(U,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.instantTargetPhases,"onUpdate:modelValue":r[1]||(r[1]=p=>t.value.instantTargetPhases=p),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),t.value.instantChargeLimitMode!="none"?(i(),f("hr",sl)):w("",!0),b(U,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.instantChargeLimitMode,"onUpdate:modelValue":r[2]||(r[2]=p=>t.value.instantChargeLimitMode=p),options:l(Qt).map(p=>[p.name,p.id])},null,8,["modelValue","options"])]),_:1}),t.value.instantChargeLimitMode=="soc"?(i(),$(U,{key:1,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxSoc",modelValue:t.value.instantTargetSoc,"onUpdate:modelValue":r[3]||(r[3]=p=>t.value.instantTargetSoc=p),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):w("",!0),t.value.instantChargeLimitMode=="amount"?(i(),$(U,{key:2,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxEnergy",modelValue:o.value,"onUpdate:modelValue":r[4]||(r[4]=p=>o.value=p),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):w("",!0)]))}}),il=j(ll,[["__scopeId","data-v-de6b86dd"]]),cl={class:"form-check form-switch"},ce=B({__name:"SwitchInput",props:{modelValue:{type:Boolean},onColor:{},offColor:{}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=e,s=g({get(){return t.modelValue},set(p){o("update:modelValue",p)}}),r=g(()=>s.value?{"background-color":"green"}:{"background-color":"white"});return(p,h)=>(i(),f("div",cl,[ft(n("input",{"onUpdate:modelValue":h[0]||(h[0]=c=>s.value=c),class:"form-check-input",type:"checkbox",role:"switch",style:te(r.value)},null,4),[[$a,s.value]])]))}}),ul={class:"pt-2 d-flex flex-column"},dl={class:"subconfigstack grid-col-12"},hl={key:0,class:"subconfig subgrid"},pl={key:0,class:"subconfigstack"},gl={class:"subconfig subgrid"},ml={class:"subconfig subgrid"},fl={class:"subconfig subgrid"},vl=B({__name:"ConfigPv",props:{chargepoint:{}},setup(a){const t=Y(a.chargepoint),o=g({get(){return t.value.pvMaxEnergy/1e3},set(p){t.value.pvMaxEnergy=p*1e3}}),s=g({get(){return t.value.pvMinCurrent>5},set(p){p?t.value.pvMinCurrent=6:t.value.pvMinCurrent=0}}),r=g({get(){return t.value.pvMinSoc>0},set(p){p?t.value.pvMinSoc=50:t.value.pvMinSoc=0}});return(p,h)=>(i(),f("div",ul,[h[16]||(h[16]=n("div",{class:"heading ms-1"},"PV-Laden:",-1)),b(U,{title:"Minimaler Ladestrom",icon:"fa-bolt",infotext:l(qe).minpv,fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:s.value,"onUpdate:modelValue":h[0]||(h[0]=c=>s.value=c)},null,8,["modelValue"])]),default:_(()=>[n("div",dl,[s.value?(i(),f("div",hl,[h[11]||(h[11]=n("span",{class:"subconfigtitle grid-col-1"},"Stärke:",-1)),b(we,{id:"minCurrent",modelValue:t.value.pvMinCurrent,"onUpdate:modelValue":h[1]||(h[1]=c=>t.value.pvMinCurrent=c),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])])):w("",!0)])]),_:1},8,["infotext"]),b(U,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.pvTargetPhases,"onUpdate:modelValue":h[2]||(h[2]=c=>t.value.pvTargetPhases=c),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),b(U,{title:"Mindest-Ladestand",icon:"fa-battery-half",infotext:l(qe).minsoc,fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:r.value,"onUpdate:modelValue":h[3]||(h[3]=c=>r.value=c),class:"grid-col-3"},null,8,["modelValue"])]),default:_(()=>[r.value?(i(),f("div",pl,[n("div",gl,[h[12]||(h[12]=n("span",{class:"subconfigtitle grid-col-1"},"SoC:",-1)),b(we,{id:"minSoc",modelValue:t.value.pvMinSoc,"onUpdate:modelValue":h[4]||(h[4]=c=>t.value.pvMinSoc=c),class:"grid-col-2",min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),n("div",ml,[h[13]||(h[13]=n("span",{class:"subconfigtitle grid-col-1"},"Ladestrom:",-1)),b(we,{id:"minSocCurrent",modelValue:t.value.pvMinSocCurrent,"onUpdate:modelValue":h[5]||(h[5]=c=>t.value.pvMinSocCurrent=c),class:"grid-col-2",min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),n("div",fl,[h[14]||(h[14]=n("span",{class:"subconfigtitle grid-col-1"},"Phasen:",-1)),b(xe,{modelValue:t.value.pvMinSocPhases,"onUpdate:modelValue":h[6]||(h[6]=c=>t.value.pvMinSocPhases=c),class:"grid-col-1",columns:2,options:[["1",1],["Maximum",3]]},null,8,["modelValue"])]),h[15]||(h[15]=n("hr",{class:"grid-col-3"},null,-1))])):w("",!0)]),_:1},8,["infotext"]),b(U,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.pvChargeLimitMode,"onUpdate:modelValue":h[7]||(h[7]=c=>t.value.pvChargeLimitMode=c),options:l(Qt).map(c=>[c.name,c.id])},null,8,["modelValue","options"])]),_:1}),t.value.pvChargeLimitMode=="soc"?(i(),$(U,{key:0,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxSoc",modelValue:t.value.pvTargetSoc,"onUpdate:modelValue":h[8]||(h[8]=c=>t.value.pvTargetSoc=c),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):w("",!0),t.value.pvChargeLimitMode=="amount"?(i(),$(U,{key:1,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxEnergy",modelValue:o.value,"onUpdate:modelValue":h[9]||(h[9]=c=>o.value=c),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):w("",!0),b(U,{title:"Einspeisegrenze beachten",icon:"fa-hand",fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:t.value.pvFeedInLimit,"onUpdate:modelValue":h[10]||(h[10]=c=>t.value.pvFeedInLimit=c)},null,8,["modelValue"])]),_:1})]))}}),bl=j(vl,[["__scopeId","data-v-d7ee4d2a"]]),yl={class:"plandetails d-flex flex-cloumn"},_l={class:"heading"},wl={key:0},kl=B({__name:"ScheduleDetails",props:{plan:{}},emits:["close"],setup(a){const e=a,t=g(()=>e.plan.limit.selected=="soc"?`Lade bis ${e.plan.time} auf ${e.plan.limit.soc_scheduled}% (maximal ${e.plan.limit.soc_limit}% mit PV)`:e.plan.limit.selected=="amount"?`Energiemenge: ${Re(e.plan.limit.amount)}`:"Keine Begrenzung"),o=g(()=>{let r="Wiederholung ";switch(e.plan.frequency.selected){case"daily":r+="täglich";break;case"once":r+=`einmal (${e.plan.frequency.once})`;break;case"weekly":r+="wöchentlich "+s.value;break;default:r+="unbekannt"}return r}),s=g(()=>{const r=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"];let p="(";return e.plan.frequency.weekly.forEach((h,c)=>{h&&(p+=`${r[c]} `)}),p=p.trim(),p+=")",p});return(r,p)=>(i(),f("div",yl,[p[1]||(p[1]=n("hr",null,null,-1)),n("span",_l,"Details für "+x(e.plan.name)+":",1),n("ul",null,[n("li",null,x(t.value),1),n("li",null,x(o.value),1),e.plan.et_active?(i(),f("li",wl,"Preisbasiert laden")):w("",!0)]),n("button",{class:"btn btn-outline-secondary btn-sm",onClick:p[0]||(p[0]=h=>r.$emit("close"))}," Ok ")]))}}),xl=j(kl,[["__scopeId","data-v-2f5cb5c1"]]),Sl={key:0,class:"table table-borderless"},$l={class:"tablecell left"},Ml=["onClick"],Pl={class:"tablecell left"},Cl={class:"tablecell"},Il={class:"tablecell"},Bl={class:"tablecell"},Vl={class:"tablecell right"},Ll={key:1,class:"ms-1"},Tl={key:2},Ol=B({__name:"ConfigScheduled",props:{chargePoint:{}},setup(a){const e=Y(!1),t={daily:"Täglich",once:"Einmal",weekly:"Woche"},o=a,s=g(()=>{var c,d;return((d=(c=o.chargePoint)==null?void 0:c.chargeTemplate)==null?void 0:d.chargemode.scheduled_charging.plans)??[]});function r(c){return s.value[c].time}function p(c){return{color:s.value[c].active?"var(--color-switchGreen)":"var(--color-switchRed)"}}function h(c){o.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[c].active=!s.value[c].active,le(o.chargePoint.id)}return(c,d)=>(i(),f(W,null,[d[3]||(d[3]=n("p",{class:"heading ms-1 pt-2"},"Pläne für Zielladen:",-1)),s.value.length>0?(i(),f("table",Sl,[d[2]||(d[2]=n("thead",null,[n("tr",null,[n("th",{class:"tableheader left"}),n("th",{class:"tableheader left"},"Plan"),n("th",{class:"tableheader"},"Zeit"),n("th",{class:"tableheader"},"Ziel"),n("th",{class:"tableheader"},"Wiederh."),n("th",{class:"tableheader right"})])],-1)),n("tbody",null,[(i(!0),f(W,null,Q(s.value,(u,k)=>{var M;return i(),f("tr",{key:k,class:H(u.active?"text-bold":"text-normal")},[n("td",$l,[((M=o.chargePoint.chargeTemplate)==null?void 0:M.id)!=null?(i(),f("a",{key:0,onClick:A=>h(k)},[n("span",{class:H([u.active?"fa-toggle-on":"fa-toggle-off","fa"]),style:te(p(k)),type:"button"},null,6)],8,Ml)):w("",!0)]),n("td",Pl,x(u.name),1),n("td",Cl,x(r(k)),1),n("td",Il,x(u.limit.selected=="soc"?u.limit.soc_scheduled+"%":l(Re)(u.limit.amount,0)),1),n("td",Bl,x(t[u.frequency.selected]),1),n("td",Vl,[n("i",{class:"me-1 fa-solid fa-sm fa-circle-info",onClick:d[0]||(d[0]=A=>e.value=!e.value)})])],2)}),128))])])):(i(),f("p",Ll," Pläne für das Zielladen können in den Einstellungen des Ladeprofils angelegt werden . ")),e.value?(i(),f("div",Tl,[(i(!0),f(W,null,Q(s.value,u=>(i(),$(xl,{key:u.id,plan:u,onClose:d[1]||(d[1]=k=>e.value=!1)},null,8,["plan"]))),128))])):w("",!0)],64))}}),Al=j(Ol,[["__scopeId","data-v-08df44d8"]]),El={class:"plandetails d-flex flex-cloumn"},zl={class:"heading"},Dl=B({__name:"TimePlanDetails",props:{plan:{}},emits:["close"],setup(a){const e=a,t=g(()=>`Lade von ${e.plan.time[0]} bis ${e.plan.time[1]} mit ${e.plan.current}A`),o=g(()=>e.plan.limit.selected=="soc"?`Lade bis maximal ${e.plan.limit.soc}%`:e.plan.limit.selected=="amount"?`Lade maximal ${Re(e.plan.limit.amount)}`:"Keine Begrenzung"),s=g(()=>{let p="Wiederholung ";switch(e.plan.frequency.selected){case"daily":p+="täglich";break;case"once":p+=`einmal (${e.plan.frequency.once})`;break;case"weekly":p+="wöchentlich "+r.value;break;default:p+="unbekannt"}return p}),r=g(()=>{const p=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"];let h="(";return e.plan.frequency.weekly.forEach((c,d)=>{c&&(h+=`${p[d]} `)}),h=h.trim(),h+=")",h});return(p,h)=>(i(),f("div",El,[h[1]||(h[1]=n("hr",null,null,-1)),n("span",zl,"Details für "+x(e.plan.name)+":",1),n("ul",null,[n("li",null,x(t.value),1),n("li",null,x(o.value),1),n("li",null,x(s.value),1)]),n("button",{class:"btn btn-outline-secondary btn-sm",onClick:h[0]||(h[0]=c=>p.$emit("close"))}," Ok ")]))}}),Wl=j(Dl,[["__scopeId","data-v-eaa44cb2"]]),Gl={class:"table table-borderless"},jl={class:"tablecell left"},Ul=["onClick"],Fl={class:"tablecell"},Nl={class:"tablecell"},Hl={class:"tablecell"},Rl={class:"tablecell"},Jl={class:"tablecell right"},ql={key:0},Yl=B({__name:"ConfigTimed",props:{chargePoint:{}},setup(a){const e=a,t=Y(!1),o=e.chargePoint,s={daily:"Täglich",once:"Einmal",weekly:"Woche"},r=g(()=>{var c,d;return((d=(c=e.chargePoint)==null?void 0:c.chargeTemplate)==null?void 0:d.time_charging.plans)??[]});function p(c){return{color:r.value[c].active?"var(--color-switchGreen)":"var(--color-switchRed)"}}function h(c){e.chargePoint.chargeTemplate.time_charging.plans[c].active=!r.value[c].active,le(e.chargePoint.id)}return(c,d)=>(i(),f(W,null,[b(U,{title:"Zeitplan aktiv",icon:"fa-clock",fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:l(o).timedCharging,"onUpdate:modelValue":d[0]||(d[0]=u=>l(o).timedCharging=u)},null,8,["modelValue"])]),_:1}),d[4]||(d[4]=n("p",{class:"heading ms-1 pt-2"},"Zeitpläne:",-1)),n("table",Gl,[d[3]||(d[3]=n("thead",null,[n("tr",null,[n("th",{class:"tableheader left"}),n("th",{class:"tableheader"},"Von"),n("th",{class:"tableheader"},"Bis"),n("th",{class:"tableheader"},"Strom"),n("th",{class:"tableheader"},"Wiederh."),n("th",{class:"tableheader right"})])],-1)),n("tbody",null,[(i(!0),f(W,null,Q(r.value,(u,k)=>{var M;return i(),f("tr",{key:k,class:H(u.active?"text-bold":"text-normal")},[n("td",jl,[((M=e.chargePoint.chargeTemplate)==null?void 0:M.id)!=null?(i(),f("span",{key:0,onClick:A=>h(k)},[n("span",{class:H([u.active?"fa-toggle-on":"fa-toggle-off","fa"]),style:te(p(k)),type:"button"},null,6)],8,Ul)):w("",!0)]),n("td",Fl,x(u.time[0]),1),n("td",Nl,x(u.time[1]),1),n("td",Hl,x(u.current)+" A",1),n("td",Rl,x(s[u.frequency.selected]),1),n("td",Jl,[n("i",{class:"me-1 fa-solid fa-sm fa-circle-info",onClick:d[1]||(d[1]=A=>t.value=!t.value)})])],2)}),128))])]),t.value?(i(),f("div",ql,[(i(!0),f(W,null,Q(r.value,u=>(i(),$(Wl,{key:u.id,plan:u,onClose:d[2]||(d[2]=k=>t.value=!1)},null,8,["plan"]))),128))])):w("",!0)],64))}}),Ql=j(Yl,[["__scopeId","data-v-543e8ca2"]]),Zl={class:"providername ms-1"},Xl={class:"container"},Kl={id:"pricechart",class:"p-0 m-0"},ei={viewBox:"0 0 400 300"},ti=["id","origin","transform"],ai={key:0,class:"p-3"},ni={key:1,class:"d-flex justify-content-end"},ri=["disabled"],rt=400,_a=250,wa=12,oi=B({__name:"PriceChart",props:{chargepoint:{},globalview:{type:Boolean}},setup(a){const e=a;let t=e.chargepoint?Y(e.chargepoint.etMaxPrice):Y(0);const o=Y(!1),s=Y(e.chargepoint),r=g({get(){return t.value},set(D){t.value=D,o.value=!0}});function p(){s.value&&(O[s.value.id].etMaxPrice=r.value),o.value=!1}const h=Y(!1),c={top:0,bottom:15,left:20,right:5},d=g(()=>{let D=[];return oe.etPriceList.size>0&&oe.etPriceList.forEach((X,Ae)=>{D.push([Ae,X])}),D}),u=g(()=>d.value.length>1?(rt-c.left-c.right)/d.value.length-1:0),k=g(()=>o.value?{background:"var(--color-charging)"}:{background:"var(--color-menu)"}),M=g(()=>{let D=Te(d.value,X=>X[0]);return D[1]&&(D[1]=new Date(D[1]),D[1].setTime(D[1].getTime()+36e5)),at().range([c.left,rt-c.right]).domain(D)}),A=g(()=>{let D=[0,0];return d.value.length>0?(D=Te(d.value,X=>X[1]),D[0]=Math.floor(D[0]-1),D[1]=Math.floor(D[1]+1)):D=[0,0],D}),G=g(()=>Je().range([_a-c.bottom,0]).domain(A.value)),q=g(()=>{const D=He(),X=[[c.left,G.value(r.value)],[rt-c.right,G.value(r.value)]];return D(X)}),I=g(()=>{const D=He(),X=[[c.left,G.value(m.lowerPriceBound)],[rt-c.right,G.value(m.lowerPriceBound)]];return D(X)}),P=g(()=>{const D=He(),X=[[c.left,G.value(m.upperPriceBound)],[rt-c.right,G.value(m.upperPriceBound)]];return D(X)}),V=g(()=>{const D=He(),X=[[c.left,G.value(0)],[rt-c.right,G.value(0)]];return D(X)}),S=g(()=>pt(M.value).ticks(6).tickSize(5).tickFormat(it("%H:%M"))),C=g(()=>mt(G.value).ticks(A.value[1]-A.value[0]).tickSizeInner(-375).tickFormat(D=>D%5!=0?"":D.toString())),z=g(()=>{h.value==!0;const D=ge("g#"+E.value);D.selectAll("*").remove(),D.selectAll("bar").data(d.value).enter().append("g").append("rect").attr("class","bar").attr("x",Ue=>M.value(Ue[0])).attr("y",Ue=>G.value(Ue[1])).attr("width",u.value).attr("height",Ue=>G.value(A.value[0])-G.value(Ue[1])).attr("fill",Ue=>Ue[1]<=r.value?"var(--color-charging)":"var(--color-axis)");const Ae=D.append("g").attr("class","axis").call(S.value);Ae.attr("transform","translate(0,"+(_a-c.bottom)+")"),Ae.selectAll(".tick").attr("font-size",wa).attr("color","var(--color-bg)"),Ae.selectAll(".tick line").attr("stroke","var(--color-fg)").attr("stroke-width","0.5"),Ae.select(".domain").attr("stroke","var(--color-bg");const _t=D.append("g").attr("class","axis").call(C.value);return _t.attr("transform","translate("+c.left+",0)"),_t.selectAll(".tick").attr("font-size",wa).attr("color","var(--color-bg)"),_t.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",Ue=>Ue%5==0?"2":"0.5"),_t.select(".domain").attr("stroke","var(--color-bg)"),A.value[0]<0&&D.append("path").attr("d",V.value).attr("stroke","var(--color-fg)"),D.append("path").attr("d",I.value).attr("stroke","green"),D.append("path").attr("d",P.value).attr("stroke","red"),D.append("path").attr("d",q.value).attr("stroke","yellow"),"PriceChart.vue"}),E=g(()=>e.chargepoint?"priceChartCanvas"+e.chargepoint.id:"priceChartCanvasGlobal"),L=g(()=>{let D=[];return oe.etPriceList.forEach(X=>{D.push(X)}),D.sort((X,Ae)=>X-Ae)});function re(){let D=L.value[0];for(let X of L.value){if(X>=r.value)break;D=X}r.value=D}function $e(){let D=L.value[0];for(let X of L.value)if(X>r.value){D=X;break}else D=X;r.value=D}return Oe(()=>{h.value=!h.value}),(D,X)=>(i(),f(W,null,[n("p",Zl,"Anbieter: "+x(l(oe).etProvider),1),X[3]||(X[3]=n("hr",null,null,-1)),n("div",Xl,[n("figure",Kl,[(i(),f("svg",ei,[n("g",{id:E.value,origin:z.value,transform:"translate("+c.top+","+c.right+")"},null,8,ti)]))])]),D.chargepoint!=null?(i(),f("div",ai,[b(we,{id:"pricechart_local",modelValue:r.value,"onUpdate:modelValue":X[0]||(X[0]=Ae=>r.value=Ae),min:Math.floor(L.value[0]-1),max:Math.ceil(L.value[L.value.length-1]+1),step:.1,decimals:2,"show-subrange":!0,"subrange-min":L.value[0],"subrange-max":L.value[L.value.length-1],unit:"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max"])])):w("",!0),n("div",{class:"d-flex justify-content-between px-3 pb-2 pt-0 mt-0"},[n("button",{type:"button",class:"btn btn-sm jumpbutton",onClick:re},X[1]||(X[1]=[n("i",{class:"fa fa-sm fa-arrow-left"},null,-1)])),n("button",{type:"button",class:"btn btn-sm jumpbutton",onClick:$e},X[2]||(X[2]=[n("i",{class:"fa fa-sm fa-arrow-right"},null,-1)]))]),D.chargepoint!=null?(i(),f("div",ni,[n("span",{class:"me-3 pt-0",onClick:p},[n("button",{type:"button",class:"btn btn-secondary confirmButton",style:te(k.value),disabled:!o.value}," Bestätigen ",12,ri)])])):w("",!0)],64))}}),za=j(oi,[["__scopeId","data-v-28b81885"]]),si={class:"pt-2 d-flex flex-column"},li={class:"subconfigstack grid-col-12"},ii={class:"subconfig subgrid"},ci=B({__name:"ConfigEco",props:{chargepoint:{}},setup(a){const t=Y(a.chargepoint),o=g({get(){return t.value.ecoMaxEnergy/1e3},set(s){t.value.ecoMaxEnergy=s*1e3}});return(s,r)=>(i(),f("div",si,[r[6]||(r[6]=n("div",{class:"heading ms-1"},"Eco-Laden:",-1)),l(oe).active?(i(),$(za,{key:0,chargepoint:t.value},null,8,["chargepoint"])):w("",!0),l(oe).active?(i(),$(U,{key:1,title:"Minimaler Ladestrom unter der Preisgrenze:",icon:"fa-bolt",fullwidth:!0},{default:_(()=>[n("div",li,[n("div",ii,[r[5]||(r[5]=n("span",{class:"subconfigtitle grid-col-1"},"Stärke:",-1)),b(we,{id:"minCurrent",modelValue:t.value.ecoMinCurrent,"onUpdate:modelValue":r[0]||(r[0]=p=>t.value.ecoMinCurrent=p),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])])])]),_:1})):w("",!0),b(U,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.ecoTargetPhases,"onUpdate:modelValue":r[1]||(r[1]=p=>t.value.ecoTargetPhases=p),options:[["1",1],["Maximum",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),b(U,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:_(()=>[b(xe,{modelValue:t.value.ecoChargeLimitMode,"onUpdate:modelValue":r[2]||(r[2]=p=>t.value.ecoChargeLimitMode=p),options:l(Qt).map(p=>[p.name,p.id])},null,8,["modelValue","options"])]),_:1}),t.value.ecoChargeLimitMode=="soc"?(i(),$(U,{key:2,title:"Maximaler Ladestand",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxSoc",modelValue:t.value.ecoTargetSoc,"onUpdate:modelValue":r[3]||(r[3]=p=>t.value.ecoTargetSoc=p),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):w("",!0),t.value.ecoChargeLimitMode=="amount"?(i(),$(U,{key:3,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:_(()=>[b(we,{id:"maxEnergy",modelValue:o.value,"onUpdate:modelValue":r[4]||(r[4]=p=>o.value=p),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):w("",!0)]))}}),ui=j(ci,[["__scopeId","data-v-106a9fca"]]),di={class:"settingsheader mt-2 ms-1"},hi=B({__name:"ConfigGeneral",props:{chargepoint:{}},emits:["closeConfig"],setup(a){const t=a.chargepoint;return(o,s)=>(i(),f(W,null,[n("p",di," Ladeeinstellungen für "+x(l(t).vehicleName)+": ",1),b(U,{title:"Lademodus",icon:"fa-charging-station",infotext:l(qe).chargemode,fullwidth:!0},{default:_(()=>[b(xe,{modelValue:l(t).chargeMode,"onUpdate:modelValue":s[0]||(s[0]=r=>l(t).chargeMode=r),columns:3,options:Object.keys(l(ye)).map(r=>[l(ye)[r].name,r,l(ye)[r].color,l(ye)[r].icon])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),Object.values(l(Z)).filter(r=>r.visible).length>1?(i(),$(U,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",infotext:l(qe).vehicle,fullwidth:!0},{default:_(()=>[b(xe,{modelValue:l(t).connectedVehicle,"onUpdate:modelValue":s[1]||(s[1]=r=>l(t).connectedVehicle=r),modelModifiers:{number:!0},options:Object.values(l(Z)).filter(r=>r.visible).map(r=>[r.name,r.id])},null,8,["modelValue","options"])]),_:1},8,["infotext"])):w("",!0),b(U,{title:"Sperren",icon:"fa-lock",infotext:l(qe).locked,fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:l(t).isLocked,"onUpdate:modelValue":s[2]||(s[2]=r=>l(t).isLocked=r)},null,8,["modelValue"])]),_:1},8,["infotext"]),b(U,{title:"Priorität",icon:"fa-star",infotext:l(qe).priority,fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:l(t).hasPriority,"onUpdate:modelValue":s[3]||(s[3]=r=>l(t).hasPriority=r)},null,8,["modelValue"])]),_:1},8,["infotext"]),b(U,{title:"Zeitplan",icon:"fa-clock",infotext:l(qe).timeplan,fullwidth:!0},{"inline-item":_(()=>[b(ce,{modelValue:l(t).timedCharging,"onUpdate:modelValue":s[4]||(s[4]=r=>l(t).timedCharging=r)},null,8,["modelValue"])]),_:1},8,["infotext"]),l(he).isBatteryConfigured?(i(),$(U,{key:1,title:"PV-Priorität",icon:"fa-car-battery",infotext:l(qe).pvpriority,fullwidth:!0},{default:_(()=>[b(xe,{modelValue:l(he).pvBatteryPriority,"onUpdate:modelValue":s[5]||(s[5]=r=>l(he).pvBatteryPriority=r),options:l(hn)},null,8,["modelValue","options"])]),_:1},8,["infotext"])):w("",!0)],64))}}),pi=j(hi,[["__scopeId","data-v-e6ae9e07"]]),gi={class:"status-string"},mi={style:{color:"red"}},fi={class:"m-0 mt-4 p-0 grid-col-12 tabarea"},vi={class:"nav nav-tabs nav-justified mx-1 mt-1",role:"tablist"},bi=["data-bs-target"],yi=["data-bs-target"],_i=["data-bs-target"],wi=["data-bs-target"],ki=["data-bs-target"],xi=["data-bs-target"],Si={id:"settingsPanes",class:"tab-content mx-1 p-1 pb-3"},$i=["id"],Mi=["id"],Pi=["id"],Ci=["id"],Ii=["id"],Bi=["id"],Vi=B({__name:"ChargeConfigPanel",props:{chargepoint:{}},emits:["closeConfig"],setup(a){const t=a.chargepoint,o=g(()=>{var r;return((r=t.chargeTemplate)==null?void 0:r.id)??0}),s=g(()=>t.id);return Oe(()=>{}),(r,p)=>(i(),f(W,null,[b(U,{title:"Status",icon:"fa-info-circle",fullwidth:!0,class:"item"},{default:_(()=>[n("span",gi,x(l(t).stateStr),1)]),_:1}),l(t).faultState!=0?(i(),$(U,{key:0,title:"Fehler",class:"grid-col-12",icon:"fa-triangle-exclamation"},{default:_(()=>[n("span",mi,x(l(t).faultStr),1)]),_:1})):w("",!0),n("div",fi,[n("nav",vi,[n("a",{class:"nav-link active","data-bs-toggle":"tab","data-bs-target":"#chargeSettings"+s.value},p[0]||(p[0]=[n("i",{class:"fa-solid fa-charging-station"},null,-1)]),8,bi),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#instantSettings"+s.value},p[1]||(p[1]=[n("i",{class:"fa-solid fa-lg fa-bolt"},null,-1)]),8,yi),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pvSettings"+s.value},p[2]||(p[2]=[n("i",{class:"fa-solid fa-solar-panel me-1"},null,-1)]),8,_i),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#scheduledSettings"+s.value},p[3]||(p[3]=[n("i",{class:"fa-solid fa-bullseye me-1"},null,-1)]),8,wi),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#ecoSettings"+s.value},p[4]||(p[4]=[n("i",{class:"fa-solid fa-coins"},null,-1)]),8,ki),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#timedSettings"+s.value},p[5]||(p[5]=[n("i",{class:"fa-solid fa-clock"},null,-1)]),8,xi)]),n("div",Si,[n("div",{id:"chargeSettings"+s.value,class:"tab-pane active",role:"tabpanel","aria-labelledby":"instant-tab"},[b(pi,{chargepoint:r.chargepoint},null,8,["chargepoint"])],8,$i),n("div",{id:"instantSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"instant-tab"},[b(il,{chargepoint:l(t),vehicles:l(Z),"charge-templates":l(Nt)},null,8,["chargepoint","vehicles","charge-templates"])],8,Mi),n("div",{id:"pvSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"pv-tab"},[b(bl,{chargepoint:l(t),vehicles:l(Z),"charge-templates":l(Nt)},null,8,["chargepoint","vehicles","charge-templates"])],8,Pi),n("div",{id:"scheduledSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[o.value!=null?(i(),$(Al,{key:0,"charge-point":l(t)},null,8,["charge-point"])):w("",!0)],8,Ci),n("div",{id:"ecoSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"eco-tab"},[o.value!=null?(i(),$(ui,{key:0,chargepoint:l(t)},null,8,["chargepoint"])):w("",!0)],8,Ii),n("div",{id:"timedSettings"+s.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[o.value!=null?(i(),$(Ql,{key:0,"charge-point":l(t)},null,8,["charge-point"])):w("",!0)],8,Bi)])])],64))}}),Rt=j(Vi,[["__scopeId","data-v-cd92fe69"]]),Ge=B({__name:"FormatWattH",props:{wattH:{}},setup(a){const e=a,t=g(()=>Re(e.wattH,m.decimalPlaces));return(o,s)=>(i(),f("span",null,x(t.value),1))}}),Li={class:"wb-widget p-0 m-0 shadow widgetWidth"},Ti={class:"py-4 px-3 d-flex justify-content-between align-items-center titlerow"},Oi={class:"d-flex align-items-center widgetname p-0 m-0"},Ai={class:"buttonrea d-flex float-right justify-content-end align-items-center"},Ei={class:"grid12 pb-3 px-3"},zi=B({__name:"WbWidgetFlex",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(a){const e=a,t=g(()=>e.fullWidth?"col-12":e.variableWidth&&m.preferWideBoxes?"col-lg-6":"col-lg-4");return(o,s)=>(i(),f("div",{class:H(["p-2 m-0",t.value])},[n("div",Li,[n("div",Ti,[n("div",Oi,[de(o.$slots,"title",{},()=>[s[0]||(s[0]=n("div",{class:"p-0"},"(title goes here)",-1))],!0),de(o.$slots,"subtitle",{},void 0,!0)]),n("div",Ai,[de(o.$slots,"buttons",{},void 0,!0)])]),n("div",Ei,[de(o.$slots,"default",{},void 0,!0)])])],2))}}),je=j(zi,[["__scopeId","data-v-fb6ac7a4"]]),Di={class:"d-flex justify-content-center align-items-center"},Wi=B({__name:"BatterySymbol",props:{soc:{},color:{}},setup(a){const e=a,t=g(()=>e.soc<=12?"fa-battery-empty":e.soc<38?"fa-battery-quarter":e.soc<62?"fa-battery-half":e.soc<87?"fa-battery-three-quarters":"fa-battery-full"),o=g(()=>({color:e.color??"var(--color-menu)"}));return(s,r)=>(i(),f("span",Di,[n("i",{class:H(["fa me-1",t.value]),style:te(o.value)},null,6),R(" "+x(Math.round(s.soc)+"%"),1)]))}}),It=j(Wi,[["__scopeId","data-v-a68c844a"]]),Gi=B({__name:"WbBadge",props:{color:{},bgcolor:{}},setup(a){const e=a,t=g(()=>({color:e.color??"var(--color-bg)","background-color":e.bgcolor??"var(--color-menu)"}));return(o,s)=>(i(),f("span",{class:"pillWbBadge rounded-pill ms-2 px-2",style:te(t.value)},[de(o.$slots,"default",{},void 0,!0)],4))}}),Ie=j(Gi,[["__scopeId","data-v-36112fa3"]]),ji={style:{color:"var(--color-charging)"}},Ui={style:{color:"var(--color-charging)"}},Fi={style:{color:"var(--color-charging)"}},Ni={class:"targetCurrent"},Hi=B({__name:"ChargingState",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(a){const e=a,t=g(()=>(Math.round(e.chargepoint.current*10)/10).toLocaleString(void 0)+" A"),o=g(()=>(Math.round(e.chargepoint.realCurrent*10)/10).toLocaleString(void 0)+" A");return(s,r)=>(i(),f(W,null,[e.chargepoint.power>0?(i(),$(ee,{key:0,heading:"Leistung:",class:"grid-col-3 grid-left mb-3"},{default:_(()=>[n("span",ji,[b(bt,{watt:e.chargepoint.power},null,8,["watt"])])]),_:1})):w("",!0),e.chargepoint.power>0?(i(),$(ee,{key:1,heading:"Strom:",class:"grid-col-3"},{default:_(()=>[n("span",Ui,x(o.value),1)]),_:1})):w("",!0),e.chargepoint.power>0?(i(),$(ee,{key:2,heading:"Phasen:",class:"grid-col-3"},{default:_(()=>[n("span",Fi,x(e.chargepoint.phasesInUse),1)]),_:1})):w("",!0),e.chargepoint.power>0?(i(),$(ee,{key:3,heading:"Sollstrom:",class:"grid-col-3 grid-right"},{default:_(()=>[n("span",Ni,x(t.value),1)]),_:1})):w("",!0)],64))}}),Ri=j(Hi,[["__scopeId","data-v-2cc82367"]]),Ji={class:"carTitleLine d-flex justify-content-between align-items-center"},qi={key:1,class:"me-1 fa-solid fa-xs fa-star ps-1"},Yi={key:2,class:"me-0 fa-solid fa-xs fa-clock ps-1"},Qi={key:0,class:"carSelector p-4 m-2"},Zi={class:"grid12"},Xi={key:2,class:"socEditor rounded mt-2 d-flex flex-column align-items-center grid-col-12 grid-left"},Ki={class:"d-flex justify-content-stretch align-items-center"},ec={key:0,class:"fa-solid fa-sm fas fa-edit ms-2"},tc=["id"],ac=B({__name:"VehicleData",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(a){const e=a,t=e.chargepoint,o=Y(!1),s=Y(!1),r=Y(!1),p=g({get(){return t.chargeMode},set(P){t.chargeMode=P}}),h=g(()=>{const P=e.chargepoint.rangeCharged,V=e.chargepoint.chargedSincePlugged,S=e.chargepoint.dailyYield;return V>0?Math.round(P/V*S).toString()+" "+e.chargepoint.rangeUnit:"0 km"}),c=g(()=>e.chargepoint.soc),d=g({get(){return e.chargepoint.soc},set(P){O[e.chargepoint.id].soc=P}}),u=g(()=>{const[P]=oe.etPriceList.values();return(Math.round(P*10)/10).toFixed(1)}),k=g(()=>e.chargepoint.etMaxPrice>=+u.value?{color:"var(--color-charging)"}:{color:"var(--color-menu)"}),M=g(()=>Object.values(Z).filter(P=>P.visible)),A=g(()=>e.chargepoint.soc<20?"var(--color-evu)":e.chargepoint.soc>=80?"var(--color-pv)":"var(--color-battery)"),G=g(()=>{switch(e.chargepoint.chargeMode){case"stop":return{color:"var(--fg)"};default:return{color:ye[e.chargepoint.chargeMode].color}}});function q(){_e("socUpdate",1,e.chargepoint.connectedVehicle),O[e.chargepoint.id].waitingForSoc=!0}function I(){_e("setSoc",d.value,e.chargepoint.connectedVehicle),o.value=!1}return(P,V)=>(i(),f(W,null,[n("div",Ji,[n("h3",{onClick:V[0]||(V[0]=S=>r.value=!r.value)},[V[8]||(V[8]=n("i",{class:"fa-solid fa-sm fa-car me-2"},null,-1)),R(" "+x(P.chargepoint.vehicleName)+" ",1),M.value.length>1?(i(),f("span",{key:0,class:H(["fa-solid fa-xs me-2",r.value?"fa-caret-up":"fa-caret-down"])},null,2)):w("",!0),P.chargepoint.hasPriority?(i(),f("span",qi)):w("",!0),P.chargepoint.timedCharging?(i(),f("span",Yi)):w("",!0)]),P.chargepoint.isSocConfigured?(i(),$(Ie,{key:0,bgcolor:A.value},{default:_(()=>[b(It,{soc:c.value??0,color:"var(--color-bg)",class:"me-2"},null,8,["soc"]),P.chargepoint.isSocManual?(i(),f("i",{key:0,class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-bg)"},onClick:V[1]||(V[1]=S=>o.value=!o.value)})):w("",!0),P.chargepoint.isSocManual?w("",!0):(i(),f("i",{key:1,type:"button",class:H(["fa-solid fa-sm",P.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),onClick:q},null,2))]),_:1},8,["bgcolor"])):w("",!0)]),r.value?(i(),f("div",Qi,[V[9]||(V[9]=n("span",{class:"changeCarTitle mb-2"},"Fahrzeug wechseln:",-1)),b(xe,{modelValue:l(t).connectedVehicle,"onUpdate:modelValue":[V[2]||(V[2]=S=>l(t).connectedVehicle=S),V[3]||(V[3]=S=>r.value=!1)],modelModifiers:{number:!0},options:M.value.map(S=>[S.name,S.id])},null,8,["modelValue","options"])])):w("",!0),n("div",Zi,[b(Ea,{id:"chargemode-"+P.chargepoint.name,modelValue:p.value,"onUpdate:modelValue":V[4]||(V[4]=S=>p.value=S),class:"chargemodes mt-3 mb-3",options:Object.keys(l(ye)).map(S=>({text:l(ye)[S].name,value:S,color:l(ye)[S].color,icon:l(ye)[S].icon,active:l(ye)[S].mode==P.chargepoint.chargeMode}))},null,8,["id","modelValue","options"]),P.chargepoint.power>0?(i(),$(Ri,{key:0,chargepoint:P.chargepoint,"full-width":e.fullWidth},null,8,["chargepoint","full-width"])):w("",!0),b(ee,{heading:"letzte Ladung:",class:"grid-col-4 grid-left"},{default:_(()=>[b(Ge,{"watt-h":Math.max(P.chargepoint.chargedSincePlugged,0)},null,8,["watt-h"])]),_:1}),b(ee,{heading:"gel. Reichw.:",class:"grid-col-4"},{default:_(()=>[R(x(h.value),1)]),_:1}),P.chargepoint.isSocConfigured?(i(),$(ee,{key:1,heading:"Reichweite:",class:"grid-col-4 grid-right"},{default:_(()=>[R(x(l(Z)[e.chargepoint.connectedVehicle]?Math.round(l(Z)[e.chargepoint.connectedVehicle].range):0)+" km ",1)]),_:1})):w("",!0),o.value?(i(),f("div",Xi,[V[10]||(V[10]=n("span",{class:"d-flex m-1 p-0 socEditTitle"},"Ladestand einstellen:",-1)),n("span",Ki,[n("span",null,[b(we,{id:"manualSoc",modelValue:d.value,"onUpdate:modelValue":V[5]||(V[5]=S=>d.value=S),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])])]),n("span",{type:"button",class:"fa-solid d-flex fa-lg me-2 mb-3 align-self-end fa-circle-check",onClick:I})])):w("",!0),V[12]||(V[12]=n("hr",{class:"divider grid-col-12"},null,-1)),l(oe).active?(i(),$(ee,{key:3,heading:"Strompreis:",class:"grid-col-4 grid-left"},{default:_(()=>[n("span",{style:te(k.value)},x(u.value)+" ct ",5)]),_:1})):w("",!0),l(t).etActive?(i(),$(ee,{key:4,heading:"max. Preis:",class:"grid-col-4"},{default:_(()=>[n("span",{type:"button",onClick:V[6]||(V[6]=S=>s.value=!s.value)},[R(x(e.chargepoint.etActive?(Math.round(e.chargepoint.etMaxPrice*10)/10).toFixed(1)+" ct":"-")+" ",1),e.chargepoint.etActive?(i(),f("i",ec)):w("",!0)])]),_:1})):w("",!0),s.value?(i(),f("div",{key:5,id:"priceChartInline"+e.chargepoint.id,class:"d-flex flex-column rounded priceEditor grid-col-12"},[l(Z)[e.chargepoint.connectedVehicle]!=null?(i(),$(za,{key:0,chargepoint:e.chargepoint},null,8,["chargepoint"])):w("",!0),n("span",{class:"d-flex ms-2 my-4 pe-3 pt-1 d-flex align-self-end",style:te(G.value),onClick:V[7]||(V[7]=S=>s.value=!1)},V[11]||(V[11]=[n("span",{type:"button",class:"d-flex fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]),4)],8,tc)):w("",!0)])],64))}}),nc=j(ac,[["__scopeId","data-v-e3fcbd86"]]),rc={class:"d-flex justify-content-center align-items-center"},oc={key:0,class:"WbBadge rounded-pill errorWbBadge ms-3"},sc={key:0},lc={key:1,class:"row m-0 mt-0 p-0"},ic={class:"col m-0 p-0"},cc=B({__name:"CPChargePoint",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(a){const e=a,t=Y(e.chargepoint),o=Y(!1),s=g(()=>e.chargepoint.isLocked?"Gesperrt":e.chargepoint.isCharging?"Lädt":e.chargepoint.isPluggedIn?"Bereit":"Frei"),r=g(()=>e.chargepoint.isLocked?"var(--color-evu)":e.chargepoint.isCharging?"var(--color-charging)":e.chargepoint.isPluggedIn?"var(--color-battery)":"var(--color-axis)"),p=g(()=>{let c="";return e.chargepoint.isLocked?c="fa-lock":e.chargepoint.isCharging?c=" fa-bolt":e.chargepoint.isPluggedIn&&(c="fa-plug"),"fa "+c}),h=g(()=>({color:e.chargepoint.color}));return(c,d)=>o.value?(i(),$(je,{key:1,"full-width":e.fullWidth},{title:_(()=>[n("span",{style:te(h.value),onClick:d[3]||(d[3]=u=>o.value=!o.value)},[d[8]||(d[8]=n("span",{class:"fas fa-gear"}," ",-1)),R(" Einstellungen "+x(e.chargepoint.name),1)],4)]),buttons:_(()=>[n("span",{class:"ms-2 pt-1",onClick:d[4]||(d[4]=u=>o.value=!o.value)},d[9]||(d[9]=[n("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]))]),default:_(()=>[c.chargepoint!=null?(i(),$(Rt,{key:0,chargepoint:c.chargepoint},null,8,["chargepoint"])):w("",!0),n("button",{type:"button",class:"close-config-button btn ms-2 pt-1",onClick:d[5]||(d[5]=u=>o.value=!o.value)}," OK ")]),_:1},8,["full-width"])):(i(),$(yt,{key:0,"variable-width":!0,"full-width":e.fullWidth},{title:_(()=>[n("span",rc,[n("span",{style:te(h.value),onClick:d[0]||(d[0]=u=>o.value=!o.value)},[d[6]||(d[6]=n("span",{class:"fa-solid fa-charging-station"}," ",-1)),R(" "+x(e.chargepoint.name),1)],4),t.value.faultState==2?(i(),f("span",oc,"Fehler")):w("",!0)])]),buttons:_(()=>[n("span",{type:"button",class:"ms-2 ps-1 pt-1",onClick:d[1]||(d[1]=u=>o.value=!o.value)},d[7]||(d[7]=[n("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)]))]),footer:_(()=>[o.value?w("",!0):(i(),$(nc,{key:0,chargepoint:e.chargepoint,"full-width":e.fullWidth},null,8,["chargepoint","full-width"]))]),default:_(()=>[o.value?w("",!0):(i(),f("div",sc,[n("div",{class:"grid12",onClick:d[2]||(d[2]=u=>o.value=!o.value)},[b(ee,{heading:"Status:",class:"grid-col-4 grid-left"},{default:_(()=>[n("span",{style:te({color:r.value})},[n("i",{class:H(p.value)},null,2),R(" "+x(s.value),1)],4)]),_:1}),b(ee,{heading:"Geladen:",class:"grid-col-4 grid-left"},{default:_(()=>[b(Ge,{"watt-h":c.chargepoint.dailyYield},null,8,["watt-h"])]),_:1})])])),o.value?(i(),f("div",lc,[n("div",ic,[c.chargepoint!=null?(i(),$(Rt,{key:0,chargepoint:c.chargepoint},null,8,["chargepoint"])):w("",!0)])])):w("",!0)]),_:1},8,["full-width"]))}}),uc=j(cc,[["__scopeId","data-v-b35defc2"]]),dc=["id"],hc={class:"modal-dialog modal-lg modal-fullscreen-lg-down"},pc={class:"modal-content"},gc={class:"modal-header"},mc={class:"modal-title"},fc={class:"modal-body",style:{"background-color":"var(--color-bg)"}},vc=B({__name:"ModalComponent",props:{modalId:{}},setup(a){const e=a;return Oe(()=>{}),(t,o)=>(i(),f("div",{id:e.modalId,class:"modal fade"},[n("div",hc,[n("div",pc,[n("div",gc,[n("h3",mc,[de(t.$slots,"title",{},void 0,!0)]),o[0]||(o[0]=n("button",{type:"button",class:"btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0","data-bs-dismiss":"modal"},[n("i",{class:"fa-solid fa-lg fa-rectangle-xmark m-0 p-0"})],-1))]),n("div",fc,[de(t.$slots,"default",{},void 0,!0),o[1]||(o[1]=n("button",{class:"btn btn-secondary float-end mt-3 ms-1","data-bs-dismiss":"modal"}," Schließen ",-1))])])])],8,dc))}}),Da=j(vc,[["__scopeId","data-v-eaefae30"]]),bc={class:"d-flex align-items-center"},yc={class:"cpname"},_c={class:"d-flex float-right justify-content-end align-items-center"},wc=["data-bs-target"],kc=["data-bs-target"],xc={class:"subgrid"},Sc={key:0,class:"d-flex justify-content-center align-items-center vehiclestatus"},$c={class:"d-flex flex-column align-items-center px-0"},Mc={class:"d-flex justify-content-center flex-wrap"},Pc={class:"d-flex align-items-center"},Cc={class:"badge phasesInUse rounded-pill"},Ic={class:"d-flex flex-wrap justify-content-center chargeinfo"},Bc={class:"me-1"},Vc={key:0,class:"subgrid socEditRow m-0 p-0"},Lc={class:"socEditor rounded mt-2 d-flex flex-column align-items-center grid-col-12"},Tc={class:"d-flex justify-content-stretch align-items-center"},Oc=B({__name:"CpsListItem2",props:{chargepoint:{}},setup(a){const e=a,t=Y(!1),o=g(()=>ye[e.chargepoint.chargeMode].icon),s=g(()=>{let P="";return e.chargepoint.isLocked?P="fa-lock":e.chargepoint.isCharging?P=" fa-bolt":e.chargepoint.isPluggedIn&&(P="fa-plug"),"fa "+P}),r=g(()=>{let P="var(--color-axis)";return e.chargepoint.isLocked?P="var(--color-evu)":e.chargepoint.isCharging?P="var(--color-charging)":e.chargepoint.isPluggedIn&&(P="var(--color-battery)"),{color:P,border:`0.5px solid ${P} `}}),p=g(()=>{switch(e.chargepoint.chargeMode){case"stop":return{"background-color":"var(--color-input)"};default:return{"background-color":ye[e.chargepoint.chargeMode].color}}}),h=g(()=>Pe(e.chargepoint.power,m.decimalPlaces)),c=g(()=>e.chargepoint.current+" A"),d=g(()=>e.chargepoint.phasesInUse),u=g(()=>e.chargepoint.dailyYield>0?Re(e.chargepoint.dailyYield,m.decimalPlaces):"0 Wh"),k=g(()=>"("+Math.round(e.chargepoint.rangeCharged).toString()+" "+e.chargepoint.rangeUnit+")"),M=g(()=>ye[e.chargepoint.chargeMode].name);function A(){_e("socUpdate",1,e.chargepoint.connectedVehicle),O[e.chargepoint.id].waitingForSoc=!0}function G(){_e("setSoc",q.value,e.chargepoint.connectedVehicle),t.value=!1}const q=g({get(){return e.chargepoint.soc},set(P){O[e.chargepoint.id].soc=P}}),I=g(()=>e.chargepoint.isLocked?"Gesperrt":e.chargepoint.isCharging?"Lädt":e.chargepoint.isPluggedIn?"Bereit":"Frei");return(P,V)=>(i(),f(W,null,[b(nt,{titlecolor:P.chargepoint.color,fullwidth:!0,small:!0},{title:_(()=>[n("div",bc,[n("span",yc,x(P.chargepoint.name),1),n("span",{class:"badge rounded-pill statusbadge mx-2",style:te(r.value)},[n("i",{class:H([s.value,"me-1"])},null,2),R(" "+x(I.value),1)],4)])]),buttons:_(()=>[n("div",_c,[n("span",{class:"badge rounded-pill modebadge mx-2",type:"button",style:te(p.value),"data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+P.chargepoint.id},[n("i",{class:H(["fa me-1",o.value])},null,2),R(" "+x(M.value),1)],12,wc),n("span",{class:"fa-solid ms-2 fa-lg fa-edit ps-1",type:"button","data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+P.chargepoint.id},null,8,kc)])]),default:_(()=>[n("div",xc,[b(ee,{heading:P.chargepoint.vehicleName,small:!0,class:"grid-left grid-col-4"},{default:_(()=>[P.chargepoint.isSocConfigured?(i(),f("span",Sc,[P.chargepoint.soc?(i(),$(It,{key:0,class:"me-1",soc:P.chargepoint.soc},null,8,["soc"])):w("",!0),P.chargepoint.isSocConfigured&&P.chargepoint.isSocManual?(i(),f("i",{key:1,type:"button",class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-menu)"},onClick:V[0]||(V[0]=S=>t.value=!t.value)})):w("",!0),P.chargepoint.isSocConfigured&&!P.chargepoint.isSocManual?(i(),f("i",{key:2,type:"button",class:H(["fa-solid fa-sm me-2",P.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),style:{color:"var(--color-menu)"},onClick:A},null,2)):w("",!0)])):w("",!0)]),_:1},8,["heading"]),b(ee,{heading:"Parameter:",small:!0,class:"grid-col-4"},{default:_(()=>[n("div",$c,[n("span",Mc,[n("span",null,x(h.value),1),n("span",Pc,[n("span",Cc,x(d.value),1),n("span",null,x(c.value),1)])])])]),_:1}),b(ee,{heading:"Geladen:",small:!0,class:"grid-right grid-col-4"},{default:_(()=>[n("div",Ic,[n("span",Bc,x(u.value),1),n("span",null,x(k.value),1)])]),_:1})]),t.value?(i(),f("div",Vc,[n("div",Lc,[V[2]||(V[2]=n("span",{class:"d-flex m-1 p-0 socEditTitle"},"Ladestand einstellen:",-1)),n("span",Tc,[n("span",null,[b(we,{id:"manualSoc",modelValue:q.value,"onUpdate:modelValue":V[1]||(V[1]=S=>q.value=S),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])])]),n("span",{type:"button",class:"fa-solid d-flex fa-lg me-2 mb-3 align-self-end fa-circle-check",onClick:G})])])):w("",!0)]),_:1},8,["titlecolor"]),(i(),$(tn,{to:"body"},[(i(),$(Da,{key:P.chargepoint.id,"modal-id":"cpsconfig-"+P.chargepoint.id},{title:_(()=>[R(" Konfiguration: "+x(P.chargepoint.name),1)]),default:_(()=>[P.chargepoint!=null?(i(),$(Rt,{key:0,chargepoint:P.chargepoint},null,8,["chargepoint"])):w("",!0)]),_:1},8,["modal-id"]))]))],64))}}),Ac=j(Oc,[["__scopeId","data-v-9260919a"]]),Ec=B({__name:"CpSimpleList2",setup(a){const e=g(()=>Object.values(O));return(t,o)=>(i(),$(je,{"variable-width":!0},{title:_(()=>o[0]||(o[0]=[n("span",{class:"fa-solid fa-charging-station"}," ",-1),R(" Ladepunkte ")])),buttons:_(()=>[l(oe).active?(i(),$(Ie,{key:0,bgcolor:"var(--color-menu)"},{default:_(()=>[R("Strompreis: "+x(l(oe).etCurrentPriceString),1)]),_:1})):w("",!0)]),default:_(()=>[(i(!0),f(W,null,Q(e.value,(s,r)=>(i(),f("div",{key:r,class:"subgrid pb-2"},[b(Ac,{chargepoint:s},null,8,["chargepoint"])]))),128))]),_:1}))}}),zc=j(Ec,[["__scopeId","data-v-b8c6b557"]]),At=B({__name:"ChargePointList",props:{id:{},compact:{type:Boolean}},setup(a){let e,t;const o=a,s=g(()=>{let d=Object.values(O);return c(),d}),r=g(()=>p.value+" "+h.value),p=g(()=>{switch(Object.values(O).length){case 0:return m.preferWideBoxes?"col-lg-6":"col-lg-4";case 1:return m.preferWideBoxes?"col-lg-6":"col-lg-4";case 2:return m.preferWideBoxes?"col-lg-12":"col-lg-8 ";default:return"col-lg-12"}}),h=g(()=>"swiper-chargepoints-"+o.id);function c(){let d=document.querySelector("."+h.value);if(d&&(t=d,e=t.swiper),e){let u="1";if(We.value)switch(Object.values(O).length){case 0:case 1:u="1";break;case 2:u="2";break;default:u="3"}t.setAttribute("slides-per-view",u),e.update()}}return Oe(()=>{let d=document.querySelector("."+h.value);d&&(t=d,e=t.swiper),window.addEventListener("resize",c),window.document.addEventListener("visibilitychange",c)}),(d,u)=>(i(),f(W,null,[o.compact?w("",!0):(i(),f("swiper-container",{key:0,"space-between":0,"slides-per-view":1,pagination:{clickable:!0},class:H(["cplist m-0 p-0 d-flex align-items-stretch",r.value])},[(i(!0),f(W,null,Q(s.value,k=>(i(),f("swiper-slide",{key:k.id},[n("div",{class:H([l(We)?"mb-0":"mb-5","d-flex align-items-stretch flex-fill"])},[b(uc,{chargepoint:k,"full-width":!0},null,8,["chargepoint"])],2)]))),128))],2)),o.compact?(i(),$(zc,{key:1})):w("",!0)],64))}}),Dc={class:"container-fluid p-0 m-0"},Wc={class:"row p-0 m-0"},Gc={class:"d-grid gap-2"},jc=["onClick"],Uc={class:"col-md-4 p-1"},Fc={class:"d-grid gap-2"},Nc={key:0},Hc={class:"row justify-content-center m-1 p-0"},Rc={class:"col-lg-4 p-1 m-0"},Jc={class:"d-grid gap-2"},qc={class:"col-lg-4 p-1 m-0"},Yc={class:"d-grid gap-2"},Qc={class:"col-lg-4 p-1 m-0"},Zc={class:"d-grid gap-2"},Xc=B({__name:"BBSelect",props:{cpId:{}},setup(a){const e=a,t=[{mode:"instant_charging",name:"Sofort",color:"var(--color-charging)"},{mode:"pv_charging",name:"PV",color:"var(--color-pv)"},{mode:"scheduled_charging",name:"Zielladen",color:"var(--color-battery)"},{mode:"eco_charging",name:"Eco",color:"var(--color-devices)"},{mode:"stop",name:"Stop",color:"var(--color-axis)"}],o=g(()=>O[e.cpId]);function s(d){return d==o.value.chargeMode?"btn btn-success buttonTextSize":"btn btn-secondary buttonTextSize"}function r(d){return he.pvBatteryPriority==d?"btn-success":"btn-secondary"}function p(d){o.value.chargeMode=d}function h(d){o.value.isLocked=d}function c(d){he.pvBatteryPriority=d}return(d,u)=>(i(),f("div",Dc,[n("div",Wc,[(i(),f(W,null,Q(t,(k,M)=>n("div",{key:M,class:"col-md-4 p-1"},[n("div",Gc,[n("button",{type:"button",class:H(s(k.mode)),style:{},onClick:A=>p(k.mode)},x(k.name),11,jc)])])),64)),n("div",Uc,[n("div",Fc,[o.value.isLocked?(i(),f("button",{key:0,type:"button",class:"btn btn-outline-success buttonTextSize","data-bs-dismiss":"modal",onClick:u[0]||(u[0]=k=>h(!1))}," Entsperren ")):w("",!0),o.value.isLocked?w("",!0):(i(),f("button",{key:1,type:"button",class:"btn btn-outline-danger buttonTextSize","data-bs-dismiss":"modal",onClick:u[1]||(u[1]=k=>h(!0))}," Sperren "))])])]),l(he).isBatteryConfigured?(i(),f("div",Nc,[u[8]||(u[8]=n("hr",null,null,-1)),u[9]||(u[9]=n("div",{class:"row"},[n("div",{class:"col text-center"},"Vorrang im Lademodus PV-Laden:")],-1)),n("div",Hc,[n("div",Rc,[n("div",Jc,[n("button",{id:"evPriorityBtn",type:"button",class:H(["priorityModeBtn btn btn-secondary buttonTextSize",r("ev_mode")]),"data-dismiss":"modal",priority:"1",onClick:u[2]||(u[2]=k=>c("ev_mode"))},u[5]||(u[5]=[R(" EV "),n("span",{class:"fas fa-car ms-2"}," ",-1)]),2)])]),n("div",qc,[n("div",Yc,[n("button",{id:"batteryPriorityBtn",type:"button",class:H(["priorityModeBtn btn btn-secondary buttonTextSize",r("bat_mode")]),"data-dismiss":"modal",priority:"0",onClick:u[3]||(u[3]=k=>c("bat_mode"))},u[6]||(u[6]=[R(" Speicher "),n("span",{class:"fas fa-car-battery ms-2"}," ",-1)]),2)])]),n("div",Qc,[n("div",Zc,[n("button",{id:"minsocPriorityBtn",type:"button",class:H(["priorityModeBtn btn btn-secondary buttonTextSize",r("min_soc_bat_mode")]),"data-dismiss":"modal",priority:"0",onClick:u[4]||(u[4]=k=>c("min_soc_bat_mode"))},u[7]||(u[7]=[R(" MinSoc "),n("span",{class:"fas fa-battery-half"}," ",-1)]),2)])])])])):w("",!0)]))}}),Kc={class:"col-lg-4 p-0 m-0 mt-1"},eu={class:"d-grid gap-2"},tu=["data-bs-target"],au={class:"m-0 p-0 d-flex justify-content-between align-items-center"},nu={class:"mx-1 badge rounded-pill smallTextSize plugIndicator"},ru={key:0,class:"ms-2"},ou={class:"m-0 p-0"},su={key:0,class:"ps-1"},lu=B({__name:"BbChargeButton",props:{chargepoint:{}},setup(a){const e=a,t="chargeSelectModal"+e.chargepoint.id,o=g(()=>ye[e.chargepoint.chargeMode].name),s=g(()=>{let u={background:"var(--color-menu)"};return e.chargepoint.isLocked?u.background="var(--color-evu)":e.chargepoint.isCharging?u.background="var(--color-charging)":e.chargepoint.isPluggedIn&&(u.background="var(--color-battery)"),u}),r=g(()=>{{let u={background:ye[e.chargepoint.chargeMode].color,color:"white"};switch(e.chargepoint.chargeMode){case Me.instant_charging:e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(u=d(u));break;case Me.stop:u.background="darkgrey",u.color="black";break;case Me.scheduled_charging:e.chargepoint.isPluggedIn&&!e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(u=d(u));break}return u}}),p=g(()=>ye[e.chargepoint.chargeMode].icon),h=g(()=>{switch(he.pvBatteryPriority){case"ev_mode":return"fa-car";case"bat_mode":return"fa-car-battery";case"min_soc_bat_mode":return"fa-battery-half";default:return console.log("default"),""}}),c=g(()=>{let u="fa-ellipsis";return e.chargepoint.isLocked?u="fa-lock":e.chargepoint.isCharging?u=" fa-bolt":e.chargepoint.isPluggedIn&&(u="fa-plug"),"fa "+u});function d(u){let k=u.color;return u.color=u.background,u.background=k,u}return(u,k)=>(i(),f("div",Kc,[n("div",eu,[n("button",{type:"button",class:"btn mx-1 mb-0 p-1 mediumTextSize chargeButton shadow",style:te(s.value),"data-bs-toggle":"modal","data-bs-target":"#"+t},[n("div",au,[n("span",nu,[n("i",{class:H(c.value)},null,2),u.chargepoint.isCharging?(i(),f("span",ru,x(l(Pe)(u.chargepoint.power)),1)):w("",!0)]),n("span",ou,x(u.chargepoint.name),1),n("span",{class:"mx-2 m-0 badge rounded-pill smallTextSize modeIndicator",style:te(r.value)},[n("i",{class:H(["fa me-1",p.value])},null,2),R(" "+x(o.value)+" ",1),u.chargepoint.chargeMode==l(Me).pv_charging&&l(he).isBatteryConfigured?(i(),f("span",su,[k[0]||(k[0]=R(" ( ")),n("i",{class:H(["fa m-0",h.value])},null,2),k[1]||(k[1]=R(") "))])):w("",!0)],4)])],12,tu)]),b(Da,{"modal-id":t},{title:_(()=>[R(" Lademodus für "+x(u.chargepoint.vehicleName),1)]),default:_(()=>[b(Xc,{"cp-id":u.chargepoint.id},null,8,["cp-id"])]),_:1})]))}}),iu=j(lu,[["__scopeId","data-v-71bb7e5f"]]),cu={class:"row p-0 mt-0 mb-1 m-0"},uu={class:"col p-0 m-0"},du={class:"container-fluid p-0 m-0"},hu={class:"row p-0 m-0 d-flex justify-content-center align-items-center"},pu={key:0,class:"col time-display"},gu=B({__name:"ButtonBar",setup(a){return(e,t)=>(i(),f("div",cu,[n("div",uu,[n("div",du,[n("div",hu,[l(m).showClock=="buttonbar"?(i(),f("span",pu,x(l(Oa)(l(Ht))),1)):w("",!0),(i(!0),f(W,null,Q(l(O),(o,s)=>(i(),$(iu,{key:s,chargepoint:o,"charge-point-count":Object.values(l(O)).length},null,8,["chargepoint","charge-point-count"]))),128))])])])]))}}),mu=j(gu,[["__scopeId","data-v-791e4be0"]]),fu={class:"battery-title"},vu={class:"subgrid pt-1"},bu=B({__name:"BLBattery",props:{bat:{}},setup(a){const e=a,t=g(()=>e.bat.power<0?`Liefert (${Pe(-e.bat.power)})`:e.bat.power>0?`Lädt (${Pe(e.bat.power)})`:"Bereit"),o=g(()=>e.bat.power<0?"var(--color-pv)":e.bat.power>0?"var(--color-battery)":"var(--color-menu)");return(s,r)=>(i(),$(nt,{titlecolor:"var(--color-title)",fullwidth:!0},{title:_(()=>[n("span",fu,x(s.bat.name),1)]),buttons:_(()=>[b(Ie,{bgcolor:o.value},{default:_(()=>[R(x(t.value),1)]),_:1},8,["bgcolor"])]),default:_(()=>[n("div",vu,[b(ee,{heading:"Ladestand:",small:!0,class:"grid-left grid-col-4"},{default:_(()=>[b(It,{soc:e.bat.soc},null,8,["soc"])]),_:1}),b(ee,{heading:"Geladen:",small:!0,class:"grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.bat.dailyYieldImport},null,8,["watt-h"])]),_:1}),b(ee,{heading:"Geliefert:",small:!0,class:"grid-right grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.bat.dailyYieldExport},null,8,["watt-h"])]),_:1})])]),_:1}))}}),yu=j(bu,[["__scopeId","data-v-f7f825f7"]]),_u={class:"subgrid grid-12"},wu={key:0,class:"subgrid"},ku=B({__name:"BatteryList",setup(a){const e=g(()=>J.batOut.power>0?`Liefert (${Pe(J.batOut.power)})`:F.batIn.power>0?`Lädt (${Pe(F.batIn.power)})`:"Bereit:"),t=g(()=>J.batOut.power>0?"var(--color-pv)":F.batIn.power>0?"var(--color-battery)":"var(--color-menu)"),o=g(()=>{let s=0;return se.value.forEach(r=>{s+=r.dailyYieldImport}),s});return(s,r)=>l(he).isBatteryConfigured?(i(),$(je,{key:0,"variable-width":!0,"full-width":!1},{title:_(()=>r[0]||(r[0]=[n("span",{class:"fas fa-car-battery me-2",style:{color:"var(--color-battery)"}}," ",-1),n("span",null,"Speicher",-1)])),buttons:_(()=>[b(Ie,{bgcolor:t.value},{default:_(()=>[R(x(e.value),1)]),_:1},8,["bgcolor"])]),default:_(()=>[n("div",_u,[b(ee,{heading:"Ladestand:",class:"grid-left grid-col-4"},{default:_(()=>[b(It,{color:"var(--color-battery)",soc:l(he).batterySoc},null,8,["soc"])]),_:1}),b(ee,{heading:"Geladen:",class:"grid-col-4"},{default:_(()=>[n("span",null,x(l(Re)(o.value)),1)]),_:1}),b(ee,{heading:"Geliefert",class:"grid-right grid-col-4"},{default:_(()=>[n("span",null,x(l(Re)(l(J).batOut.energy)),1)]),_:1})]),l(se).size>1?(i(),f("div",wu,[(i(!0),f(W,null,Q(l(se),([p,h])=>(i(),$(yu,{key:p,bat:h,class:"px-0"},null,8,["bat"]))),128))])):w("",!0)]),_:1})):w("",!0)}}),Et=j(ku,[["__scopeId","data-v-c2a8727a"]]),xu={class:"devicename"},Su={class:"subgrid"},$u=B({__name:"SHListItem",props:{device:{}},setup(a){const e=a,t=g(()=>e.device.status=="on"?"fa-toggle-on fa-xl":e.device.status=="waiting"?"fa-spinner fa-spin":"fa-toggle-off fa-xl"),o=g(()=>{let h="var(--color-switchRed)";switch(e.device.status){case"on":h="var(--color-switchGreen)";break;case"detection":h="var(--color-switchBlue)";break;case"timeout":h="var(--color-switchWhite)";break;case"waiting":h="var(--color-menu)";break;default:h="var(--color-switchRed)"}return{color:h}});function s(){e.device.isAutomatic||(e.device.status=="on"?_e("shSwitchOn",0,e.device.id):_e("shSwitchOn",1,e.device.id),ne.get(e.device.id).status="waiting")}function r(){e.device.isAutomatic?_e("shSetManual",1,e.device.id):_e("shSetManual",0,e.device.id)}const p=g(()=>e.device.isAutomatic?"Auto":"Man");return(h,c)=>(i(),$(nt,{titlecolor:h.device.color,fullwidth:!0},{title:_(()=>[n("span",xu,x(h.device.name),1)]),buttons:_(()=>[(i(!0),f(W,null,Q(h.device.temp,(d,u)=>(i(),f("span",{key:u},[d<300?(i(),$(Ie,{key:0,bgcolor:"var(--color-battery)"},{default:_(()=>[n("span",null,x(l(Jn)(d)),1)]),_:2},1024)):w("",!0)]))),128)),e.device.canSwitch?(i(),f("span",{key:0,class:H([t.value,"fa-solid statusbutton mr-2 ms-2"]),style:te(o.value),onClick:s},null,6)):w("",!0),e.device.canSwitch?(i(),$(Ie,{key:1,type:"button",onClick:r},{default:_(()=>[R(x(p.value),1)]),_:1})):w("",!0)]),default:_(()=>[n("div",Su,[b(ee,{heading:"Leistung:",small:!0,class:"grid-col-4 grid-left"},{default:_(()=>[b(bt,{watt:h.device.power},null,8,["watt"])]),_:1}),b(ee,{heading:"Energie:",small:!0,class:"grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":h.device.energy},null,8,["watt-h"])]),_:1}),b(ee,{heading:"Laufzeit:",small:!0,class:"grid-col-4 grid-right"},{default:_(()=>[R(x(l(Hn)(h.device.runningTime)),1)]),_:1})])]),_:1},8,["titlecolor"]))}}),Mu=j($u,[["__scopeId","data-v-20651ac6"]]),Pu={class:"sh-title py-4"},Cu=["id","onUpdate:modelValue","value"],Iu=["for"],Bu=3,Vu=B({__name:"SmartHomeList",setup(a){const e=g(()=>We.value?t.value.reduce((p,h)=>{const c=p;let d=p[p.length-1];return d.length>=Bu?p.push([h]):d.push(h),c},[[]]):[t.value]),t=g(()=>[...ne.values()].filter(p=>p.configured));function o(p){return"Geräte"+(We.value&&e.value.length>1?"("+(p+1)+")":"")}function s(){r.value=!r.value}const r=Y(!1);return(p,h)=>(i(),f(W,null,[(i(!0),f(W,null,Q(e.value,(c,d)=>(i(),$(je,{key:d,"variable-width":!0},{title:_(()=>[n("span",{onClick:s},[h[0]||(h[0]=n("span",{class:"fas fa-plug me-2",style:{color:"var(--color-devices)"}}," ",-1)),n("span",Pu,x(o(d)),1)])]),buttons:_(()=>[n("span",{class:"ms-2 pt-1",onClick:s},h[1]||(h[1]=[n("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)]))]),default:_(()=>[(i(!0),f(W,null,Q(c,u=>(i(),$(Mu,{key:u.id,device:u,class:"subgrid pb-2"},null,8,["device"]))),128))]),_:2},1024))),128)),r.value?(i(),$(je,{key:0},{title:_(()=>[n("span",{class:"smarthome",onClick:s},h[2]||(h[2]=[n("span",{class:"fas fa-gear"}," ",-1),R(" Einstellungen")]))]),buttons:_(()=>[n("span",{class:"ms-2 pt-1",onClick:s},h[3]||(h[3]=[n("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)]))]),default:_(()=>[b(U,{title:"Im Energie-Graph anzeigen:",icon:"fa-chart-column",fullwidth:!0},{default:_(()=>[(i(!0),f(W,null,Q(t.value,(c,d)=>(i(),f("div",{key:d},[ft(n("input",{id:"check"+d,"onUpdate:modelValue":u=>c.showInGraph=u,class:"form-check-input",type:"checkbox",value:c},null,8,Cu),[[$a,c.showInGraph]]),n("label",{class:"form-check-label px-2",for:"check"+d},x(c.name),9,Iu)]))),128))]),_:1}),n("div",{class:"row p-0 m-0",onClick:s},h[4]||(h[4]=[n("div",{class:"col-12 mb-3 pe-3 mt-0"},[n("button",{class:"btn btn-sm btn-secondary float-end"},"Schließen")],-1)]))]),_:1})):w("",!0)],64))}}),zt=j(Vu,[["__scopeId","data-v-5b5cf6b3"]]),Lu={class:"countername"},Tu={class:"subgrid pt-1"},Ou=B({__name:"ClCounter",props:{counter:{}},setup(a){const e=a,t=g(()=>e.counter.power>0?"Bezug":"Export"),o=g(()=>e.counter.power>0?"var(--color-evu)":"var(--color-pv)");return(s,r)=>(i(),$(nt,{titlecolor:"var(--color-title)",fullwidth:!0},{title:_(()=>[n("span",Lu,x(s.counter.name),1)]),buttons:_(()=>[e.counter.power!=0?(i(),$(Ie,{key:0,bgcolor:o.value},{default:_(()=>[R(x(t.value),1)]),_:1},8,["bgcolor"])):w("",!0),b(Ie,{color:"var(--color-bg)"},{default:_(()=>[R(" ID: "+x(e.counter.id),1)]),_:1})]),default:_(()=>[n("div",Tu,[b(ee,{heading:"Leistung:",small:!0,class:"grid-left grid-col-4"},{default:_(()=>[b(bt,{watt:Math.abs(e.counter.power)},null,8,["watt"])]),_:1}),b(ee,{heading:"Bezogen:",small:!0,class:"grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.counter.energy_imported},null,8,["watt-h"])]),_:1}),b(ee,{heading:"Exportiert:",small:!0,class:"grid-right grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.counter.energy_exported},null,8,["watt-h"])]),_:1})])]),_:1}))}}),Au=j(Ou,[["__scopeId","data-v-01dd8c4d"]]);class Eu{constructor(e){v(this,"id");v(this,"name","Zähler");v(this,"power",0);v(this,"energy_imported",0);v(this,"energy_exported",0);v(this,"grid",!1);v(this,"counterType","counter");v(this,"type",K.counter);v(this,"color","var(--color-evu)");v(this,"energy",0);v(this,"energyPv",0);v(this,"energyBat",0);v(this,"pvPercentage",0);v(this,"icon","");v(this,"showInGraph",!0);this.id=e}}const Se=pe({});function zu(a,e){if(a in Se)console.info("Duplicate counter message: "+a);else switch(Se[a]=new Eu(a),Se[a].counterType=e,e){case"counter":Se[a].color="var(--color-evu)";break;case"inverter":Se[a].color="var(--color-pv)";break;case"cp":Se[a].color="var(--color-charging)";break;case"bat":Se[a].color="var(--color-bat)";break}}const Du=B({__name:"CounterList",setup(a){return(e,t)=>(i(),$(je,{"variable-width":!0},{title:_(()=>t[0]||(t[0]=[n("span",{class:"fas fa-bolt me-2",style:{color:"var(--color-evu)"}}," ",-1),n("span",null,"Zähler",-1)])),default:_(()=>[(i(!0),f(W,null,Q(l(Se),(o,s)=>(i(),f("div",{key:s,class:"subgrid pb-2"},[b(Au,{counter:o},null,8,["counter"])]))),128))]),_:1}))}}),Dt=j(Du,[["__scopeId","data-v-5f059284"]]),Wu={class:"vehiclename"},Gu={class:"subgrid"},ju=B({__name:"VlVehicle",props:{vehicle:{}},setup(a){const e=a,t=g(()=>{let s="Unterwegs",r=e.vehicle.chargepoint;return r!=null&&(r.isCharging?s="Lädt ("+r.name+")":r.isPluggedIn&&(s="Bereit ("+r.name+")")),s}),o=g(()=>{let s=e.vehicle.chargepoint;return s!=null?s.isLocked?"var(--color-evu)":s.isCharging?"var(--color-charging)":s.isPluggedIn?"var(--color-battery)":"var(--color-axis)":"var(--color-axis)"});return(s,r)=>(i(),$(nt,{titlecolor:"var(--color-title)",fullwidth:!0},{title:_(()=>[n("span",Wu,x(e.vehicle.name),1)]),default:_(()=>[n("div",Gu,[b(ee,{heading:"Status:",small:!0,class:"grid-left grid-col-4"},{default:_(()=>[n("span",{style:te({color:o.value}),class:"d-flex justify-content-center align-items-center status-string"},x(t.value),5)]),_:1}),b(ee,{heading:"Ladestand:",small:!0,class:"grid-col-4"},{default:_(()=>[R(x(Math.round(e.vehicle.soc))+" % ",1)]),_:1}),b(ee,{heading:"Reichweite:",small:!0,class:"grid-right grid-col-4"},{default:_(()=>[R(x(Math.round(e.vehicle.range))+" km ",1)]),_:1})])]),_:1}))}}),Uu=j(ju,[["__scopeId","data-v-9e2cb63e"]]),Fu=B({__name:"VehicleList",setup(a){return(e,t)=>(i(),$(je,{"variable-width":!0},{title:_(()=>t[0]||(t[0]=[n("span",{class:"fas fa-car me-2",style:{color:"var(--color-charging)"}}," ",-1),n("span",null,"Fahrzeuge",-1)])),default:_(()=>[(i(!0),f(W,null,Q(Object.values(l(Z)).filter(o=>o.visible),(o,s)=>(i(),f("div",{key:s,class:"subgrid px-4"},[b(Uu,{vehicle:o},null,8,["vehicle"])]))),128))]),_:1}))}}),Wt=j(Fu,[["__scopeId","data-v-716be083"]]),Nu={class:"grapharea"},Hu={id:"pricechart",class:"p-1 m-0 pricefigure"},Ru={viewBox:"0 0 400 280"},Ju=["id","origin","transform"],dt=380,ka=250,Gt=12,qu=B({__name:"GlobalPriceChart",props:{id:{}},setup(a){const e=a,t=Y(!1),o={top:0,bottom:15,left:20,right:0},s=g(()=>{let I=[];return oe.etPriceList.size>0&&oe.etPriceList.forEach((P,V)=>{I.push([V,P])}),I}),r=g(()=>s.value.length>1?(dt-o.left-o.right)/s.value.length:0),p=g(()=>{let I=Te(s.value,P=>P[0]);return I[1]&&(I[1]=new Date(I[1]),I[1].setTime(I[1].getTime()+36e5)),at().range([o.left,dt-o.right]).domain(I)}),h=g(()=>{let I=[0,0];return s.value.length>0&&(I=Te(s.value,P=>P[1]),I[0]=Math.floor(I[0])-1,I[1]=Math.floor(I[1])+1),I}),c=g(()=>Je().range([ka-o.bottom,0]).domain(h.value)),d=g(()=>{const I=He(),P=[[o.left,c.value(m.lowerPriceBound)],[dt-o.right,c.value(m.lowerPriceBound)]];return I(P)}),u=g(()=>{const I=He(),P=[[o.left,c.value(m.upperPriceBound)],[dt-o.right,c.value(m.upperPriceBound)]];return I(P)}),k=g(()=>{const I=He(),P=[[o.left,c.value(0)],[dt-o.right,c.value(0)]];return I(P)}),M=g(()=>pt(p.value).ticks(s.value.length).tickSize(5).tickSizeInner(-250).tickFormat(I=>I.getHours()%6==0?it("%H:%M")(I):"")),A=g(()=>mt(c.value).ticks(h.value[1]-h.value[0]).tickSize(0).tickSizeInner(-360).tickFormat(I=>I%5!=0?"":I.toString())),G=g(()=>{t.value==!0;const I=ge("g#"+q.value);I.selectAll("*").remove(),I.selectAll("bar").data(s.value).enter().append("g").append("rect").attr("class","bar").attr("x",L=>p.value(L[0])).attr("y",L=>c.value(L[1])).attr("width",r.value).attr("height",L=>c.value(h.value[0])-c.value(L[1])).attr("fill","var(--color-charging)");const V=I.append("g").attr("class","axis").call(M.value);V.attr("transform","translate(0,"+(ka-o.bottom)+")"),V.selectAll(".tick").attr("font-size",Gt).attr("color","var(--color-bg)"),V.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",L=>L.getHours()%6==0?"2":"0.5"),V.select(".domain").attr("stroke","var(--color-bg");const S=I.append("g").attr("class","axis").call(A.value);S.attr("transform","translate("+o.left+",0)"),S.selectAll(".tick").attr("font-size",Gt).attr("color","var(--color-bg)"),S.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",L=>L%5==0?"2":"0.5"),S.select(".domain").attr("stroke","var(--color-bg)"),h.value[0]<0&&I.append("path").attr("d",k.value).attr("stroke","var(--color-fg)"),I.append("path").attr("d",d.value).attr("stroke","green"),I.append("path").attr("d",u.value).attr("stroke","red");const C=I.selectAll("ttip").data(s.value).enter().append("g").attr("class","ttarea");C.append("rect").attr("x",L=>p.value(L[0])).attr("y",L=>c.value(L[1])).attr("height",L=>c.value(h.value[0])-c.value(L[1])).attr("class","ttrect").attr("width",r.value).attr("opacity","1%").attr("fill","var(--color-charging)");const z=C.append("g").attr("class","ttmessage").attr("transform",L=>"translate("+(p.value(L[0])-30+r.value/2)+","+(c.value(L[1])-16)+")");z.append("rect").attr("rx",5).attr("width","60").attr("height","30").attr("fill","var(--color-menu)");const E=z.append("text").attr("text-anchor","middle").attr("x",30).attr("y",12).attr("font-size",Gt).attr("fill","var(--color-bg)");return E.append("tspan").attr("x",30).attr("dy","0em").text(L=>it("%H:%M")(L[0])),E.append("tspan").attr("x",30).attr("dy","1.1em").text(L=>Math.round(L[1]*10)/10+" ct"),"PriceChart.vue"}),q=g(()=>"priceChartCanvas"+e.id);return Oe(()=>{t.value=!t.value}),(I,P)=>(i(),$(je,{"variable-width":!0},{title:_(()=>P[0]||(P[0]=[n("span",{class:"fas fa-coins me-2",style:{color:"var(--color-battery)"}}," ",-1),n("span",null,"Strompreis",-1)])),buttons:_(()=>[l(oe).active?(i(),$(Ie,{key:0,bgcolor:"var(--color-charging)"},{default:_(()=>[R(x(l(oe).etCurrentPriceString),1)]),_:1})):w("",!0),l(oe).active?(i(),$(Ie,{key:1,bgcolor:"var(--color-menu)"},{default:_(()=>[R(x(l(oe).etProvider),1)]),_:1})):w("",!0)]),default:_(()=>[n("div",Nu,[n("figure",Hu,[(i(),f("svg",Ru,[n("g",{id:q.value,origin:G.value,transform:"translate("+o.top+","+o.left+") "},null,8,Ju)]))])])]),_:1}))}}),jt=j(qu,[["__scopeId","data-v-578b98b5"]]),Yu={class:"subgrid pt-1"},Qu=B({__name:"IlInverter",props:{inverter:{}},setup(a){const e=a,t=g(()=>({color:e.inverter.color}));return(o,s)=>(i(),$(nt,{titlecolor:"var(--color-title)",fullwidth:!0},{title:_(()=>[n("span",{class:"invertername",style:te(t.value)},x(o.inverter.name),5)]),buttons:_(()=>[e.inverter.power<0?(i(),$(Ie,{key:0,bgcolor:"var(--color-pv)"},{default:_(()=>[R(x(l(Pe)(-e.inverter.power)),1)]),_:1})):w("",!0)]),default:_(()=>[n("div",Yu,[b(ee,{heading:"Heute:",small:!0,class:"grid-col-4 grid-left"},{default:_(()=>[b(Ge,{"watt-h":e.inverter.energy},null,8,["watt-h"])]),_:1}),b(ee,{heading:"Monat:",small:!0,class:"grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.inverter.energy_month},null,8,["watt-h"])]),_:1}),b(ee,{heading:"Jahr:",small:!0,class:"grid-right grid-col-4"},{default:_(()=>[b(Ge,{"watt-h":e.inverter.energy_year},null,8,["watt-h"])]),_:1})])]),_:1}))}}),Zu=j(Qu,[["__scopeId","data-v-258d8f17"]]),Xu=B({__name:"InverterList",setup(a){const e=g(()=>[...be.value.values()].sort((t,o)=>t.id-o.id));return(t,o)=>(i(),$(je,{"variable-width":!0},{title:_(()=>o[0]||(o[0]=[n("span",{class:"fas fa-solar-panel me-2",style:{color:"var(--color-pv)"}}," ",-1),n("span",null,"Wechselrichter",-1)])),buttons:_(()=>[l(J).pv.power>0?(i(),$(Ie,{key:0,bgcolor:"var(--color-pv)"},{default:_(()=>[R(x(l(Pe)(l(J).pv.power)),1)]),_:1})):w("",!0)]),default:_(()=>[(i(!0),f(W,null,Q(e.value,s=>(i(),f("div",{key:s.id,class:"subgrid pb-2"},[b(Zu,{inverter:s},null,8,["inverter"])]))),128))]),_:1}))}}),Ut=j(Xu,[["__scopeId","data-v-8a9444cf"]]),Ku={class:"row py-0 px-0 m-0"},ed=["breakpoints"],td=B({__name:"CarouselFix",setup(a){let e,t;const o=Y(!1),s=g(()=>o.value?{992:{slidesPerView:1,spaceBetween:0}}:{992:{slidesPerView:3,spaceBetween:0}});return an(()=>m.zoomGraph,r=>{if(e){let p=r?"1":"3";t.setAttribute("slides-per-view",p),e.activeIndex=m.zoomedWidget,e.update()}}),Oe(()=>{let r=document.querySelector(".swiper-carousel");r&&(t=r,e=t.swiper)}),(r,p)=>(i(),f("div",Ku,[n("swiper-container",{"space-between":0,pagination:{clickable:!0},"slides-per-view":"1",class:"p-0 m-0 swiper-carousel",breakpoints:s.value},[n("swiper-slide",null,[n("div",{class:H([l(We)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[de(r.$slots,"item1",{},void 0,!0)],2)]),n("swiper-slide",null,[n("div",{class:H([l(We)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[de(r.$slots,"item2",{},void 0,!0)],2)]),n("swiper-slide",null,[n("div",{class:H([l(We)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[de(r.$slots,"item3",{},void 0,!0)],2)])],8,ed)]))}}),ad=j(td,[["__scopeId","data-v-17424929"]]);function nd(a,e){a=="openWB/graph/boolDisplayLiveGraph"?he.displayLiveGraph=+e==1:a.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)?rd(a,e):a=="openWB/graph/lastlivevaluesJson"?od(a,e):a=="openWB/graph/config/duration"&&(me.duration=JSON.parse(e))}function rd(a,e){if(!me.initialized){let t=[];const o=e.toString().split(` -`);o.length>1?t=o.map(p=>JSON.parse(p)):t=[];const s=a.match(/(\d+)$/g),r=s?s[0]:"";r!=""&&typeof me.rawDataPacks[+r-1]>"u"&&(me.rawDataPacks[+r-1]=t,me.initCounter++)}if(me.initCounter==16){const t=[];me.unsubscribeRefresh(),me.initialized=!0,me.rawDataPacks.forEach(o=>{o.forEach(s=>{const r=Wa(s);t.push(r)})}),vt(t),me.subscribeUpdates()}}function od(a,e){const t=JSON.parse(e),o=Wa(t);me.graphRefreshCounter++,vt(y.data.concat(o)),me.graphRefreshCounter>60&&me.activate()}function Wa(a){const e=Object.values(O).length>0?Object.values(O)[0].connectedVehicle:0,t=Object.values(O).length>1?Object.values(O)[1].connectedVehicle:1,o="ev"+e+"-soc",s="ev"+t+"-soc",r={};r.date=+a.timestamp*1e3,+a.grid>0?(r.evuIn=+a.grid,r.evuOut=0):+a.grid<=0?(r.evuIn=0,r.evuOut=-a.grid):(r.evuIn=0,r.evuOut=0),+a["pv-all"]>=0?(r.pv=+a["pv-all"],r.inverter=0):(r.pv=0,r.inverter=-a["pv-all"]),r.house=+a["house-power"],+a["bat-all-power"]>0?(r.batOut=0,r.batIn=+a["bat-all-power"]):+a["bat-all-power"]<0?(r.batOut=-a["bat-all-power"],r.batIn=0):(r.batOut=0,r.batIn=0),a["bat-all-soc"]?r.batSoc=+a["bat-all-soc"]:r.batSoc=0,a[o]&&(r["soc"+e]=+a[o]),a[s]&&(r["soc"+t]=+a[s]),r.charging=+a["charging-all"];for(let p=0;p<10;p++){const h="cp"+p;r[h]=+(a[h+"-power"]??0)}return r.selfUsage=r.pv-r.evuOut,r.selfUsage<0&&(r.selfUsage=0),r.devices=0,r}const sd=["evuIn","pv","batOut","evuOut","charging","house"];let Mt=[];function ld(a,e){const{entries:t,names:o,totals:s}=JSON.parse(e);Ne.value=new Map(Object.entries(o)),na(),Mt=[],Xt.forEach(p=>{T.setEnergyPv(p,0),T.setEnergyBat(p,0)});const r=id(t);vt(r),Kt(s,Mt),m.debug&&ud(t,s,r),y.graphMode=="today"&&setTimeout(()=>ue.activate(),3e5)}function id(a){const e=[];let t={};return a.forEach(o=>{t=cd(o);const s=t;e.push(s)}),e}function cd(a){const e={};e.date=a.timestamp*1e3,e.evuOut=0,e.evuIn=0,Object.entries(a.counter).forEach(([s,r])=>{r.grid&&(e.evuOut+=r.power_exported,e.evuIn+=r.power_imported,Mt.includes(s)||Mt.push(s))}),e.evuOut==0&&e.evuIn==0&&Object.entries(a.counter).forEach(s=>{e.evuOut+=s[1].power_exported,e.evuIn+=s[1].power_imported}),Object.entries(a.pv).forEach(([s,r])=>{s!="all"?e[s]=r.power_exported:e.pv=r.power_exported}),Object.entries(a.bat).length>0?(e.batIn=a.bat.all.power_imported,e.batOut=a.bat.all.power_exported,e.batSoc=a.bat.all.soc??0):(e.batIn=0,e.batOut=0,e.batSoc=0),Object.entries(a.cp).forEach(([s,r])=>{s!="all"?(e[s]=r.power_imported,T.keys().includes(s)||T.addItem(s)):e.charging=r.power_imported}),Object.entries(a.ev).forEach(([s,r])=>{s!="all"&&(e["soc"+s.substring(2)]=r.soc)}),e.devices=0;let t=0;return Object.entries(a.sh).forEach(([s,r])=>{var p;s!="all"&&(e[s]=r.power_imported??0,T.keys().includes(s)||(T.addItem(s),T.items[s].showInGraph=ne.get(+s.slice(2)).showInGraph),(p=ne.get(+s.slice(2)))!=null&&p.countAsHouse?t+=e[s]:e.devices+=r.power_imported??0)}),e.selfUsage=Math.max(0,e.pv-e.evuOut),a.hc&&a.hc.all?e.house=a.hc.all.power_imported-t:e.house=e.evuIn+e.batOut+e.pv-e.evuOut-e.charging-e.devices-e.batOut,e.evuIn+e.batOut+e.pv>0?T.keys().filter(s=>!sd.includes(s)&&s!="charging").forEach(s=>{Cn(s,e)}):Object.keys(e).forEach(s=>{e[s+"Pv"]=0,e[s+"Bat"]=0}),e}function ud(a,e,t){console.debug("---------------------------------------- Graph Data -"),console.debug(["--- Incoming graph data:",a]),console.debug(["--- Incoming energy data:",e]),console.debug(["--- Data to be displayed:",t]),console.debug("-----------------------------------------------------")}let wt={};const oa=["charging","house","batIn","devices"],dd=["evuIn","pv","batOut","batIn","evuOut","devices","sh1","sh2","sh3","sh4","sh5","sh6","sh7","sh8","sh9"];let tt=[];function hd(a,e){const{entries:t,names:o,totals:s}=JSON.parse(e);Ne.value=new Map(Object.entries(o)),na(),tt=[],oa.forEach(r=>{T.items[r].energyPv=0,T.items[r].energyBat=0}),t.length>0&&vt(Ga(t)),Kt(s,tt)}function pd(a,e){const{entries:t,names:o,totals:s}=JSON.parse(e);Ne.value=new Map(Object.entries(o)),na(),tt=[],oa.forEach(r=>{T.items[r].energyPv=0,T.items[r].energyBat=0}),t.length>0&&vt(Ga(t)),Kt(s,tt)}function Ga(a){const e=[];let t={};return wt={},a.forEach(o=>{t=gd(o),e.push(t),Object.keys(t).forEach(s=>{s!="date"&&(t[s]<0&&(console.warn(`Negative energy value for ${s} in row ${t.date}. Ignoring the value.`),t[s]=0),wt[s]?wt[s]+=t[s]:wt[s]=t[s])})}),e}function gd(a){const e={},t=nn("%Y%m%d")(a.date);t&&(e.date=y.graphMode=="month"?t.getDate():t.getMonth()+1),e.evuOut=0,e.evuIn=0;let o=0,s=0;return Object.entries(a.counter).forEach(([p,h])=>{o+=h.energy_exported,s+=h.energy_imported,h.grid&&(e.evuOut+=h.energy_exported,e.evuIn+=h.energy_imported,tt.includes(p)||tt.push(p))}),tt.length==0&&(e.evuOut=o,e.evuIn=s),e.pv=a.pv.all.energy_exported,Object.entries(a.bat).length>0?(a.bat.all.energy_imported>=0?e.batIn=a.bat.all.energy_imported:(console.warn("ignoring negative value for batIn on day "+e.date),e.batIn=0),a.bat.all.energy_exported>=0?e.batOut=a.bat.all.energy_exported:(console.warn("ignoring negative value for batOut on day "+e.date),e.batOut=0)):(e.batIn=0,e.batOut=0),Object.entries(a.cp).forEach(([p,h])=>{p!="all"?(T.keys().includes(p)||T.addItem(p),e[p]=h.energy_imported):e.charging=h.energy_imported}),Object.entries(a.ev).forEach(([p,h])=>{p!="all"&&(e["soc-"+p]=h.soc)}),e.devices=Object.entries(a.sh).reduce((p,h)=>(T.keys().includes(h[0])||T.addItem(h[0]),h[1].energy_imported>=0?p+=h[1].energy_imported:console.warn(`Negative energy value for device ${h[0]} in row ${e.date}. Ignoring this value`),p),0),a.hc&&a.hc.all?e.house=a.hc.all.energy_imported:e.house=e.pv+e.evuIn+e.batOut-e.evuOut-e.batIn-e.charging,e.selfUsage=e.pv-e.evuOut,e.evuIn+e.batOut+e.pv>0?T.keys().filter(p=>!dd.includes(p)).forEach(p=>{In(p,e)}):oa.map(p=>{e[p+"Pv"]=0,e[p+"Bat"]=0}),e}function md(a,e){const t=fd(a);if(t&&!se.value.has(t)){console.warn("Invalid battery index: ",t);return}a=="openWB/bat/config/configured"?he.isBatteryConfigured=e=="true":a=="openWB/bat/get/power"?+e>0?(F.batIn.power=+e,J.batOut.power=0):(F.batIn.power=0,J.batOut.power=-e):a=="openWB/bat/get/soc"?he.batterySoc=+e:a=="openWB/bat/get/daily_exported"?J.batOut.energy=+e:a=="openWB/bat/get/daily_imported"?F.batIn.energy=+e:t&&se.value.has(t)&&(a.match(/^openwb\/bat\/[0-9]+\/get\/daily_exported$/i)?se.value.get(t).dailyYieldExport=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/daily_imported$/i)?se.value.get(t).dailyYieldImport=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)?se.value.get(t).exported=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)?se.value.get(t).faultState=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)?se.value.get(t).faultStr=e:a.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)?se.value.get(t).imported=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)?se.value.get(t).power=+e:a.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)&&(se.value.get(t).soc=+e))}function fd(a){let e=0;try{const t=a.match(/(?:\/)([0-9]+)(?=\/)/g);return t?(e=+t[0].replace(/[^0-9]+/g,""),e):void 0}catch(t){console.warn("Parser error in getIndex for topic "+a+": "+t)}}function vd(a,e){if(a=="openWB/optional/et/provider")JSON.parse(e).type==null?oe.active=!1:(oe.active=!0,oe.etProvider=JSON.parse(e).name);else if(a=="openWB/optional/et/get/prices"){const t=JSON.parse(e);oe.etPriceList=new Map,Object.keys(t).forEach(o=>{oe.etPriceList.set(new Date(+o*1e3),t[o]*1e5)})}}function bd(a,e){const t=ja(a);if(t&&!(t in O)){console.warn("Invalid chargepoint id received: "+t);return}if(a=="openWB/chargepoint/get/power"?F.charging.power=+e:a=="openWB/chargepoint/get/daily_imported"&&(F.charging.energy=+e),a=="openWB/chargepoint/get/daily_exported")he.cpDailyExported=+e;else if(t)if(a.match(/^openwb\/chargepoint\/[0-9]+\/config$/i))if(O[t]){const o=JSON.parse(e);O[t].name=o.name,O[t].icon=o.name,ie["cp"+t]?(ie["cp"+t].name=o.name,ie["cp"+t].icon=o.name):ie["cp"+t]={name:o.name,icon:o.name,color:"var(--color-charging)"}}else console.warn("invalid chargepoint index: "+t);else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/state_str$/i))O[t].stateStr=JSON.parse(e);else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_str$/i))O[t].faultStr=JSON.parse(e);else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_state$/i))O[t].faultState=+e;else if(a.match(/^openWB\/chargepoint\/[0-9]+\/get\/power$/i))O[t].power=+e;else if(a.match(/^openWB\/chargepoint\/[0-9]+\/get\/daily_imported$/i))O[t].dailyYield=+e;else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/plug_state$/i))O[t].isPluggedIn=e=="true";else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/charge_state$/i))O[t].isCharging=e=="true";else if(a.match(/^openwb\/chargepoint\/[0-9]+\/set\/manual_lock$/i))O[t].updateIsLocked(e=="true");else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/enabled$/i))O[t].isEnabled=e=="1";else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/phases_in_use/i))O[t].phasesInUse=+e;else if(a.match(/^openwb\/chargepoint\/[0-9]+\/set\/current/i))O[t].current=+e;else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/currents/i))O[t].currents=JSON.parse(e);else if(a.match(/^openwb\/chargepoint\/[0-9]+\/set\/log/i)){const o=JSON.parse(e);O[t].chargedSincePlugged=o.imported_since_plugged}else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc$/i)){const o=JSON.parse(e);O[t].soc=o.soc,O[t].waitingForSoc=!1,O[t].rangeCharged=o.range_charged,O[t].rangeUnit=o.range_unit}else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/info$/i)){const o=JSON.parse(e);O[t].vehicleName=String(o.name),O[t].updateConnectedVehicle(+o.id)}else if(a.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/config$/i)){const o=JSON.parse(e);O[t].averageConsumption=o.average_consumption}else a.match(/^openwb\/chargepoint\/[0-9]+\/set\/charge_template$/i)&&(O[t].chargeTemplate=JSON.parse(e))}function yd(a,e){const t=ja(a);if(t!=null){if(!(t in Z)){const o=new wn(t);Z[t]=o}if(a.match(/^openwb\/vehicle\/[0-9]+\/name$/i))Object.values(O).forEach(o=>{o.connectedVehicle==t&&(o.vehicleName=JSON.parse(e))}),Z[t].name=JSON.parse(e);else if(a.match(/^openwb\/vehicle\/[0-9]+\/get\/soc$/i))Z[t].soc=JSON.parse(e);else if(a.match(/^openwb\/vehicle\/[0-9]+\/get\/range$/i))isNaN(+e)?Z[t].range=0:Z[t].range=+e;else if(a.match(/^openwb\/vehicle\/[0-9]+\/charge_template$/i))Z[t].updateChargeTemplateId(+e);else if(a.match(/^openwb\/vehicle\/[0-9]+\/ev_template$/i))Z[t].updateEvTemplateId(+e);else if(a.match(/^openwb\/vehicle\/[0-9]+\/soc_module\/config$/i)){const o=JSON.parse(e);Object.values(O).forEach(s=>{s.connectedVehicle==t&&(s.isSocConfigured=o.type!==null,s.isSocManual=o.type=="manual")}),Z[t].isSocConfigured=o.type!==null,Z[t].isSocManual=o.type=="manual"}}}function _d(a,e){if(a.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+$/i)){const t=a.match(/[0-9]+$/i);if(t){const o=+t[0];Nt[o]=JSON.parse(e)}}else if(a.match(/^openwb\/vehicle\/template\/ev_template\/[0-9]+$/i)){const t=a.match(/[0-9]+$/i);if(t){const o=+t[0],s=JSON.parse(e);kn[o]=s}}}function ja(a){let e=0;try{const t=a.match(/(?:\/)([0-9]+)(?=\/)/g);return t?(e=+t[0].replace(/[^0-9]+/g,""),e):void 0}catch(t){console.warn("Parser error in getIndex for topic "+a+": "+t)}}function wd(a,e){a.match(/^openWB\/LegacySmarthome\/config\//i)?kd(a,e):a.match(/^openWB\/LegacySmarthome\/Devices\//i)&&xd(a,e)}function kd(a,e){const t=Ua(a);if(t==null)return;ne.has(t)||qt(t);const o=ne.get(t);a.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_configured$/i)?(o.configured=e!="0",Jt("power"),Jt("energy")):a.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_name$/i)?(o.name=e.toString(),o.icon=e.toString(),ie["sh"+t].name=e.toString(),ie["sh"+t].icon=e.toString()):a.match(/^openWB\/LegacySmarthome\/config\/set\/Devices\/[0-9]+\/mode$/i)?o.isAutomatic=e=="0":a.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_canSwitch$/i)?o.canSwitch=e=="1":a.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_homeConsumtion$/i)?o.countAsHouse=e=="1":a.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_temperatur_configured$/i)&&(o.tempConfigured=+e)}function xd(a,e){const t=Ua(a);if(t==null){console.warn("Smarthome: Missing index in "+a);return}ne.has(t)||qt(t);const o=ne.get(t);if(a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Watt$/i))o.power=+e,Jt("power");else if(!a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Wh$/i)){if(a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/RunningTimeToday$/i))o.runningTime=+e;else if(a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor0$/i))o.temp[0]=+e;else if(a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor1$/i))o.temp[1]=+e;else if(a.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor2$/i))o.temp[2]=+e;else if(a.match(/^openWB\/LegacySmartHome\/Devices\/[0-9]+\/Status$/i))switch(+e){case 10:o.status="off";break;case 11:o.status="on";break;case 20:o.status="detection";break;case 30:o.status="timeout";break;default:o.status="off"}}}function Jt(a){switch(a){case"power":F.devices.power=[...ne.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,t)=>e+t.power,0);break;case"energy":F.devices.energy=[...ne.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,t)=>e+t.energy,0);break;default:console.error("Unknown category")}}function Ua(a){let e=0;try{const t=a.match(/(?:\/)([0-9]+)(?=\/)/g);return t?(e=+t[0].replace(/[^0-9]+/g,""),e):void 0}catch(t){console.warn("Parser error in getIndex for topic "+a+": "+t)}}const Pt=pe([]);class sa{constructor(e,t,o,s){v(this,"name");v(this,"children");v(this,"count");v(this,"lastValue");this.name=e,this.children=t,this.count=o,this.lastValue=s}insert(e,t){if(e.length){const o=e.splice(1);if(e[0]==this.name)if(o.length){let s=!1;if(this.children.forEach(r=>{r.name==o[0]&&(r.insert(o,t),s=!0)}),!s){const r=new sa(o[0],[],0,"");r.insert(o,t),this.children.push(r)}}else this.count=this.count+1,this.lastValue=t}}}function Sd(a,e){const t=a.split("/");if(t.length){let o=!1;if(Pt.forEach(s=>{s.name==t[0]&&(s.insert(t,e),o=!0)}),!o){const s=new sa(t[0],[],0,"");Pt.push(s),s.insert(t,e)}}}const $d=["openWB/counter/#","openWB/bat/#","openWB/pv/#","openWB/chargepoint/#","openWB/vehicle/#","openWB/general/chargemode_config/pv_charging/#","openWB/optional/et/#","openWB/system/#","openWB/LegacySmartHome/#","openWB/command/"+Yt()+"/#"];function Md(){bn(Pd),$d.forEach(a=>{et(a)}),ve()}function Pd(a,e){Sd(a,e.toString());const t=e.toString();a.match(/^openwb\/counter\/[0-9]+\//i)?Cd(a,t):a.match(/^openwb\/counter\//i)?Id(a,t):a.match(/^openwb\/bat\//i)?md(a,t):a.match(/^openwb\/pv\//i)?Bd(a,t):a.match(/^openwb\/chargepoint\//i)?bd(a,t):a.match(/^openwb\/vehicle\/template\//i)?_d(a,t):a.match(/^openwb\/vehicle\//i)?yd(a,t):a.match(/^openwb\/general\/chargemode_config\/pv_charging\//i)?Vd(a,t):a.match(/^openwb\/graph\//i)?nd(a,t):a.match(/^openwb\/log\/daily\//i)?ld(a,t):a.match(/^openwb\/log\/monthly\//i)?hd(a,t):a.match(/^openwb\/log\/yearly\//i)?pd(a,t):a.match(/^openwb\/optional\/et\//i)?vd(a,t):a.match(/^openwb\/system\//i)?Td(a,t):a.match(/^openwb\/LegacySmartHome\//i)?wd(a,t):a.match(/^openwb\/command\//i)&&Od(a,t)}function Cd(a,e){const t=a.split("/"),o=+t[2];if(o==he.evuId?Ld(a,e):t[3]=="config",t[3]=="get"&&o in Se)switch(t[4]){case"power":Se[o].power=+e;break;case"config":break;case"fault_str":break;case"fault_state":break;case"power_factors":break;case"imported":break;case"exported":break;case"frequency":break;case"daily_imported":Se[o].energy_imported=+e;break;case"daily_exported":Se[o].energy_exported=+e;break}}function Id(a,e){if(a.match(/^openwb\/counter\/get\/hierarchy$/i)){const t=JSON.parse(e);if(t.length){Sn(),Nn();for(const o of t)o.type=="counter"&&(he.evuId=o.id);Fa(t[0])}}else a.match(/^openwb\/counter\/set\/home_consumption$/i)?F.house.power=+e:a.match(/^openwb\/counter\/set\/daily_yield_home_consumption$/i)&&(F.house.energy=+e)}function Fa(a){switch(a.type){case"counter":zu(a.id,a.type);break;case"cp":xn(a.id);break;case"bat":Ta(a.id);break;case"inverter":Gn(a.id);break}a.children.forEach(e=>Fa(e))}function Bd(a,e){const t=Ad(a);t&&!be.value.has(t)?console.warn("Invalid PV system index: "+t):a=="openWB/pv/get/power"?J.pv.power=-e:a=="openWB/pv/get/daily_exported"?J.pv.energy=+e:a.match(/^openWB\/pv\/[0-9]+\/get\/power$/i)?be.value.get(t).power=+e:a.match(/^openWB\/pv\/[0-9]+\/get\/daily_exported$/i)?be.value.get(t).energy=+e:a.match(/^openWB\/pv\/[0-9]+\/get\/monthly_exported$/i)?be.value.get(t).energy_month=+e:a.match(/^openWB\/pv\/[0-9]+\/get\/yearly_exported$/i)?be.value.get(t).energy_year=+e:a.match(/^openWB\/pv\/[0-9]+\/get\/exported$/i)&&(be.value.get(t).energy_total=+e)}function Vd(a,e){const t=a.split("/");if(t.length>0)switch(t[4]){case"bat_mode":he.updatePvBatteryPriority(JSON.parse(e));break}}function Ld(a,e){switch(a.split("/")[4]){case"power":+e>0?(J.evuIn.power=+e,F.evuOut.power=0):(J.evuIn.power=0,F.evuOut.power=-e);break;case"daily_imported":J.evuIn.energy=+e;break;case"daily_exported":F.evuOut.energy=+e;break}}function Td(a,e){if(a.match(/^openWB\/system\/device\/[0-9]+\/component\/[0-9]+\/config$/i)){const t=JSON.parse(e);switch(t.type){case"counter":case"consumption_counter":Se[t.id]&&(Se[t.id].name=t.name);break;case"inverter":case"inverter_secondary":be.value.has(t.id)||be.value.set(t.id,new Ma(t.id)),be.value.get(t.id).name=t.name;break;case"bat":se.value.has(t.id)||Ta(t.id),se.value.get(t.id).name=t.name}}}function Od(a,e){const t=a.split("/");if(a.match(/^openWB\/command\/[a-z]+\/error$/i)&&t[2]==Yt()){const o=JSON.parse(e);console.error(`Error message from openWB: -Command: ${o.command} -Data: JSON.stringify(err.data) -Error: - ${o.error}`)}}function Ad(a){let e=0;try{const t=a.match(/(?:\/)([0-9]+)(?=\/)/g);return t?(e=+t[0].replace(/[^0-9]+/g,""),e):void 0}catch(t){console.warn("Parser error in getIndex for topic "+a+": "+t)}}const Ed={key:0,class:"fas fa-caret-down"},zd={key:1,class:"fas fa-caret-right"},Dd={key:0,class:"content p-2 m-2"},Wd={key:1,class:"sublist col-md-9 m-0 p-0 ps-2"},Gd=B({__name:"MqttNode",props:{node:{},level:{},hide:{type:Boolean},expandAll:{type:Boolean}},setup(a){const e=a;let t=Y(!e.hide),o=Y(!1);const s=g(()=>e.node.name),r=g(()=>[...e.node.children].sort((u,k)=>u.namee.node.count>0?"("+e.node.count+")":""),h=g(()=>e.node.children.length),c=g(()=>e.node.lastValue!=""?{"font-style":"italic","grid-column-start":e.level,"grid-column-end":-1}:{"grid-column-start":e.level,"grid-column-end":-1});function d(){h.value>0&&(t.value=!t.value),e.node.lastValue!=""&&(o.value=!o.value)}return(u,k)=>{const M=rn("MqttNode",!0);return i(),f(W,null,[n("div",{class:"name py-2 px-2 m-0",style:te(c.value),onClick:d},[(l(t)||e.expandAll)&&h.value>0||l(o)?(i(),f("span",Ed)):(i(),f("span",zd)),R(" "+x(s.value)+x(p.value),1)],4),l(o)?(i(),f("div",Dd,[n("code",null,x(e.node.lastValue),1)])):w("",!0),(l(t)||e.expandAll)&&h.value>0?(i(),f("div",Wd,[(i(!0),f(W,null,Q(r.value,(A,G)=>(i(),$(M,{key:G,level:e.level+1,node:A,hide:!0,"expand-all":e.expandAll},null,8,["level","node","expand-all"]))),128))])):w("",!0)],64)}}}),jd=j(Gd,[["__scopeId","data-v-df7e578a"]]),Ud={class:"mqviewer"},Fd={class:"row pt-2"},Nd={class:"col"},Hd={key:0,class:"topiclist"},Rd=B({__name:"MQTTViewer",setup(a){Oe(()=>{});const e=Y(!1);function t(){e.value=!e.value}const o=g(()=>e.value?"active":"");return(s,r)=>(i(),f("div",Ud,[n("div",Fd,[n("div",Nd,[r[0]||(r[0]=n("h3",{class:"mqtitle ps-2"},"MQTT Message Viewer",-1)),r[1]||(r[1]=n("hr",null,null,-1)),n("button",{class:H(["btn btn-small btn-outline-primary ms-2",o.value]),onClick:t}," Expand All ",2),r[2]||(r[2]=n("hr",null,null,-1))])]),l(Pt)[0]?(i(),f("div",Hd,[(i(!0),f(W,null,Q(l(Pt)[0].children.sort((p,h)=>p.name(i(),$(jd,{key:h,node:p,level:1,hide:!0,"expand-all":e.value},null,8,["node","expand-all"]))),128))])):w("",!0)]))}}),Jd=j(Rd,[["__scopeId","data-v-a349646d"]]),qd=["value"],Yd=B({__name:"SelectInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(a,{emit:e}){const t=a,o=e,s=g({get(){return t.modelValue},set(r){o("update:modelValue",r)}});return(r,p)=>ft((i(),f("select",{id:"selectme","onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),class:"form-select"},[(i(!0),f(W,null,Q(r.options,(h,c)=>(i(),f("option",{key:c,value:h[1]},x(h[0]),9,qd))),128))],512)),[[on,s.value]])}}),Qd=j(Yd,[["__scopeId","data-v-5e33ce1f"]]),Zd={class:"subgrid m-0 p-0"},Xd={class:"settingscolumn"},Kd={class:"settingscolumn"},eh={class:"settingscolumn"},th=B({__name:"ThemeSettings",emits:["reset-arcs"],setup(a,{emit:e}){const t=e,o=[["Dunkel","dark"],["Hell","light"],["Blau","blue"]],s=[["3 kW","0"],["3,1 kW","1"],["3,14 kW","2"],["3,141 kW","3"],["3141 W","4"]],r=[["Orange","normal"],["Grün/Violett","standard"],["Bunt","advanced"]],p=[["Aus","off"],["Menü","navbar"],["Buttonleiste","buttonbar"]],h=[["Aus","no"],['"Alles"-Reiter',"infoview"],["Immer","always"]];return(c,d)=>(i(),$(je,{"full-width":!0},{title:_(()=>d[23]||(d[23]=[R(" Look & Feel ")])),buttons:_(()=>d[24]||(d[24]=[n("span",{type:"button",class:"float-end mt-0 ms-1","data-bs-toggle":"collapse","data-bs-target":"#themesettings"},[n("span",null,[n("i",{class:"fa-solid fa-circle-check"})])],-1)])),default:_(()=>[n("div",Zd,[n("div",Xd,[b(U,{fullwidth:!0,title:"Farbschema",icon:"fa-adjust",infotext:"Hintergrundfarbe"},{default:_(()=>[b(xe,{modelValue:l(m).displayMode,"onUpdate:modelValue":d[0]||(d[0]=u=>l(m).displayMode=u),options:o},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Farbschema Smart-Home-Geräte",icon:"fa-palette",infotext:"Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung."},{default:_(()=>[b(xe,{modelValue:l(m).smartHomeColors,"onUpdate:modelValue":d[1]||(d[1]=u=>l(m).smartHomeColors=u),options:r},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Grafik: Raster",icon:"fa-th",infotext:"Verwende ein Hintergrundraster in den Grafiken"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showGrid,"onUpdate:modelValue":d[2]||(d[2]=u=>l(m).showGrid=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Variable Bogenlänge",icon:"fa-chart-area",infotext:"Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden."},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showRelativeArcs,"onUpdate:modelValue":d[3]||(d[3]=u=>l(m).showRelativeArcs=u)},null,8,["modelValue"])]),_:1}),l(m).showRelativeArcs?(i(),$(U,{key:0,fullwidth:!0,title:"Bögen zurücksetzen",icon:"fa-undo",infotext:"Durch Click auf den Button wird die Maximallänge der Bögen auf den aktuellen Wert gesetzt."},{default:_(()=>[l(m).showRelativeArcs?(i(),f("button",{key:0,class:"btn btn-secondary",onClick:d[4]||(d[4]=u=>t("reset-arcs"))}," Reset ")):w("",!0)]),_:1})):w("",!0),b(U,{fullwidth:!0,title:"Anzahl Dezimalstellen",icon:"fa-sliders-h",infotext:"Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt."},{default:_(()=>[b(Qd,{modelValue:l(m).decimalPlaces,"onUpdate:modelValue":d[5]||(d[5]=u=>l(m).decimalPlaces=u),options:s},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Uhrzeit anzeigen",icon:"fa-clock",infotext:"Zeige die aktuelle Uhrzeit an. In der Menüleiste oder neben den Lade-Buttons."},{default:_(()=>[b(xe,{modelValue:l(m).showClock,"onUpdate:modelValue":d[6]||(d[6]=u=>l(m).showClock=u),options:p},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Kompakte Ladepunktliste",icon:"fa-list",infotext:"Zeige eine einzelne Ladepunktliste statt separater Element pro Ladepunkt."},{default:_(()=>[b(xe,{modelValue:l(m).shortCpList,"onUpdate:modelValue":d[7]||(d[7]=u=>l(m).shortCpList=u),options:h},null,8,["modelValue"])]),_:1})]),n("div",Kd,[b(U,{fullwidth:!0,title:"Buttonleiste für Ladepunkte",icon:"fa-window-maximize",infotext:"Informationen zu Ladepunkten über den Diagrammen anzeigen."},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showButtonBar,"onUpdate:modelValue":d[8]||(d[8]=u=>l(m).showButtonBar=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Filter-Buttons",icon:"fa-filter",infotext:"Hauptseite mit Buttons zur Auswahl der Kategorie."},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showQuickAccess,"onUpdate:modelValue":d[9]||(d[9]=u=>l(m).showQuickAccess=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Breite Widgets",icon:"fa-desktop",infotext:"Widgets immer breit machen"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).preferWideBoxes,"onUpdate:modelValue":d[10]||(d[10]=u=>l(m).preferWideBoxes=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Stufenlose Displaybreite",icon:"fa-maximize",infotext:"Die Breite des Displays wird immer voll ausgenutzt. Dies kann in einigen Fällen zu inkorrekter Darstellung führen."},{"inline-item":_(()=>[b(ce,{modelValue:l(m).fluidDisplay,"onUpdate:modelValue":d[11]||(d[11]=u=>l(m).fluidDisplay=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Animationen",icon:"fa-film",infotext:"Animationen anzeigen"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showAnimations,"onUpdate:modelValue":d[12]||(d[12]=u=>l(m).showAnimations=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Zähler anzeigen",icon:"fa-chart-bar",infotext:"Zeige die Werte zusätzlich angelegter Zähler"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showCounters,"onUpdate:modelValue":d[13]||(d[13]=u=>l(m).showCounters=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Fahrzeuge anzeigen",icon:"fa-car",infotext:"Zeige alle Fahrzeuge mit Ladestand und Reichweite"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showVehicles,"onUpdate:modelValue":d[14]||(d[14]=u=>l(m).showVehicles=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Standardfahrzeug anzeigen",icon:"fa-car",infotext:"Zeige das Standard-Fahrzeug in der Fahzeugliste"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showStandardVehicle,"onUpdate:modelValue":d[15]||(d[15]=u=>l(m).showStandardVehicle=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Wechselrichter-Details anzeigen",icon:"fa-solar-panel",infotext:"Zeige Details zu den einzelnen Wechselrichtern"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showInverters,"onUpdate:modelValue":d[16]||(d[16]=u=>l(m).showInverters=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Alternatives Energie-Widget",icon:"fa-chart-area",infotext:"Horizontale Darstellung der Energie-Werte"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).alternativeEnergy,"onUpdate:modelValue":d[17]||(d[17]=u=>l(m).alternativeEnergy=u)},null,8,["modelValue"])]),_:1})]),n("div",eh,[b(U,{fullwidth:!0,title:"Preistabelle anzeigen",icon:"fa-car",infotext:"Zeige die Strompreistabelle in einer separaten Box an"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).showPrices,"onUpdate:modelValue":d[18]||(d[18]=u=>l(m).showPrices=u)},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Untere Markierung in der Preistabelle",icon:"fa-car",infotext:"Position der unteren Markierung festlegen"},{default:_(()=>[b(we,{id:"lowerPriceBound",modelValue:l(m).lowerPriceBound,"onUpdate:modelValue":d[19]||(d[19]=u=>l(m).lowerPriceBound=u),min:-25,max:95,step:.1,decimals:1,unit:"ct"},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"Obere Markierung in der Preistabelle",icon:"fa-car",infotext:"Position der oberen Markierung festlegen"},{default:_(()=>[b(we,{id:"upperPriceBound",modelValue:l(m).upperPriceBound,"onUpdate:modelValue":d[20]||(d[20]=u=>l(m).upperPriceBound=u),min:-25,max:95,step:.1,decimals:1,unit:"ct"},null,8,["modelValue"])]),_:1}),b(U,{fullwidth:!0,title:"IFrame-Support für Einstellungen (Experimentell)",icon:"fa-gear",infotext:"Erlaubt das Lesen der Einstellungen, wenn das UI in andere Applikationen eingebettet ist (z.B. HomeAssistant). Erfordert eine mit SSL verschlüsselte Verbindung über HTTPS! Experimentelles Feature."},{"inline-item":_(()=>[b(ce,{modelValue:l(m).sslPrefs,"onUpdate:modelValue":d[21]||(d[21]=u=>l(m).sslPrefs=u)},null,8,["modelValue"])]),_:1}),d[25]||(d[25]=n("hr",null,null,-1)),b(U,{fullwidth:!0,title:"Debug-Modus",icon:"fa-bug-slash",infotext:"Kontrollausgaben in der Console sowie Anzeige von Bildschirmbreite und MQ-Viewer"},{"inline-item":_(()=>[b(ce,{modelValue:l(m).debug,"onUpdate:modelValue":d[22]||(d[22]=u=>l(m).debug=u)},null,8,["modelValue"])]),_:1}),d[26]||(d[26]=n("hr",null,null,-1))]),d[27]||(d[27]=n("div",{class:"grid-col-12 mb-3 me-3"},[n("button",{class:"btn btn-sm btn-secondary float-end","data-bs-toggle":"collapse","data-bs-target":"#themesettings"}," Schließen ")],-1))])]),_:1}))}}),ah=j(th,[["__scopeId","data-v-785bc80b"]]),nh={class:"container-fluid px-2 m-0 theme-colors"},rh={id:"themesettings",class:"collapse"},oh={class:"row py-0 px-0 m-0"},sh={key:1,class:"row py-0 m-0 d-flex justify-content-center"},lh={key:2,class:"nav nav-tabs nav-justified mx-1 mt-2",role:"tablist"},ih={key:0,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pricecharttabbed"},ch={key:1,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#vehiclelist"},uh={key:2,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#batterylist"},dh={key:3,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#smarthomelist"},hh={key:4,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#counterlist"},ph={key:5,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#inverterlist"},gh={key:3,id:"cpContent",class:"tab-content mx-0 pt-1"},mh={id:"showAll",class:"tab-pane active",role:"tabpanel","aria-labelledby":"showall-tab"},fh={class:"row py-0 m-0 d-flex justify-content-center"},vh={id:"chargepointlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"chargepoint-tab"},bh={class:"row py-0 m-0 d-flex justify-content-center"},yh={id:"vehiclelist",class:"tab-pane",role:"tabpanel","aria-labelledby":"vehicle-tab"},_h={key:0,class:"row py-0 m-0 d-flex justify-content-center"},wh={id:"batterylist",class:"tab-pane",role:"tabpanel","aria-labelledby":"battery-tab"},kh={class:"row py-0 m-0 d-flex justify-content-center"},xh={id:"smarthomelist",class:"tab-pane",role:"tabpanel","aria-labelledby":"smarthome-tab"},Sh={key:0,class:"row py-0 m-0 d-flex justify-content-center"},$h={id:"counterlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"counter-tab"},Mh={key:0,class:"row py-0 m-0 d-flex justify-content-center"},Ph={id:"inverterlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"inverter-tab"},Ch={key:0,class:"row py-0 m-0 d-flex justify-content-center"},Ih={id:"pricecharttabbed",class:"tab-pane",role:"tabpanel","aria-labelledby":"price-tab"},Bh={key:0,class:"row py-0 m-0 d-flex justify-content-center"},Vh={key:0,class:"row p-2 mt-5"},Lh={class:"col p-2"},Th={class:"d-flex justify-content-between"},Oh={class:"mx-4"},Ah={key:0},Eh=B({__name:"ColorsTheme",setup(a){const e=Y(!1),t=g(()=>[...ne.values()].filter(p=>p.configured).length>0);function o(){Va()}function s(){e.value=!e.value}Oe(()=>{o(),window.addEventListener("resize",On),window.addEventListener("focus",r),Md()});function r(){document.hasFocus()&&ve(!0)}return(p,h)=>(i(),f(W,null,[n("div",nh,[n("div",rh,[b(ah,{onResetArcs:l(zn)},null,8,["onResetArcs"])]),l(m).showButtonBar?(i(),$(mu,{key:0})):w("",!0),n("div",oh,[b(ad,null,sn({item1:_(()=>[b(Pr)]),item2:_(()=>[b(To)]),_:2},[l(m).alternativeEnergy?{name:"item3",fn:_(()=>[b(Cs)]),key:"0"}:{name:"item3",fn:_(()=>[b(rs)]),key:"1"}]),1024)]),l(m).showQuickAccess?w("",!0):(i(),f("div",sh,[b(At,{id:"1",compact:l(m).shortCpList=="always"},null,8,["compact"]),l(m).showPrices?(i(),$(jt,{key:0,id:"NoTabs"})):w("",!0),l(m).showVehicles?(i(),$(Wt,{key:1})):w("",!0),b(Et),t.value?(i(),$(zt,{key:2})):w("",!0),l(m).showCounters?(i(),$(Dt,{key:3})):w("",!0),l(m).showInverters?(i(),$(Ut,{key:4})):w("",!0)])),l(m).showQuickAccess?(i(),f("nav",lh,[h[6]||(h[6]=ln('AllesLadepunkte',2)),l(m).showPrices?(i(),f("a",ih,h[0]||(h[0]=[n("i",{class:"fa-solid fa-lg fa-coins"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Strompreis",-1)]))):w("",!0),l(m).showVehicles?(i(),f("a",ch,h[1]||(h[1]=[n("i",{class:"fa-solid fa-lg fa-car"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Fahrzeuge",-1)]))):w("",!0),l(he).isBatteryConfigured?(i(),f("a",uh,h[2]||(h[2]=[n("i",{class:"fa-solid fa-lg fa-car-battery"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Speicher",-1)]))):w("",!0),t.value?(i(),f("a",dh,h[3]||(h[3]=[n("i",{class:"fa-solid fa-lg fa-plug"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Smart Home",-1)]))):w("",!0),l(m).showCounters?(i(),f("a",hh,h[4]||(h[4]=[n("i",{class:"fa-solid fa-lg fa-bolt"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Zähler",-1)]))):w("",!0),l(m).showInverters?(i(),f("a",ph,h[5]||(h[5]=[n("i",{class:"fa-solid fa-lg fa-solar-panel"},null,-1),n("span",{class:"d-none d-md-inline ms-2"},"Wechselrichter",-1)]))):w("",!0)])):w("",!0),l(m).showQuickAccess?(i(),f("div",gh,[n("div",mh,[n("div",fh,[b(At,{id:"2",compact:l(m).shortCpList!="no"},null,8,["compact"]),l(m).showPrices?(i(),$(jt,{key:0,id:"Overview"})):w("",!0),l(m).showVehicles?(i(),$(Wt,{key:1})):w("",!0),b(Et),t.value?(i(),$(zt,{key:2})):w("",!0),l(m).showCounters?(i(),$(Dt,{key:3})):w("",!0),l(m).showInverters?(i(),$(Ut,{key:4})):w("",!0)])]),n("div",vh,[n("div",bh,[b(At,{id:"3",compact:l(m).shortCpList=="always"},null,8,["compact"])])]),n("div",yh,[l(m).showVehicles?(i(),f("div",_h,[b(Wt)])):w("",!0)]),n("div",wh,[n("div",kh,[b(Et)])]),n("div",xh,[t.value?(i(),f("div",Sh,[b(zt)])):w("",!0)]),n("div",$h,[l(m).showCounters?(i(),f("div",Mh,[b(Dt)])):w("",!0)]),n("div",Ph,[l(m).showInverters?(i(),f("div",Ch,[b(Ut)])):w("",!0)]),n("div",Ih,[l(m).showPrices?(i(),f("div",Bh,[b(jt,{id:"Tabbed"})])):w("",!0)])])):w("",!0)]),l(m).debug?(i(),f("div",Vh,[n("div",Lh,[h[7]||(h[7]=n("hr",null,null,-1)),n("div",Th,[n("p",Oh,"Screen Width: "+x(l($t).x),1),n("button",{class:"btn btn-sm btn-secondary mx-4",onClick:s}," MQ Viewer ")]),e.value?(i(),f("hr",Ah)):w("",!0),e.value?(i(),$(Jd,{key:1})):w("",!0)])])):w("",!0)],64))}}),zh=j(Eh,[["__scopeId","data-v-0542a138"]]),Dh={class:"navbar navbar-expand-lg px-0 mb-0"},Wh={key:0,class:"position-absolute-50 navbar-text ms-4 navbar-time",style:{color:"var(--color-menu)"}},Gh=B({__name:"NavigationBar",setup(a){let e;const t=g(()=>m.fluidDisplay?"container-fluid":"container-lg");return Oe(()=>{e=setInterval(()=>{Ht.value=new Date},1e3)}),cn(()=>{clearInterval(e)}),(o,s)=>(i(),f(W,null,[n("nav",Dh,[n("div",{class:H(t.value)},[s[0]||(s[0]=n("a",{href:"/",class:"navbar-brand"},[n("span",null,"openWB")],-1)),l(m).showClock=="navbar"?(i(),f("span",Wh,x(l(Oa)(l(Ht))),1)):w("",!0),s[1]||(s[1]=n("button",{class:"navbar-toggler togglebutton ps-5",type:"button","data-bs-toggle":"collapse","data-bs-target":"#mainNavbar","aria-controls":"mainNavbar","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"fa-solid fa-ellipsis-vertical"})],-1)),s[2]||(s[2]=n("div",{id:"mainNavbar",class:"collapse navbar-collapse justify-content-end"},[n("div",{class:"nav navbar-nav"},[n("a",{id:"navStatus",class:"nav-link",href:"../../settings/#/Status"},"Status"),n("div",{class:"nav-item dropdown"},[n("a",{id:"loggingDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[R("Auswertungen "),n("i",{class:"fa-solid fa-caret-down"})]),n("div",{class:"dropdown-menu","aria-labelledby":"loggingDropdown"},[n("a",{href:"../../settings/#/Logging/ChargeLog",class:"dropdown-item"},"Ladeprotokoll"),n("a",{href:"../../settings/#/Logging/Chart",class:"dropdown-item"},"Diagramme")])]),n("div",{class:"nav-item dropdown"},[n("a",{id:"settingsDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[R("Einstellungen "),n("span",{class:"fa-solid fa-caret-down"})]),n("div",{class:"dropdown-menu","aria-labelledby":"settingsDropdown"},[n("a",{id:"navSettings",class:"nav-link",href:"../../settings/index.html"},"openWB"),n("a",{class:"nav-link","data-bs-toggle":"collapse","data-bs-target":"#themesettings","aria-expanded":"false","aria-controls":"themeSettings"},[n("span",null,[R("Look&Feel"),n("span",{class:"fa-solid fa-caret-down"})])])])])])],-1))],2)]),n("div",{class:H(t.value)},s[3]||(s[3]=[n("hr",{class:"m-0 p-0 mb-2"},null,-1)]),2)],64))}}),jh=j(Gh,[["__scopeId","data-v-ed619966"]]),Uh={id:"app",class:"m-0 p-0"},Fh={class:"row p-0 m-0"},Nh={class:"col-12 p-0 m-0"},Hh=B({__name:"App",setup(a){const e=g(()=>m.fluidDisplay?"container-fluid":"container-lg");return(t,o)=>(i(),f("div",Uh,[b(jh),n("div",{class:H(["p-0",e.value])},[n("div",Fh,[n("div",Nh,[b(zh)])])],2)]))}}),Rh=un(Hh);dn();Rh.mount("#app"); diff --git a/packages/modules/web_themes/colors/web/assets/vendor-DgMVsSab.js b/packages/modules/web_themes/colors/web/assets/vendor-DgMVsSab.js deleted file mode 100644 index 3294f08523..0000000000 --- a/packages/modules/web_themes/colors/web/assets/vendor-DgMVsSab.js +++ /dev/null @@ -1,62 +0,0 @@ -var JE=Object.defineProperty;var qp=t=>{throw TypeError(t)};var ZE=(t,e,r)=>e in t?JE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var nt=(t,e,r)=>ZE(t,typeof e!="symbol"?e+"":e,r),Au=(t,e,r)=>e.has(t)||qp("Cannot "+r);var ge=(t,e,r)=>(Au(t,e,"read from private field"),r?r.call(t):e.get(t)),Ue=(t,e,r)=>e.has(t)?qp("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Ne=(t,e,r,n)=>(Au(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Re=(t,e,r)=>(Au(t,e,"access private method"),r);var ea=(t,e,r,n)=>({set _(s){Ne(t,e,s,r)},get _(){return ge(t,e,n)}});const Si=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};/** -* @vue/shared v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function wh(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const Ge={},is=[],Pr=()=>{},eS=()=>!1,Fl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),_h=t=>t.startsWith("onUpdate:"),Mt=Object.assign,vh=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},tS=Object.prototype.hasOwnProperty,He=(t,e)=>tS.call(t,e),De=Array.isArray,ss=t=>Fo(t)==="[object Map]",Is=t=>Fo(t)==="[object Set]",Yp=t=>Fo(t)==="[object Date]",Be=t=>typeof t=="function",lt=t=>typeof t=="string",_r=t=>typeof t=="symbol",Qe=t=>t!==null&&typeof t=="object",Uy=t=>(Qe(t)||Be(t))&&Be(t.then)&&Be(t.catch),jy=Object.prototype.toString,Fo=t=>jy.call(t),rS=t=>Fo(t).slice(8,-1),Wy=t=>Fo(t)==="[object Object]",Eh=t=>lt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,go=wh(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ul=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},nS=/-(\w)/g,lr=Ul(t=>t.replace(nS,(e,r)=>r?r.toUpperCase():"")),iS=/\B([A-Z])/g,Oi=Ul(t=>t.replace(iS,"-$1").toLowerCase()),jl=Ul(t=>t.charAt(0).toUpperCase()+t.slice(1)),Cu=Ul(t=>t?`on${jl(t)}`:""),Ln=(t,e)=>!Object.is(t,e),ka=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},ol=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Gp;const Wl=()=>Gp||(Gp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Si<"u"?Si:{});function Sh(t){if(De(t)){const e={};for(let r=0;r{if(r){const n=r.split(oS);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function Th(t){let e="";if(lt(t))e=t;else if(De(t))for(let r=0;rUo(r,e))}const Vy=t=>!!(t&&t.__v_isRef===!0),dS=t=>lt(t)?t:t==null?"":De(t)||Qe(t)&&(t.toString===jy||!Be(t.toString))?Vy(t)?dS(t.value):JSON.stringify(t,qy,2):String(t),qy=(t,e)=>Vy(e)?qy(t,e.value):ss(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,s],i)=>(r[Iu(n,i)+" =>"]=s,r),{})}:Is(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>Iu(r))}:_r(e)?Iu(e):Qe(e)&&!De(e)&&!Wy(e)?String(e):e,Iu=(t,e="")=>{var r;return _r(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** -* @vue/reactivity v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let zt;class hS{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=zt,!e&&zt&&(this.index=(zt.scopes||(zt.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,r;if(this.scopes)for(e=0,r=this.scopes.length;e0)return;if(bo){let e=bo;for(bo=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;mo;){let e=mo;for(mo=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function Xy(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Qy(t){let e,r=t.depsTail,n=r;for(;n;){const s=n.prevDep;n.version===-1?(n===r&&(r=s),Ih(n),gS(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}t.deps=e,t.depsTail=r}function cf(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Jy(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Jy(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Ao))return;t.globalVersion=Ao;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!cf(t)){t.flags&=-3;return}const r=Xe,n=yr;Xe=t,yr=!0;try{Xy(t);const s=t.fn(t._value);(e.version===0||Ln(s,t._value))&&(t._value=s,e.version++)}catch(s){throw e.version++,s}finally{Xe=r,yr=n,Qy(t),t.flags&=-3}}function Ih(t,e=!1){const{dep:r,prevSub:n,nextSub:s}=t;if(n&&(n.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let i=r.computed.deps;i;i=i.nextDep)Ih(i,!0)}!e&&!--r.sc&&r.map&&r.map.delete(r.key)}function gS(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let yr=!0;const Zy=[];function Fn(){Zy.push(yr),yr=!1}function Un(){const t=Zy.pop();yr=t===void 0?!0:t}function Kp(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Xe;Xe=void 0;try{e()}finally{Xe=r}}}let Ao=0;class mS{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Mh{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!Xe||!yr||Xe===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Xe)r=this.activeLink=new mS(Xe,this),Xe.deps?(r.prevDep=Xe.depsTail,Xe.depsTail.nextDep=r,Xe.depsTail=r):Xe.deps=Xe.depsTail=r,ew(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Xe.depsTail,r.nextDep=void 0,Xe.depsTail.nextDep=r,Xe.depsTail=r,Xe.deps===r&&(Xe.deps=n)}return r}trigger(e){this.version++,Ao++,this.notify(e)}notify(e){Ah();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{Ch()}}}function ew(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)ew(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const ff=new WeakMap,mi=Symbol(""),df=Symbol(""),Co=Symbol("");function xt(t,e,r){if(yr&&Xe){let n=ff.get(t);n||ff.set(t,n=new Map);let s=n.get(r);s||(n.set(r,s=new Mh),s.map=n,s.key=r),s.track()}}function Gr(t,e,r,n,s,i){const a=ff.get(t);if(!a){Ao++;return}const o=l=>{l&&l.trigger()};if(Ah(),e==="clear")a.forEach(o);else{const l=De(t),u=l&&Eh(r);if(l&&r==="length"){const c=Number(n);a.forEach((f,d)=>{(d==="length"||d===Co||!_r(d)&&d>=c)&&o(f)})}else switch((r!==void 0||a.has(void 0))&&o(a.get(r)),u&&o(a.get(Co)),e){case"add":l?u&&o(a.get("length")):(o(a.get(mi)),ss(t)&&o(a.get(df)));break;case"delete":l||(o(a.get(mi)),ss(t)&&o(a.get(df)));break;case"set":ss(t)&&o(a.get(mi));break}}Ch()}function Hi(t){const e=We(t);return e===t?e:(xt(e,"iterate",Co),or(t)?e:e.map(At))}function Hl(t){return xt(t=We(t),"iterate",Co),t}const bS={__proto__:null,[Symbol.iterator](){return Ou(this,Symbol.iterator,At)},concat(...t){return Hi(this).concat(...t.map(e=>De(e)?Hi(e):e))},entries(){return Ou(this,"entries",t=>(t[1]=At(t[1]),t))},every(t,e){return Fr(this,"every",t,e,void 0,arguments)},filter(t,e){return Fr(this,"filter",t,e,r=>r.map(At),arguments)},find(t,e){return Fr(this,"find",t,e,At,arguments)},findIndex(t,e){return Fr(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Fr(this,"findLast",t,e,At,arguments)},findLastIndex(t,e){return Fr(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Fr(this,"forEach",t,e,void 0,arguments)},includes(...t){return Pu(this,"includes",t)},indexOf(...t){return Pu(this,"indexOf",t)},join(t){return Hi(this).join(t)},lastIndexOf(...t){return Pu(this,"lastIndexOf",t)},map(t,e){return Fr(this,"map",t,e,void 0,arguments)},pop(){return js(this,"pop")},push(...t){return js(this,"push",t)},reduce(t,...e){return Xp(this,"reduce",t,e)},reduceRight(t,...e){return Xp(this,"reduceRight",t,e)},shift(){return js(this,"shift")},some(t,e){return Fr(this,"some",t,e,void 0,arguments)},splice(...t){return js(this,"splice",t)},toReversed(){return Hi(this).toReversed()},toSorted(t){return Hi(this).toSorted(t)},toSpliced(...t){return Hi(this).toSpliced(...t)},unshift(...t){return js(this,"unshift",t)},values(){return Ou(this,"values",At)}};function Ou(t,e,r){const n=Hl(t),s=n[e]();return n!==t&&!or(t)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=r(i.value)),i}),s}const yS=Array.prototype;function Fr(t,e,r,n,s,i){const a=Hl(t),o=a!==t&&!or(t),l=a[e];if(l!==yS[e]){const f=l.apply(t,i);return o?At(f):f}let u=r;a!==t&&(o?u=function(f,d){return r.call(this,At(f),d,t)}:r.length>2&&(u=function(f,d){return r.call(this,f,d,t)}));const c=l.call(a,u,n);return o&&s?s(c):c}function Xp(t,e,r,n){const s=Hl(t);let i=r;return s!==t&&(or(t)?r.length>3&&(i=function(a,o,l){return r.call(this,a,o,l,t)}):i=function(a,o,l){return r.call(this,a,At(o),l,t)}),s[e](i,...n)}function Pu(t,e,r){const n=We(t);xt(n,"iterate",Co);const s=n[e](...r);return(s===-1||s===!1)&&Rh(r[0])?(r[0]=We(r[0]),n[e](...r)):s}function js(t,e,r=[]){Fn(),Ah();const n=We(t)[e].apply(t,r);return Ch(),Un(),n}const wS=wh("__proto__,__v_isRef,__isVue"),tw=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(_r));function _S(t){_r(t)||(t=String(t));const e=We(this);return xt(e,"has",t),e.hasOwnProperty(t)}class rw{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){if(r==="__v_skip")return e.__v_skip;const s=this._isReadonly,i=this._isShallow;if(r==="__v_isReactive")return!s;if(r==="__v_isReadonly")return s;if(r==="__v_isShallow")return i;if(r==="__v_raw")return n===(s?i?OS:ow:i?sw:iw).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const a=De(e);if(!s){let l;if(a&&(l=bS[r]))return l;if(r==="hasOwnProperty")return _S}const o=Reflect.get(e,r,It(e)?e:n);return(_r(r)?tw.has(r):wS(r))||(s||xt(e,"get",r),i)?o:It(o)?a&&Eh(r)?o:o.value:Qe(o)?s?aw(o):Ph(o):o}}class nw extends rw{constructor(e=!1){super(!1,e)}set(e,r,n,s){let i=e[r];if(!this._isShallow){const l=Ti(i);if(!or(n)&&!Ti(n)&&(i=We(i),n=We(n)),!De(e)&&It(i)&&!It(n))return l?!1:(i.value=n,!0)}const a=De(e)&&Eh(r)?Number(r)t,ta=t=>Reflect.getPrototypeOf(t);function xS(t,e,r){return function(...n){const s=this.__v_raw,i=We(s),a=ss(i),o=t==="entries"||t===Symbol.iterator&&a,l=t==="keys"&&a,u=s[t](...n),c=r?hf:e?pf:At;return!e&&xt(i,"iterate",l?df:mi),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:o?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function ra(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function AS(t,e){const r={get(s){const i=this.__v_raw,a=We(i),o=We(s);t||(Ln(s,o)&&xt(a,"get",s),xt(a,"get",o));const{has:l}=ta(a),u=e?hf:t?pf:At;if(l.call(a,s))return u(i.get(s));if(l.call(a,o))return u(i.get(o));i!==a&&i.get(s)},get size(){const s=this.__v_raw;return!t&&xt(We(s),"iterate",mi),Reflect.get(s,"size",s)},has(s){const i=this.__v_raw,a=We(i),o=We(s);return t||(Ln(s,o)&&xt(a,"has",s),xt(a,"has",o)),s===o?i.has(s):i.has(s)||i.has(o)},forEach(s,i){const a=this,o=a.__v_raw,l=We(o),u=e?hf:t?pf:At;return!t&&xt(l,"iterate",mi),o.forEach((c,f)=>s.call(i,u(c),u(f),a))}};return Mt(r,t?{add:ra("add"),set:ra("set"),delete:ra("delete"),clear:ra("clear")}:{add(s){!e&&!or(s)&&!Ti(s)&&(s=We(s));const i=We(this);return ta(i).has.call(i,s)||(i.add(s),Gr(i,"add",s,s)),this},set(s,i){!e&&!or(i)&&!Ti(i)&&(i=We(i));const a=We(this),{has:o,get:l}=ta(a);let u=o.call(a,s);u||(s=We(s),u=o.call(a,s));const c=l.call(a,s);return a.set(s,i),u?Ln(i,c)&&Gr(a,"set",s,i):Gr(a,"add",s,i),this},delete(s){const i=We(this),{has:a,get:o}=ta(i);let l=a.call(i,s);l||(s=We(s),l=a.call(i,s)),o&&o.call(i,s);const u=i.delete(s);return l&&Gr(i,"delete",s,void 0),u},clear(){const s=We(this),i=s.size!==0,a=s.clear();return i&&Gr(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{r[s]=xS(s,t,e)}),r}function Oh(t,e){const r=AS(t,e);return(n,s,i)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?n:Reflect.get(He(r,s)&&s in n?r:n,s,i)}const CS={get:Oh(!1,!1)},IS={get:Oh(!1,!0)},MS={get:Oh(!0,!1)};const iw=new WeakMap,sw=new WeakMap,ow=new WeakMap,OS=new WeakMap;function PS(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kS(t){return t.__v_skip||!Object.isExtensible(t)?0:PS(rS(t))}function Ph(t){return Ti(t)?t:kh(t,!1,ES,CS,iw)}function RS(t){return kh(t,!1,TS,IS,sw)}function aw(t){return kh(t,!0,SS,MS,ow)}function kh(t,e,r,n,s){if(!Qe(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const i=s.get(t);if(i)return i;const a=kS(t);if(a===0)return t;const o=new Proxy(t,a===2?n:r);return s.set(t,o),o}function os(t){return Ti(t)?os(t.__v_raw):!!(t&&t.__v_isReactive)}function Ti(t){return!!(t&&t.__v_isReadonly)}function or(t){return!!(t&&t.__v_isShallow)}function Rh(t){return t?!!t.__v_raw:!1}function We(t){const e=t&&t.__v_raw;return e?We(e):t}function LS(t){return!He(t,"__v_skip")&&Object.isExtensible(t)&&Hy(t,"__v_skip",!0),t}const At=t=>Qe(t)?Ph(t):t,pf=t=>Qe(t)?aw(t):t;function It(t){return t?t.__v_isRef===!0:!1}function sF(t){return NS(t,!1)}function NS(t,e){return It(t)?t:new DS(t,e)}class DS{constructor(e,r){this.dep=new Mh,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:We(e),this._value=r?e:At(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||or(e)||Ti(e);e=n?e:We(e),Ln(e,r)&&(this._rawValue=e,this._value=n?e:At(e),this.dep.trigger())}}function BS(t){return It(t)?t.value:t}const $S={get:(t,e,r)=>e==="__v_raw"?t:BS(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const s=t[e];return It(s)&&!It(r)?(s.value=r,!0):Reflect.set(t,e,r,n)}};function lw(t){return os(t)?t:new Proxy(t,$S)}class FS{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new Mh(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ao-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Xe!==this)return Ky(this,!0),!0}get value(){const e=this.dep.track();return Jy(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function US(t,e,r=!1){let n,s;return Be(t)?n=t:(n=t.get,s=t.set),new FS(n,s,r)}const na={},al=new WeakMap;let ii;function jS(t,e=!1,r=ii){if(r){let n=al.get(r);n||al.set(r,n=[]),n.push(t)}}function WS(t,e,r=Ge){const{immediate:n,deep:s,once:i,scheduler:a,augmentJob:o,call:l}=r,u=T=>s?T:or(T)||s===!1||s===0?Kr(T,1):Kr(T);let c,f,d,p,m=!1,b=!1;if(It(t)?(f=()=>t.value,m=or(t)):os(t)?(f=()=>u(t),m=!0):De(t)?(b=!0,m=t.some(T=>os(T)||or(T)),f=()=>t.map(T=>{if(It(T))return T.value;if(os(T))return u(T);if(Be(T))return l?l(T,2):T()})):Be(t)?e?f=l?()=>l(t,2):t:f=()=>{if(d){Fn();try{d()}finally{Un()}}const T=ii;ii=c;try{return l?l(t,3,[p]):t(p)}finally{ii=T}}:f=Pr,e&&s){const T=f,x=s===!0?1/0:s;f=()=>Kr(T(),x)}const v=pS(),_=()=>{c.stop(),v&&v.active&&vh(v.effects,c)};if(i&&e){const T=e;e=(...x)=>{T(...x),_()}}let E=b?new Array(t.length).fill(na):na;const y=T=>{if(!(!(c.flags&1)||!c.dirty&&!T))if(e){const x=c.run();if(s||m||(b?x.some((A,P)=>Ln(A,E[P])):Ln(x,E))){d&&d();const A=ii;ii=c;try{const P=[x,E===na?void 0:b&&E[0]===na?[]:E,p];l?l(e,3,P):e(...P),E=x}finally{ii=A}}}else c.run()};return o&&o(y),c=new Yy(f),c.scheduler=a?()=>a(y,!1):y,p=T=>jS(T,!1,c),d=c.onStop=()=>{const T=al.get(c);if(T){if(l)l(T,4);else for(const x of T)x();al.delete(c)}},e?n?y(!0):E=c.run():a?a(y.bind(null,!0),!0):c.run(),_.pause=c.pause.bind(c),_.resume=c.resume.bind(c),_.stop=_,_}function Kr(t,e=1/0,r){if(e<=0||!Qe(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),e--,It(t))Kr(t.value,e,r);else if(De(t))for(let n=0;n{Kr(n,e,r)});else if(Wy(t)){for(const n in t)Kr(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&Kr(t[n],e,r)}return t}/** -* @vue/runtime-core v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function jo(t,e,r,n){try{return n?t(...n):t()}catch(s){zl(s,e,r)}}function Nr(t,e,r,n){if(Be(t)){const s=jo(t,e,r,n);return s&&Uy(s)&&s.catch(i=>{zl(i,e,r)}),s}if(De(t)){const s=[];for(let i=0;i>>1,s=kt[n],i=Io(s);i=Io(r)?kt.push(t):kt.splice(zS(e),0,t),t.flags|=1,fw()}}function fw(){ll||(ll=uw.then(hw))}function VS(t){De(t)?as.push(...t):On&&t.id===-1?On.splice(Gi+1,0,t):t.flags&1||(as.push(t),t.flags|=1),fw()}function Qp(t,e,r=Cr+1){for(;rIo(r)-Io(n));if(as.length=0,On){On.push(...e);return}for(On=e,Gi=0;Git.id==null?t.flags&2?-1:1/0:t.id;function hw(t){try{for(Cr=0;Cr{n._d&&cg(-1);const i=ul(e);let a;try{a=t(...s)}finally{ul(i),n._d&&cg(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function oF(t,e){if(bt===null)return t;const r=Gl(bt),n=t.dirs||(t.dirs=[]);for(let s=0;st.__isTeleport,yo=t=>t&&(t.disabled||t.disabled===""),Jp=t=>t&&(t.defer||t.defer===""),Zp=t=>typeof SVGElement<"u"&&t instanceof SVGElement,eg=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,gf=(t,e)=>{const r=t&&t.to;return lt(r)?e?e(r):null:r},mw={name:"Teleport",__isTeleport:!0,process(t,e,r,n,s,i,a,o,l,u){const{mc:c,pc:f,pbc:d,o:{insert:p,querySelector:m,createText:b,createComment:v}}=u,_=yo(e.props);let{shapeFlag:E,children:y,dynamicChildren:T}=e;if(t==null){const x=e.el=b(""),A=e.anchor=b("");p(x,r,n),p(A,r,n);const P=(W,U)=>{E&16&&(s&&s.isCE&&(s.ce._teleportTarget=W),c(y,W,U,s,i,a,o,l))},L=()=>{const W=e.target=gf(e.props,m),U=bw(W,e,b,p);W&&(a!=="svg"&&Zp(W)?a="svg":a!=="mathml"&&eg(W)&&(a="mathml"),_||(P(W,U),Ra(e,!1)))};_&&(P(r,A),Ra(e,!0)),Jp(e.props)?Pt(()=>{L(),e.el.__isMounted=!0},i):L()}else{if(Jp(e.props)&&!t.el.__isMounted){Pt(()=>{mw.process(t,e,r,n,s,i,a,o,l,u),delete t.el.__isMounted},i);return}e.el=t.el,e.targetStart=t.targetStart;const x=e.anchor=t.anchor,A=e.target=t.target,P=e.targetAnchor=t.targetAnchor,L=yo(t.props),W=L?r:A,U=L?x:P;if(a==="svg"||Zp(A)?a="svg":(a==="mathml"||eg(A))&&(a="mathml"),T?(d(t.dynamicChildren,T,W,s,i,a,o),Bh(t,e,!0)):l||f(t,e,W,U,s,i,a,o,!1),_)L?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):ia(e,r,x,u,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const H=e.target=gf(e.props,m);H&&ia(e,H,null,u,0)}else L&&ia(e,A,P,u,1);Ra(e,_)}},remove(t,e,r,{um:n,o:{remove:s}},i){const{shapeFlag:a,children:o,anchor:l,targetStart:u,targetAnchor:c,target:f,props:d}=t;if(f&&(s(u),s(c)),i&&s(l),a&16){const p=i||!yo(d);for(let m=0;mcl(m,e&&(De(e)?e[b]:e),r,n,s));return}if(ls(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&cl(t,e,r,n.component.subTree);return}const i=n.shapeFlag&4?Gl(n.component):n.el,a=s?null:i,{i:o,r:l}=t,u=e&&e.r,c=o.refs===Ge?o.refs={}:o.refs,f=o.setupState,d=We(f),p=f===Ge?()=>!1:m=>He(d,m);if(u!=null&&u!==l&&(lt(u)?(c[u]=null,p(u)&&(f[u]=null)):It(u)&&(u.value=null)),Be(l))jo(l,o,12,[a,c]);else{const m=lt(l),b=It(l);if(m||b){const v=()=>{if(t.f){const _=m?p(l)?f[l]:c[l]:l.value;s?De(_)&&vh(_,i):De(_)?_.includes(i)||_.push(i):m?(c[l]=[i],p(l)&&(f[l]=c[l])):(l.value=[i],t.k&&(c[t.k]=l.value))}else m?(c[l]=a,p(l)&&(f[l]=a)):b&&(l.value=a,t.k&&(c[t.k]=a))};a?(v.id=-1,Pt(v,r)):v()}}}Wl().requestIdleCallback;Wl().cancelIdleCallback;const ls=t=>!!t.type.__asyncLoader,ww=t=>t.type.__isKeepAlive;function KS(t,e){_w(t,"a",e)}function XS(t,e){_w(t,"da",e)}function _w(t,e,r=Ct){const n=t.__wdc||(t.__wdc=()=>{let s=r;for(;s;){if(s.isDeactivated)return;s=s.parent}return t()});if(Vl(e,n,r),r){let s=r.parent;for(;s&&s.parent;)ww(s.parent.vnode)&&QS(n,e,r,s),s=s.parent}}function QS(t,e,r,n){const s=Vl(e,t,n,!0);vw(()=>{vh(n[e],s)},r)}function Vl(t,e,r=Ct,n=!1){if(r){const s=r[t]||(r[t]=[]),i=e.__weh||(e.__weh=(...a)=>{Fn();const o=Wo(r),l=Nr(e,r,t,a);return o(),Un(),l});return n?s.unshift(i):s.push(i),i}}const mn=t=>(e,r=Ct)=>{(!Oo||t==="sp")&&Vl(t,(...n)=>e(...n),r)},JS=mn("bm"),ZS=mn("m"),e1=mn("bu"),t1=mn("u"),r1=mn("bum"),vw=mn("um"),n1=mn("sp"),i1=mn("rtg"),s1=mn("rtc");function o1(t,e=Ct){Vl("ec",t,e)}const a1="components";function uF(t,e){return u1(a1,t,!0,e)||t}const l1=Symbol.for("v-ndc");function u1(t,e,r=!0,n=!1){const s=bt||Ct;if(s){const i=s.type;{const o=Q1(i,!1);if(o&&(o===e||o===lr(e)||o===jl(lr(e))))return i}const a=tg(s[t]||i[t],e)||tg(s.appContext[t],e);return!a&&n?i:a}}function tg(t,e){return t&&(t[e]||t[lr(e)]||t[jl(lr(e))])}function cF(t,e,r,n){let s;const i=r,a=De(t);if(a||lt(t)){const o=a&&os(t);let l=!1;o&&(l=!or(t),t=Hl(t)),s=new Array(t.length);for(let u=0,c=t.length;ue(o,l,void 0,i));else{const o=Object.keys(t);s=new Array(o.length);for(let l=0,u=o.length;l{const i=n.fn(...s);return i&&(i.key=n.key),i}:n.fn)}return t}function dF(t,e,r={},n,s){if(bt.ce||bt.parent&&ls(bt.parent)&&bt.parent.ce)return e!=="default"&&(r.name=e),_f(),vf(nr,null,[wr("slot",r,n&&n())],64);let i=t[e];i&&i._c&&(i._d=!1),_f();const a=i&&Ew(i(r)),o=r.key||a&&a.key,l=vf(nr,{key:(o&&!_r(o)?o:`_${e}`)+(!a&&n?"_fb":"")},a||(n?n():[]),a&&t._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function Ew(t){return t.some(e=>Fh(e)?!(e.type===Nn||e.type===nr&&!Ew(e.children)):!0)?t:null}const mf=t=>t?Ww(t)?Gl(t):mf(t.parent):null,wo=Mt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>mf(t.parent),$root:t=>mf(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Tw(t),$forceUpdate:t=>t.f||(t.f=()=>{Lh(t.update)}),$nextTick:t=>t.n||(t.n=cw.bind(t.proxy)),$watch:t=>P1.bind(t)}),ku=(t,e)=>t!==Ge&&!t.__isScriptSetup&&He(t,e),c1={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:s,props:i,accessCache:a,type:o,appContext:l}=t;let u;if(e[0]!=="$"){const p=a[e];if(p!==void 0)switch(p){case 1:return n[e];case 2:return s[e];case 4:return r[e];case 3:return i[e]}else{if(ku(n,e))return a[e]=1,n[e];if(s!==Ge&&He(s,e))return a[e]=2,s[e];if((u=t.propsOptions[0])&&He(u,e))return a[e]=3,i[e];if(r!==Ge&&He(r,e))return a[e]=4,r[e];bf&&(a[e]=0)}}const c=wo[e];let f,d;if(c)return e==="$attrs"&&xt(t.attrs,"get",""),c(t);if((f=o.__cssModules)&&(f=f[e]))return f;if(r!==Ge&&He(r,e))return a[e]=4,r[e];if(d=l.config.globalProperties,He(d,e))return d[e]},set({_:t},e,r){const{data:n,setupState:s,ctx:i}=t;return ku(s,e)?(s[e]=r,!0):n!==Ge&&He(n,e)?(n[e]=r,!0):He(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(i[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:s,propsOptions:i}},a){let o;return!!r[a]||t!==Ge&&He(t,a)||ku(e,a)||(o=i[0])&&He(o,a)||He(n,a)||He(wo,a)||He(s.config.globalProperties,a)},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:He(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function rg(t){return De(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let bf=!0;function f1(t){const e=Tw(t),r=t.proxy,n=t.ctx;bf=!1,e.beforeCreate&&ng(e.beforeCreate,t,"bc");const{data:s,computed:i,methods:a,watch:o,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:p,updated:m,activated:b,deactivated:v,beforeDestroy:_,beforeUnmount:E,destroyed:y,unmounted:T,render:x,renderTracked:A,renderTriggered:P,errorCaptured:L,serverPrefetch:W,expose:U,inheritAttrs:H,components:C,directives:I,filters:N}=e;if(u&&d1(u,n,null),a)for(const te in a){const B=a[te];Be(B)&&(n[te]=B.bind(r))}if(s){const te=s.call(r,r);Qe(te)&&(t.data=Ph(te))}if(bf=!0,i)for(const te in i){const B=i[te],ae=Be(B)?B.bind(r,r):Be(B.get)?B.get.bind(r,r):Pr,Y=!Be(B)&&Be(B.set)?B.set.bind(r):Pr,ce=Z1({get:ae,set:Y});Object.defineProperty(n,te,{enumerable:!0,configurable:!0,get:()=>ce.value,set:$=>ce.value=$})}if(o)for(const te in o)Sw(o[te],n,r,te);if(l){const te=Be(l)?l.call(r):l;Reflect.ownKeys(te).forEach(B=>{y1(B,te[B])})}c&&ng(c,t,"c");function ne(te,B){De(B)?B.forEach(ae=>te(ae.bind(r))):B&&te(B.bind(r))}if(ne(JS,f),ne(ZS,d),ne(e1,p),ne(t1,m),ne(KS,b),ne(XS,v),ne(o1,L),ne(s1,A),ne(i1,P),ne(r1,E),ne(vw,T),ne(n1,W),De(U))if(U.length){const te=t.exposed||(t.exposed={});U.forEach(B=>{Object.defineProperty(te,B,{get:()=>r[B],set:ae=>r[B]=ae})})}else t.exposed||(t.exposed={});x&&t.render===Pr&&(t.render=x),H!=null&&(t.inheritAttrs=H),C&&(t.components=C),I&&(t.directives=I),W&&yw(t)}function d1(t,e,r=Pr){De(t)&&(t=yf(t));for(const n in t){const s=t[n];let i;Qe(s)?"default"in s?i=La(s.from||n,s.default,!0):i=La(s.from||n):i=La(s),It(i)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):e[n]=i}}function ng(t,e,r){Nr(De(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function Sw(t,e,r,n){let s=n.includes(".")?Dw(r,n):()=>r[n];if(lt(t)){const i=e[t];Be(i)&&Lu(s,i)}else if(Be(t))Lu(s,t.bind(r));else if(Qe(t))if(De(t))t.forEach(i=>Sw(i,e,r,n));else{const i=Be(t.handler)?t.handler.bind(r):e[t.handler];Be(i)&&Lu(s,i,t)}}function Tw(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=t.appContext,o=i.get(e);let l;return o?l=o:!s.length&&!r&&!n?l=e:(l={},s.length&&s.forEach(u=>fl(l,u,a,!0)),fl(l,e,a)),Qe(e)&&i.set(e,l),l}function fl(t,e,r,n=!1){const{mixins:s,extends:i}=e;i&&fl(t,i,r,!0),s&&s.forEach(a=>fl(t,a,r,!0));for(const a in e)if(!(n&&a==="expose")){const o=h1[a]||r&&r[a];t[a]=o?o(t[a],e[a]):e[a]}return t}const h1={data:ig,props:sg,emits:sg,methods:so,computed:so,beforeCreate:Ot,created:Ot,beforeMount:Ot,mounted:Ot,beforeUpdate:Ot,updated:Ot,beforeDestroy:Ot,beforeUnmount:Ot,destroyed:Ot,unmounted:Ot,activated:Ot,deactivated:Ot,errorCaptured:Ot,serverPrefetch:Ot,components:so,directives:so,watch:g1,provide:ig,inject:p1};function ig(t,e){return e?t?function(){return Mt(Be(t)?t.call(this,this):t,Be(e)?e.call(this,this):e)}:e:t}function p1(t,e){return so(yf(t),yf(e))}function yf(t){if(De(t)){const e={};for(let r=0;r1)return r&&Be(e)?e.call(n&&n.proxy):e}}const Aw={},Cw=()=>Object.create(Aw),Iw=t=>Object.getPrototypeOf(t)===Aw;function w1(t,e,r,n=!1){const s={},i=Cw();t.propsDefaults=Object.create(null),Mw(t,e,s,i);for(const a in t.propsOptions[0])a in s||(s[a]=void 0);r?t.props=n?s:RS(s):t.type.props?t.props=s:t.props=i,t.attrs=i}function _1(t,e,r,n){const{props:s,attrs:i,vnode:{patchFlag:a}}=t,o=We(s),[l]=t.propsOptions;let u=!1;if((n||a>0)&&!(a&16)){if(a&8){const c=t.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,p]=Ow(f,e,!0);Mt(a,d),p&&o.push(...p)};!r&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!i&&!l)return Qe(t)&&n.set(t,is),is;if(De(i))for(let c=0;ct[0]==="_"||t==="$stable",Dh=t=>De(t)?t.map(Ir):[Ir(t)],E1=(t,e,r)=>{if(e._n)return e;const n=qS((...s)=>Dh(e(...s)),r);return n._c=!1,n},kw=(t,e,r)=>{const n=t._ctx;for(const s in t){if(Pw(s))continue;const i=t[s];if(Be(i))e[s]=E1(s,i,n);else if(i!=null){const a=Dh(i);e[s]=()=>a}}},Rw=(t,e)=>{const r=Dh(e);t.slots.default=()=>r},Lw=(t,e,r)=>{for(const n in e)(r||n!=="_")&&(t[n]=e[n])},S1=(t,e,r)=>{const n=t.slots=Cw();if(t.vnode.shapeFlag&32){const s=e._;s?(Lw(n,e,r),r&&Hy(n,"_",s,!0)):kw(e,n)}else e&&Rw(t,e)},T1=(t,e,r)=>{const{vnode:n,slots:s}=t;let i=!0,a=Ge;if(n.shapeFlag&32){const o=e._;o?r&&o===1?i=!1:Lw(s,e,r):(i=!e.$stable,kw(e,s)),a=e}else e&&(Rw(t,e),a={default:1});if(i)for(const o in s)!Pw(o)&&a[o]==null&&delete s[o]},Pt=$1;function x1(t){return A1(t)}function A1(t,e){const r=Wl();r.__VUE__=!0;const{insert:n,remove:s,patchProp:i,createElement:a,createText:o,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:p=Pr,insertStaticContent:m}=t,b=(M,O,F,R=null,V=null,q=null,oe=void 0,Q=null,G=!!O.dynamicChildren)=>{if(M===O)return;M&&!Ws(M,O)&&(R=j(M),$(M,V,q,!0),M=null),O.patchFlag===-2&&(G=!1,O.dynamicChildren=null);const{type:re,ref:z,shapeFlag:ie}=O;switch(re){case Yl:v(M,O,F,R);break;case Nn:_(M,O,F,R);break;case Na:M==null&&E(O,F,R,oe);break;case nr:C(M,O,F,R,V,q,oe,Q,G);break;default:ie&1?x(M,O,F,R,V,q,oe,Q,G):ie&6?I(M,O,F,R,V,q,oe,Q,G):(ie&64||ie&128)&&re.process(M,O,F,R,V,q,oe,Q,G,le)}z!=null&&V&&cl(z,M&&M.ref,q,O||M,!O)},v=(M,O,F,R)=>{if(M==null)n(O.el=o(O.children),F,R);else{const V=O.el=M.el;O.children!==M.children&&u(V,O.children)}},_=(M,O,F,R)=>{M==null?n(O.el=l(O.children||""),F,R):O.el=M.el},E=(M,O,F,R)=>{[M.el,M.anchor]=m(M.children,O,F,R,M.el,M.anchor)},y=({el:M,anchor:O},F,R)=>{let V;for(;M&&M!==O;)V=d(M),n(M,F,R),M=V;n(O,F,R)},T=({el:M,anchor:O})=>{let F;for(;M&&M!==O;)F=d(M),s(M),M=F;s(O)},x=(M,O,F,R,V,q,oe,Q,G)=>{O.type==="svg"?oe="svg":O.type==="math"&&(oe="mathml"),M==null?A(O,F,R,V,q,oe,Q,G):W(M,O,V,q,oe,Q,G)},A=(M,O,F,R,V,q,oe,Q)=>{let G,re;const{props:z,shapeFlag:ie,transition:he,dirs:be}=M;if(G=M.el=a(M.type,q,z&&z.is,z),ie&8?c(G,M.children):ie&16&&L(M.children,G,null,R,V,Ru(M,q),oe,Q),be&&Gn(M,null,R,"created"),P(G,M,M.scopeId,oe,R),z){for(const g in z)g!=="value"&&!go(g)&&i(G,g,null,z[g],q,R);"value"in z&&i(G,"value",null,z.value,q),(re=z.onVnodeBeforeMount)&&Sr(re,R,M)}be&&Gn(M,null,R,"beforeMount");const S=C1(V,he);S&&he.beforeEnter(G),n(G,O,F),((re=z&&z.onVnodeMounted)||S||be)&&Pt(()=>{re&&Sr(re,R,M),S&&he.enter(G),be&&Gn(M,null,R,"mounted")},V)},P=(M,O,F,R,V)=>{if(F&&p(M,F),R)for(let q=0;q{for(let re=G;re{const Q=O.el=M.el;let{patchFlag:G,dynamicChildren:re,dirs:z}=O;G|=M.patchFlag&16;const ie=M.props||Ge,he=O.props||Ge;let be;if(F&&Kn(F,!1),(be=he.onVnodeBeforeUpdate)&&Sr(be,F,O,M),z&&Gn(O,M,F,"beforeUpdate"),F&&Kn(F,!0),(ie.innerHTML&&he.innerHTML==null||ie.textContent&&he.textContent==null)&&c(Q,""),re?U(M.dynamicChildren,re,Q,F,R,Ru(O,V),q):oe||B(M,O,Q,null,F,R,Ru(O,V),q,!1),G>0){if(G&16)H(Q,ie,he,F,V);else if(G&2&&ie.class!==he.class&&i(Q,"class",null,he.class,V),G&4&&i(Q,"style",ie.style,he.style,V),G&8){const S=O.dynamicProps;for(let g=0;g{be&&Sr(be,F,O,M),z&&Gn(O,M,F,"updated")},R)},U=(M,O,F,R,V,q,oe)=>{for(let Q=0;Q{if(O!==F){if(O!==Ge)for(const q in O)!go(q)&&!(q in F)&&i(M,q,O[q],null,V,R);for(const q in F){if(go(q))continue;const oe=F[q],Q=O[q];oe!==Q&&q!=="value"&&i(M,q,Q,oe,V,R)}"value"in F&&i(M,"value",O.value,F.value,V)}},C=(M,O,F,R,V,q,oe,Q,G)=>{const re=O.el=M?M.el:o(""),z=O.anchor=M?M.anchor:o("");let{patchFlag:ie,dynamicChildren:he,slotScopeIds:be}=O;be&&(Q=Q?Q.concat(be):be),M==null?(n(re,F,R),n(z,F,R),L(O.children||[],F,z,V,q,oe,Q,G)):ie>0&&ie&64&&he&&M.dynamicChildren?(U(M.dynamicChildren,he,F,V,q,oe,Q),(O.key!=null||V&&O===V.subTree)&&Bh(M,O,!0)):B(M,O,F,z,V,q,oe,Q,G)},I=(M,O,F,R,V,q,oe,Q,G)=>{O.slotScopeIds=Q,M==null?O.shapeFlag&512?V.ctx.activate(O,F,R,oe,G):N(O,F,R,V,q,oe,G):J(M,O,G)},N=(M,O,F,R,V,q,oe)=>{const Q=M.component=q1(M,R,V);if(ww(M)&&(Q.ctx.renderer=le),Y1(Q,!1,oe),Q.asyncDep){if(V&&V.registerDep(Q,ne,oe),!M.el){const G=Q.subTree=wr(Nn);_(null,G,O,F)}}else ne(Q,M,O,F,V,q,oe)},J=(M,O,F)=>{const R=O.component=M.component;if(D1(M,O,F))if(R.asyncDep&&!R.asyncResolved){te(R,O,F);return}else R.next=O,R.update();else O.el=M.el,R.vnode=O},ne=(M,O,F,R,V,q,oe)=>{const Q=()=>{if(M.isMounted){let{next:ie,bu:he,u:be,parent:S,vnode:g}=M;{const de=Nw(M);if(de){ie&&(ie.el=g.el,te(M,ie,oe)),de.asyncDep.then(()=>{M.isUnmounted||Q()});return}}let h=ie,w;Kn(M,!1),ie?(ie.el=g.el,te(M,ie,oe)):ie=g,he&&ka(he),(w=ie.props&&ie.props.onVnodeBeforeUpdate)&&Sr(w,S,ie,g),Kn(M,!0);const k=lg(M),Z=M.subTree;M.subTree=k,b(Z,k,f(Z.el),j(Z),M,V,q),ie.el=k.el,h===null&&B1(M,k.el),be&&Pt(be,V),(w=ie.props&&ie.props.onVnodeUpdated)&&Pt(()=>Sr(w,S,ie,g),V)}else{let ie;const{el:he,props:be}=O,{bm:S,m:g,parent:h,root:w,type:k}=M,Z=ls(O);Kn(M,!1),S&&ka(S),!Z&&(ie=be&&be.onVnodeBeforeMount)&&Sr(ie,h,O),Kn(M,!0);{w.ce&&w.ce._injectChildStyle(k);const de=M.subTree=lg(M);b(null,de,F,R,M,V,q),O.el=de.el}if(g&&Pt(g,V),!Z&&(ie=be&&be.onVnodeMounted)){const de=O;Pt(()=>Sr(ie,h,de),V)}(O.shapeFlag&256||h&&ls(h.vnode)&&h.vnode.shapeFlag&256)&&M.a&&Pt(M.a,V),M.isMounted=!0,O=F=R=null}};M.scope.on();const G=M.effect=new Yy(Q);M.scope.off();const re=M.update=G.run.bind(G),z=M.job=G.runIfDirty.bind(G);z.i=M,z.id=M.uid,G.scheduler=()=>Lh(z),Kn(M,!0),re()},te=(M,O,F)=>{O.component=M;const R=M.vnode.props;M.vnode=O,M.next=null,_1(M,O.props,R,F),T1(M,O.children,F),Fn(),Qp(M),Un()},B=(M,O,F,R,V,q,oe,Q,G=!1)=>{const re=M&&M.children,z=M?M.shapeFlag:0,ie=O.children,{patchFlag:he,shapeFlag:be}=O;if(he>0){if(he&128){Y(re,ie,F,R,V,q,oe,Q,G);return}else if(he&256){ae(re,ie,F,R,V,q,oe,Q,G);return}}be&8?(z&16&&K(re,V,q),ie!==re&&c(F,ie)):z&16?be&16?Y(re,ie,F,R,V,q,oe,Q,G):K(re,V,q,!0):(z&8&&c(F,""),be&16&&L(ie,F,R,V,q,oe,Q,G))},ae=(M,O,F,R,V,q,oe,Q,G)=>{M=M||is,O=O||is;const re=M.length,z=O.length,ie=Math.min(re,z);let he;for(he=0;hez?K(M,V,q,!0,!1,ie):L(O,F,R,V,q,oe,Q,G,ie)},Y=(M,O,F,R,V,q,oe,Q,G)=>{let re=0;const z=O.length;let ie=M.length-1,he=z-1;for(;re<=ie&&re<=he;){const be=M[re],S=O[re]=G?Pn(O[re]):Ir(O[re]);if(Ws(be,S))b(be,S,F,null,V,q,oe,Q,G);else break;re++}for(;re<=ie&&re<=he;){const be=M[ie],S=O[he]=G?Pn(O[he]):Ir(O[he]);if(Ws(be,S))b(be,S,F,null,V,q,oe,Q,G);else break;ie--,he--}if(re>ie){if(re<=he){const be=he+1,S=behe)for(;re<=ie;)$(M[re],V,q,!0),re++;else{const be=re,S=re,g=new Map;for(re=S;re<=he;re++){const Me=O[re]=G?Pn(O[re]):Ir(O[re]);Me.key!=null&&g.set(Me.key,re)}let h,w=0;const k=he-S+1;let Z=!1,de=0;const ye=new Array(k);for(re=0;re=k){$(Me,V,q,!0);continue}let xe;if(Me.key!=null)xe=g.get(Me.key);else for(h=S;h<=he;h++)if(ye[h-S]===0&&Ws(Me,O[h])){xe=h;break}xe===void 0?$(Me,V,q,!0):(ye[xe-S]=re+1,xe>=de?de=xe:Z=!0,b(Me,O[xe],F,null,V,q,oe,Q,G),w++)}const Ae=Z?I1(ye):is;for(h=Ae.length-1,re=k-1;re>=0;re--){const Me=S+re,xe=O[Me],Pe=Me+1{const{el:q,type:oe,transition:Q,children:G,shapeFlag:re}=M;if(re&6){ce(M.component.subTree,O,F,R);return}if(re&128){M.suspense.move(O,F,R);return}if(re&64){oe.move(M,O,F,le);return}if(oe===nr){n(q,O,F);for(let ie=0;ieQ.enter(q),V);else{const{leave:ie,delayLeave:he,afterLeave:be}=Q,S=()=>n(q,O,F),g=()=>{ie(q,()=>{S(),be&&be()})};he?he(q,S,g):g()}else n(q,O,F)},$=(M,O,F,R=!1,V=!1)=>{const{type:q,props:oe,ref:Q,children:G,dynamicChildren:re,shapeFlag:z,patchFlag:ie,dirs:he,cacheIndex:be}=M;if(ie===-2&&(V=!1),Q!=null&&cl(Q,null,F,M,!0),be!=null&&(O.renderCache[be]=void 0),z&256){O.ctx.deactivate(M);return}const S=z&1&&he,g=!ls(M);let h;if(g&&(h=oe&&oe.onVnodeBeforeUnmount)&&Sr(h,O,M),z&6)ee(M.component,F,R);else{if(z&128){M.suspense.unmount(F,R);return}S&&Gn(M,null,O,"beforeUnmount"),z&64?M.type.remove(M,O,F,le,R):re&&!re.hasOnce&&(q!==nr||ie>0&&ie&64)?K(re,O,F,!1,!0):(q===nr&&ie&384||!V&&z&16)&&K(G,O,F),R&&ue(M)}(g&&(h=oe&&oe.onVnodeUnmounted)||S)&&Pt(()=>{h&&Sr(h,O,M),S&&Gn(M,null,O,"unmounted")},F)},ue=M=>{const{type:O,el:F,anchor:R,transition:V}=M;if(O===nr){me(F,R);return}if(O===Na){T(M);return}const q=()=>{s(F),V&&!V.persisted&&V.afterLeave&&V.afterLeave()};if(M.shapeFlag&1&&V&&!V.persisted){const{leave:oe,delayLeave:Q}=V,G=()=>oe(F,q);Q?Q(M.el,q,G):G()}else q()},me=(M,O)=>{let F;for(;M!==O;)F=d(M),s(M),M=F;s(O)},ee=(M,O,F)=>{const{bum:R,scope:V,job:q,subTree:oe,um:Q,m:G,a:re}=M;ag(G),ag(re),R&&ka(R),V.stop(),q&&(q.flags|=8,$(oe,M,O,F)),Q&&Pt(Q,O),Pt(()=>{M.isUnmounted=!0},O),O&&O.pendingBranch&&!O.isUnmounted&&M.asyncDep&&!M.asyncResolved&&M.suspenseId===O.pendingId&&(O.deps--,O.deps===0&&O.resolve())},K=(M,O,F,R=!1,V=!1,q=0)=>{for(let oe=q;oe{if(M.shapeFlag&6)return j(M.component.subTree);if(M.shapeFlag&128)return M.suspense.next();const O=d(M.anchor||M.el),F=O&&O[gw];return F?d(F):O};let D=!1;const X=(M,O,F)=>{M==null?O._vnode&&$(O._vnode,null,null,!0):b(O._vnode||null,M,O,null,null,null,F),O._vnode=M,D||(D=!0,Qp(),dw(),D=!1)},le={p:b,um:$,m:ce,r:ue,mt:N,mc:L,pc:B,pbc:U,n:j,o:t};return{render:X,hydrate:void 0,createApp:b1(X)}}function Ru({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function Kn({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function C1(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Bh(t,e,r=!1){const n=t.children,s=e.children;if(De(n)&&De(s))for(let i=0;i>1,t[r[o]]0&&(e[n]=r[i-1]),r[i]=n)}}for(i=r.length,a=r[i-1];i-- >0;)r[i]=a,a=e[a];return r}function Nw(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Nw(e)}function ag(t){if(t)for(let e=0;eLa(M1);function hF(t,e){return $h(t,null,e)}function Lu(t,e,r){return $h(t,e,r)}function $h(t,e,r=Ge){const{immediate:n,deep:s,flush:i,once:a}=r,o=Mt({},r),l=e&&n||!e&&i!=="post";let u;if(Oo){if(i==="sync"){const p=O1();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=Pr,p.resume=Pr,p.pause=Pr,p}}const c=Ct;o.call=(p,m,b)=>Nr(p,c,m,b);let f=!1;i==="post"?o.scheduler=p=>{Pt(p,c&&c.suspense)}:i!=="sync"&&(f=!0,o.scheduler=(p,m)=>{m?p():Lh(p)}),o.augmentJob=p=>{e&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const d=WS(t,e,o);return Oo&&(u?u.push(d):l&&d()),d}function P1(t,e,r){const n=this.proxy,s=lt(t)?t.includes(".")?Dw(n,t):()=>n[t]:t.bind(n,n);let i;Be(e)?i=e:(i=e.handler,r=e);const a=Wo(this),o=$h(s,i.bind(n),r);return a(),o}function Dw(t,e){const r=e.split(".");return()=>{let n=t;for(let s=0;se==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${lr(e)}Modifiers`]||t[`${Oi(e)}Modifiers`];function R1(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Ge;let s=r;const i=e.startsWith("update:"),a=i&&k1(n,e.slice(7));a&&(a.trim&&(s=r.map(c=>lt(c)?c.trim():c)),a.number&&(s=r.map(ol)));let o,l=n[o=Cu(e)]||n[o=Cu(lr(e))];!l&&i&&(l=n[o=Cu(Oi(e))]),l&&Nr(l,t,6,s);const u=n[o+"Once"];if(u){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,Nr(u,t,6,s)}}function Bw(t,e,r=!1){const n=e.emitsCache,s=n.get(t);if(s!==void 0)return s;const i=t.emits;let a={},o=!1;if(!Be(t)){const l=u=>{const c=Bw(u,e,!0);c&&(o=!0,Mt(a,c))};!r&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!i&&!o?(Qe(t)&&n.set(t,null),null):(De(i)?i.forEach(l=>a[l]=null):Mt(a,i),Qe(t)&&n.set(t,a),a)}function ql(t,e){return!t||!Fl(e)?!1:(e=e.slice(2).replace(/Once$/,""),He(t,e[0].toLowerCase()+e.slice(1))||He(t,Oi(e))||He(t,e))}function lg(t){const{type:e,vnode:r,proxy:n,withProxy:s,propsOptions:[i],slots:a,attrs:o,emit:l,render:u,renderCache:c,props:f,data:d,setupState:p,ctx:m,inheritAttrs:b}=t,v=ul(t);let _,E;try{if(r.shapeFlag&4){const T=s||n,x=T;_=Ir(u.call(x,T,c,f,p,d,m)),E=o}else{const T=e;_=Ir(T.length>1?T(f,{attrs:o,slots:a,emit:l}):T(f,null)),E=e.props?o:L1(o)}}catch(T){_o.length=0,zl(T,t,1),_=wr(Nn)}let y=_;if(E&&b!==!1){const T=Object.keys(E),{shapeFlag:x}=y;T.length&&x&7&&(i&&T.some(_h)&&(E=N1(E,i)),y=ds(y,E,!1,!0))}return r.dirs&&(y=ds(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(r.dirs):r.dirs),r.transition&&Nh(y,r.transition),_=y,ul(v),_}const L1=t=>{let e;for(const r in t)(r==="class"||r==="style"||Fl(r))&&((e||(e={}))[r]=t[r]);return e},N1=(t,e)=>{const r={};for(const n in t)(!_h(n)||!(n.slice(9)in e))&&(r[n]=t[n]);return r};function D1(t,e,r){const{props:n,children:s,component:i}=t,{props:a,children:o,patchFlag:l}=e,u=i.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?ug(n,a,u):!!a;if(l&8){const c=e.dynamicProps;for(let f=0;ft.__isSuspense;function $1(t,e){e&&e.pendingBranch?De(t)?e.effects.push(...t):e.effects.push(t):VS(t)}const nr=Symbol.for("v-fgt"),Yl=Symbol.for("v-txt"),Nn=Symbol.for("v-cmt"),Na=Symbol.for("v-stc"),_o=[];let Gt=null;function _f(t=!1){_o.push(Gt=t?null:[])}function F1(){_o.pop(),Gt=_o[_o.length-1]||null}let Mo=1;function cg(t,e=!1){Mo+=t,t<0&&Gt&&e&&(Gt.hasOnce=!0)}function Fw(t){return t.dynamicChildren=Mo>0?Gt||is:null,F1(),Mo>0&&Gt&&Gt.push(t),t}function pF(t,e,r,n,s,i){return Fw(jw(t,e,r,n,s,i,!0))}function vf(t,e,r,n,s){return Fw(wr(t,e,r,n,s,!0))}function Fh(t){return t?t.__v_isVNode===!0:!1}function Ws(t,e){return t.type===e.type&&t.key===e.key}const Uw=({key:t})=>t??null,Da=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?lt(t)||It(t)||Be(t)?{i:bt,r:t,k:e,f:!!r}:t:null);function jw(t,e=null,r=null,n=0,s=null,i=t===nr?0:1,a=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Uw(e),ref:e&&Da(e),scopeId:pw,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:bt};return o?(Uh(l,r),i&128&&t.normalize(l)):r&&(l.shapeFlag|=lt(r)?8:16),Mo>0&&!a&&Gt&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&Gt.push(l),l}const wr=U1;function U1(t,e=null,r=null,n=0,s=null,i=!1){if((!t||t===l1)&&(t=Nn),Fh(t)){const o=ds(t,e,!0);return r&&Uh(o,r),Mo>0&&!i&&Gt&&(o.shapeFlag&6?Gt[Gt.indexOf(t)]=o:Gt.push(o)),o.patchFlag=-2,o}if(J1(t)&&(t=t.__vccOpts),e){e=j1(e);let{class:o,style:l}=e;o&&!lt(o)&&(e.class=Th(o)),Qe(l)&&(Rh(l)&&!De(l)&&(l=Mt({},l)),e.style=Sh(l))}const a=lt(t)?1:$w(t)?128:YS(t)?64:Qe(t)?4:Be(t)?2:0;return jw(t,e,r,n,s,a,i,!0)}function j1(t){return t?Rh(t)||Iw(t)?Mt({},t):t:null}function ds(t,e,r=!1,n=!1){const{props:s,ref:i,patchFlag:a,children:o,transition:l}=t,u=e?H1(s||{},e):s,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&Uw(u),ref:e&&e.ref?r&&i?De(i)?i.concat(Da(e)):[i,Da(e)]:Da(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==nr?a===-1?16:a|16:a,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&ds(t.ssContent),ssFallback:t.ssFallback&&ds(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&n&&Nh(c,l.clone(c)),c}function W1(t=" ",e=0){return wr(Yl,null,t,e)}function gF(t,e){const r=wr(Na,null,t);return r.staticCount=e,r}function mF(t="",e=!1){return e?(_f(),vf(Nn,null,t)):wr(Nn,null,t)}function Ir(t){return t==null||typeof t=="boolean"?wr(Nn):De(t)?wr(nr,null,t.slice()):Fh(t)?Pn(t):wr(Yl,null,String(t))}function Pn(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:ds(t)}function Uh(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(De(e))r=16;else if(typeof e=="object")if(n&65){const s=e.default;s&&(s._c&&(s._d=!1),Uh(t,s()),s._c&&(s._d=!0));return}else{r=32;const s=e._;!s&&!Iw(e)?e._ctx=bt:s===3&&bt&&(bt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Be(e)?(e={default:e,_ctx:bt},r=32):(e=String(e),n&64?(r=16,e=[W1(e)]):r=8);t.children=e,t.shapeFlag|=r}function H1(...t){const e={};for(let r=0;r{let s;return(s=t[r])||(s=t[r]=[]),s.push(n),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};dl=e("__VUE_INSTANCE_SETTERS__",r=>Ct=r),Ef=e("__VUE_SSR_SETTERS__",r=>Oo=r)}const Wo=t=>{const e=Ct;return dl(t),t.scope.on(),()=>{t.scope.off(),dl(e)}},fg=()=>{Ct&&Ct.scope.off(),dl(null)};function Ww(t){return t.vnode.shapeFlag&4}let Oo=!1;function Y1(t,e=!1,r=!1){e&&Ef(e);const{props:n,children:s}=t.vnode,i=Ww(t);w1(t,n,i,e),S1(t,s,r);const a=i?G1(t,e):void 0;return e&&Ef(!1),a}function G1(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,c1);const{setup:n}=r;if(n){Fn();const s=t.setupContext=n.length>1?X1(t):null,i=Wo(t),a=jo(n,t,0,[t.props,s]),o=Uy(a);if(Un(),i(),(o||t.sp)&&!ls(t)&&yw(t),o){if(a.then(fg,fg),e)return a.then(l=>{dg(t,l)}).catch(l=>{zl(l,t,0)});t.asyncDep=a}else dg(t,a)}else Hw(t)}function dg(t,e,r){Be(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Qe(e)&&(t.setupState=lw(e)),Hw(t)}function Hw(t,e,r){const n=t.type;t.render||(t.render=n.render||Pr);{const s=Wo(t);Fn();try{f1(t)}finally{Un(),s()}}}const K1={get(t,e){return xt(t,"get",""),t[e]}};function X1(t){const e=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,K1),slots:t.slots,emit:t.emit,expose:e}}function Gl(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(lw(LS(t.exposed)),{get(e,r){if(r in e)return e[r];if(r in wo)return wo[r](t)},has(e,r){return r in e||r in wo}})):t.proxy}function Q1(t,e=!0){return Be(t)?t.displayName||t.name:t.name||e&&t.__name}function J1(t){return Be(t)&&"__vccOpts"in t}const Z1=(t,e)=>US(t,e,Oo),eT="3.5.13";/** -* @vue/runtime-dom v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Sf;const hg=typeof window<"u"&&window.trustedTypes;if(hg)try{Sf=hg.createPolicy("vue",{createHTML:t=>t})}catch{}const zw=Sf?t=>Sf.createHTML(t):t=>t,tT="http://www.w3.org/2000/svg",rT="http://www.w3.org/1998/Math/MathML",zr=typeof document<"u"?document:null,pg=zr&&zr.createElement("template"),nT={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const s=e==="svg"?zr.createElementNS(tT,t):e==="mathml"?zr.createElementNS(rT,t):r?zr.createElement(t,{is:r}):zr.createElement(t);return t==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:t=>zr.createTextNode(t),createComment:t=>zr.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>zr.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,s,i){const a=r?r.previousSibling:e.lastChild;if(s&&(s===i||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),r),!(s===i||!(s=s.nextSibling)););else{pg.innerHTML=zw(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const o=pg.content;if(n==="svg"||n==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}e.insertBefore(o,r)}return[a?a.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},iT=Symbol("_vtc");function sT(t,e,r){const n=t[iT];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}const hl=Symbol("_vod"),Vw=Symbol("_vsh"),bF={beforeMount(t,{value:e},{transition:r}){t[hl]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):Hs(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),Hs(t,!0),n.enter(t)):n.leave(t,()=>{Hs(t,!1)}):Hs(t,e))},beforeUnmount(t,{value:e}){Hs(t,e)}};function Hs(t,e){t.style.display=e?t[hl]:"none",t[Vw]=!e}const oT=Symbol(""),aT=/(^|;)\s*display\s*:/;function lT(t,e,r){const n=t.style,s=lt(r);let i=!1;if(r&&!s){if(e)if(lt(e))for(const a of e.split(";")){const o=a.slice(0,a.indexOf(":")).trim();r[o]==null&&Ba(n,o,"")}else for(const a in e)r[a]==null&&Ba(n,a,"");for(const a in r)a==="display"&&(i=!0),Ba(n,a,r[a])}else if(s){if(e!==r){const a=n[oT];a&&(r+=";"+a),n.cssText=r,i=aT.test(r)}}else e&&t.removeAttribute("style");hl in t&&(t[hl]=i?n.display:"",t[Vw]&&(n.display="none"))}const gg=/\s*!important$/;function Ba(t,e,r){if(De(r))r.forEach(n=>Ba(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=uT(t,e);gg.test(r)?t.setProperty(Oi(n),r.replace(gg,""),"important"):t[n]=r}}const mg=["Webkit","Moz","ms"],Nu={};function uT(t,e){const r=Nu[e];if(r)return r;let n=lr(e);if(n!=="filter"&&n in t)return Nu[e]=n;n=jl(n);for(let s=0;sDu||(hT.then(()=>Du=0),Du=Date.now());function gT(t,e){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;Nr(mT(n,r.value),e,5,[n])};return r.value=t,r.attached=pT(),r}function mT(t,e){if(De(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map(n=>s=>!s._stopped&&n&&n(s))}else return e}const Eg=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,bT=(t,e,r,n,s,i)=>{const a=s==="svg";e==="class"?sT(t,n,a):e==="style"?lT(t,r,n):Fl(e)?_h(e)||fT(t,e,r,n,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):yT(t,e,n,a))?(wg(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&yg(t,e,n,a,i,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!lt(n))?wg(t,lr(e),n,i,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),yg(t,e,n,a))};function yT(t,e,r,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&Eg(e)&&Be(r));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=t.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Eg(e)&<(r)?!1:e in t}const hs=t=>{const e=t.props["onUpdate:modelValue"]||!1;return De(e)?r=>ka(e,r):e};function wT(t){t.target.composing=!0}function Sg(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const nn=Symbol("_assign"),yF={created(t,{modifiers:{lazy:e,trim:r,number:n}},s){t[nn]=hs(s);const i=n||s.props&&s.props.type==="number";kn(t,e?"change":"input",a=>{if(a.target.composing)return;let o=t.value;r&&(o=o.trim()),i&&(o=ol(o)),t[nn](o)}),r&&kn(t,"change",()=>{t.value=t.value.trim()}),e||(kn(t,"compositionstart",wT),kn(t,"compositionend",Sg),kn(t,"change",Sg))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:r,modifiers:{lazy:n,trim:s,number:i}},a){if(t[nn]=hs(a),t.composing)return;const o=(i||t.type==="number")&&!/^0\d/.test(t.value)?ol(t.value):t.value,l=e??"";o!==l&&(document.activeElement===t&&t.type!=="range"&&(n&&e===r||s&&t.value.trim()===l)||(t.value=l))}},wF={deep:!0,created(t,e,r){t[nn]=hs(r),kn(t,"change",()=>{const n=t._modelValue,s=Po(t),i=t.checked,a=t[nn];if(De(n)){const o=xh(n,s),l=o!==-1;if(i&&!l)a(n.concat(s));else if(!i&&l){const u=[...n];u.splice(o,1),a(u)}}else if(Is(n)){const o=new Set(n);i?o.add(s):o.delete(s),a(o)}else a(qw(t,i))})},mounted:Tg,beforeUpdate(t,e,r){t[nn]=hs(r),Tg(t,e,r)}};function Tg(t,{value:e,oldValue:r},n){t._modelValue=e;let s;if(De(e))s=xh(e,n.props.value)>-1;else if(Is(e))s=e.has(n.props.value);else{if(e===r)return;s=Uo(e,qw(t,!0))}t.checked!==s&&(t.checked=s)}const _F={deep:!0,created(t,{value:e,modifiers:{number:r}},n){const s=Is(e);kn(t,"change",()=>{const i=Array.prototype.filter.call(t.options,a=>a.selected).map(a=>r?ol(Po(a)):Po(a));t[nn](t.multiple?s?new Set(i):i:i[0]),t._assigning=!0,cw(()=>{t._assigning=!1})}),t[nn]=hs(n)},mounted(t,{value:e}){xg(t,e)},beforeUpdate(t,e,r){t[nn]=hs(r)},updated(t,{value:e}){t._assigning||xg(t,e)}};function xg(t,e){const r=t.multiple,n=De(e);if(!(r&&!n&&!Is(e))){for(let s=0,i=t.options.length;sString(u)===String(o)):a.selected=xh(e,o)>-1}else a.selected=e.has(o);else if(Uo(Po(a),e)){t.selectedIndex!==s&&(t.selectedIndex=s);return}}!r&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function Po(t){return"_value"in t?t._value:t.value}function qw(t,e){const r=e?"_trueValue":"_falseValue";return r in t?t[r]:e}const _T=Mt({patchProp:bT},nT);let Ag;function vT(){return Ag||(Ag=x1(_T))}const vF=(...t)=>{const e=vT().createApp(...t),{mount:r}=e;return e.mount=n=>{const s=ST(n);if(!s)return;const i=e._component;!Be(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=r(s,!1,ET(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},e};function ET(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function ST(t){return lt(t)?document.querySelector(t):t}function $a(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function TT(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function jh(t){let e,r,n;t.length!==2?(e=$a,r=(o,l)=>$a(t(o),l),n=(o,l)=>t(o)-l):(e=t===$a||t===TT?t:xT,r=t,n=t);function s(o,l,u=0,c=o.length){if(u>>1;r(o[f],l)<0?u=f+1:c=f}while(u>>1;r(o[f],l)<=0?u=f+1:c=f}while(uu&&n(o[f-1],l)>-n(o[f],l)?f-1:f}return{left:s,center:a,right:i}}function xT(){return 0}function AT(t){return t===null?NaN:+t}const CT=jh($a),IT=CT.right;jh(AT).center;function EF(t,e){let r,n;if(e===void 0)for(const s of t)s!=null&&(r===void 0?s>=s&&(r=n=s):(r>s&&(r=s),n=i&&(r=n=i):(r>i&&(r=i),n=kT?10:i>=RT?5:i>=LT?2:1;let o,l,u;return s<0?(u=Math.pow(10,-s)/a,o=Math.round(t*u),l=Math.round(e*u),o/ue&&--l,u=-u):(u=Math.pow(10,s)*a,o=Math.round(t/u),l=Math.round(e/u),o*ue&&--l),l0))return[];if(t===e)return[t];const n=e=s))return[];const o=i-s+1,l=new Array(o);if(n)if(a<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let s of t)(s=e(s,++n,t))!=null&&(r=s)&&(r=s)}return r}function DT(t,e,r){t=+t,e=+e,r=(s=arguments.length)<2?(e=t,t=0,1):s<3?1:+r;for(var n=-1,s=Math.max(0,Math.ceil((e-t)/r))|0,i=new Array(s);++n+t(e)}function jT(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function WT(){return!this.__axis}function Kl(t,e){var r=[],n=null,s=null,i=6,a=6,o=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===Fa||t===oo?-1:1,c=t===oo||t===Ua?"x":"y",f=t===Fa||t===Af?$T:FT;function d(p){var m=n??(e.ticks?e.ticks.apply(e,r):e.domain()),b=s??(e.tickFormat?e.tickFormat.apply(e,r):BT),v=Math.max(i,0)+o,_=e.range(),E=+_[0]+l,y=+_[_.length-1]+l,T=(e.bandwidth?jT:UT)(e.copy(),l),x=p.selection?p.selection():p,A=x.selectAll(".domain").data([null]),P=x.selectAll(".tick").data(m,e).order(),L=P.exit(),W=P.enter().append("g").attr("class","tick"),U=P.select("line"),H=P.select("text");A=A.merge(A.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),P=P.merge(W),U=U.merge(W.append("line").attr("stroke","currentColor").attr(c+"2",u*i)),H=H.merge(W.append("text").attr("fill","currentColor").attr(c,u*v).attr("dy",t===Fa?"0em":t===Af?"0.71em":"0.32em")),p!==x&&(A=A.transition(p),P=P.transition(p),U=U.transition(p),H=H.transition(p),L=L.transition(p).attr("opacity",Mg).attr("transform",function(C){return isFinite(C=T(C))?f(C+l):this.getAttribute("transform")}),W.attr("opacity",Mg).attr("transform",function(C){var I=this.parentNode.__axis;return f((I&&isFinite(I=I(C))?I:T(C))+l)})),L.remove(),A.attr("d",t===oo||t===Ua?a?"M"+u*a+","+E+"H"+l+"V"+y+"H"+u*a:"M"+l+","+E+"V"+y:a?"M"+E+","+u*a+"V"+l+"H"+y+"V"+u*a:"M"+E+","+l+"H"+y),P.attr("opacity",1).attr("transform",function(C){return f(T(C)+l)}),U.attr(c+"2",u*i),H.attr(c,u*v).text(b),x.filter(WT).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ua?"start":t===oo?"end":"middle"),x.each(function(){this.__axis=T})}return d.scale=function(p){return arguments.length?(e=p,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),d):r.slice()},d.tickValues=function(p){return arguments.length?(n=p==null?null:Array.from(p),d):n&&n.slice()},d.tickFormat=function(p){return arguments.length?(s=p,d):s},d.tickSize=function(p){return arguments.length?(i=a=+p,d):i},d.tickSizeInner=function(p){return arguments.length?(i=+p,d):i},d.tickSizeOuter=function(p){return arguments.length?(a=+p,d):a},d.tickPadding=function(p){return arguments.length?(o=+p,d):o},d.offset=function(p){return arguments.length?(l=+p,d):l},d}function TF(t){return Kl(Fa,t)}function xF(t){return Kl(Ua,t)}function AF(t){return Kl(Af,t)}function CF(t){return Kl(oo,t)}var HT={value:()=>{}};function Wh(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(s+1),r=r.slice(0,s)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}ja.prototype=Wh.prototype={constructor:ja,on:function(t,e){var r=this._,n=zT(t+"",r),s,i=-1,a=n.length;if(arguments.length<2){for(;++i0)for(var r=new Array(s),n=0,s,i;n=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Pg.hasOwnProperty(e)?{space:Pg[e],local:t}:t}function qT(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Cf&&e.documentElement.namespaceURI===Cf?e.createElement(t):e.createElementNS(r,t)}}function YT(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Yw(t){var e=Xl(t);return(e.local?YT:qT)(e)}function GT(){}function Hh(t){return t==null?GT:function(){return this.querySelector(t)}}function KT(t){typeof t!="function"&&(t=Hh(t));for(var e=this._groups,r=e.length,n=new Array(r),s=0;s=y&&(y=E+1);!(x=v[y])&&++y=0;)(a=n[s])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function vx(t){t||(t=Ex);function e(f,d){return f&&d?t(f.__data__,d.__data__):!f-!d}for(var r=this._groups,n=r.length,s=new Array(n),i=0;ie?1:t>=e?0:NaN}function Sx(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Tx(){return Array.from(this)}function xx(){for(var t=this._groups,e=0,r=t.length;e1?this.each((e==null?Dx:typeof e=="function"?$x:Bx)(t,e,r??"")):ps(this.node(),t)}function ps(t,e){return t.style.getPropertyValue(e)||Jw(t).getComputedStyle(t,null).getPropertyValue(e)}function Ux(t){return function(){delete this[t]}}function jx(t,e){return function(){this[t]=e}}function Wx(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Hx(t,e){return arguments.length>1?this.each((e==null?Ux:typeof e=="function"?Wx:jx)(t,e)):this.node()[t]}function Zw(t){return t.trim().split(/^|\s+/)}function zh(t){return t.classList||new e0(t)}function e0(t){this._node=t,this._names=Zw(t.getAttribute("class")||"")}e0.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function t0(t,e){for(var r=zh(t),n=-1,s=e.length;++n=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function bA(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,s=e.length,i;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?sa(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?sa(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=MA.exec(t))?new Ft(e[1],e[2],e[3],1):(e=OA.exec(t))?new Ft(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=PA.exec(t))?sa(e[1],e[2],e[3],e[4]):(e=kA.exec(t))?sa(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=RA.exec(t))?$g(e[1],e[2]/100,e[3]/100,1):(e=LA.exec(t))?$g(e[1],e[2]/100,e[3]/100,e[4]):kg.hasOwnProperty(t)?Ng(kg[t]):t==="transparent"?new Ft(NaN,NaN,NaN,0):null}function Ng(t){return new Ft(t>>16&255,t>>8&255,t&255,1)}function sa(t,e,r,n){return n<=0&&(t=e=r=NaN),new Ft(t,e,r,n)}function BA(t){return t instanceof zo||(t=xi(t)),t?(t=t.rgb(),new Ft(t.r,t.g,t.b,t.opacity)):new Ft}function Of(t,e,r,n){return arguments.length===1?BA(t):new Ft(t,e,r,n??1)}function Ft(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}Vh(Ft,Of,s0(zo,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new Ft(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ko:Math.pow(ko,t),new Ft(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ft(bi(this.r),bi(this.g),bi(this.b),bl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Dg,formatHex:Dg,formatHex8:$A,formatRgb:Bg,toString:Bg}));function Dg(){return`#${ui(this.r)}${ui(this.g)}${ui(this.b)}`}function $A(){return`#${ui(this.r)}${ui(this.g)}${ui(this.b)}${ui((isNaN(this.opacity)?1:this.opacity)*255)}`}function Bg(){const t=bl(this.opacity);return`${t===1?"rgb(":"rgba("}${bi(this.r)}, ${bi(this.g)}, ${bi(this.b)}${t===1?")":`, ${t})`}`}function bl(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function bi(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ui(t){return t=bi(t),(t<16?"0":"")+t.toString(16)}function $g(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new br(t,e,r,n)}function o0(t){if(t instanceof br)return new br(t.h,t.s,t.l,t.opacity);if(t instanceof zo||(t=xi(t)),!t)return new br;if(t instanceof br)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,s=Math.min(e,r,n),i=Math.max(e,r,n),a=NaN,o=i-s,l=(i+s)/2;return o?(e===i?a=(r-n)/o+(r0&&l<1?0:a,new br(a,o,l,t.opacity)}function FA(t,e,r,n){return arguments.length===1?o0(t):new br(t,e,r,n??1)}function br(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}Vh(br,FA,s0(zo,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new br(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ko:Math.pow(ko,t),new br(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,s=2*r-n;return new Ft(Bu(t>=240?t-240:t+120,s,n),Bu(t,s,n),Bu(t<120?t+240:t-120,s,n),this.opacity)},clamp(){return new br(Fg(this.h),oa(this.s),oa(this.l),bl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=bl(this.opacity);return`${t===1?"hsl(":"hsla("}${Fg(this.h)}, ${oa(this.s)*100}%, ${oa(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Fg(t){return t=(t||0)%360,t<0?t+360:t}function oa(t){return Math.max(0,Math.min(1,t||0))}function Bu(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const qh=t=>()=>t;function UA(t,e){return function(r){return t+r*e}}function jA(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function WA(t){return(t=+t)==1?a0:function(e,r){return r-e?jA(e,r,t):qh(isNaN(e)?r:e)}}function a0(t,e){var r=e-t;return r?UA(t,r):qh(isNaN(t)?e:t)}const yl=function t(e){var r=WA(e);function n(s,i){var a=r((s=Of(s)).r,(i=Of(i)).r),o=r(s.g,i.g),l=r(s.b,i.b),u=a0(s.opacity,i.opacity);return function(c){return s.r=a(c),s.g=o(c),s.b=l(c),s.opacity=u(c),s+""}}return n.gamma=t,n}(1);function HA(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),s;return function(i){for(s=0;sr&&(i=e.slice(r,i),o[a]?o[a]+=i:o[++a]=i),(n=n[0])===(s=s[0])?o[a]?o[a]+=s:o[++a]=s:(o[++a]=null,l.push({i:a,x:mr(n,s)})),r=$u.lastIndex;return r180?c+=360:c-u>180&&(u+=360),d.push({i:f.push(s(f)+"rotate(",null,n)-2,x:mr(u,c)})):c&&f.push(s(f)+"rotate("+c+n)}function o(u,c,f,d){u!==c?d.push({i:f.push(s(f)+"skewX(",null,n)-2,x:mr(u,c)}):c&&f.push(s(f)+"skewX("+c+n)}function l(u,c,f,d,p,m){if(u!==f||c!==d){var b=p.push(s(p)+"scale(",null,",",null,")");m.push({i:b-4,x:mr(u,f)},{i:b-2,x:mr(c,d)})}else(f!==1||d!==1)&&p.push(s(p)+"scale("+f+","+d+")")}return function(u,c){var f=[],d=[];return u=t(u),c=t(c),i(u.translateX,u.translateY,c.translateX,c.translateY,f,d),a(u.rotate,c.rotate,f,d),o(u.skewX,c.skewX,f,d),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,f,d),u=c=null,function(p){for(var m=-1,b=d.length,v;++m=0&&t._call.call(void 0,e),t=t._next;--gs}function Wg(){Ai=(_l=Lo.now())+Ql,gs=ao=0;try{oC()}finally{gs=0,lC(),Ai=0}}function aC(){var t=Lo.now(),e=t-_l;e>f0&&(Ql-=e,_l=t)}function lC(){for(var t,e=wl,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:wl=r);lo=t,Rf(n)}function Rf(t){if(!gs){ao&&(ao=clearTimeout(ao));var e=t-Ai;e>24?(t<1/0&&(ao=setTimeout(Wg,t-Lo.now()-Ql)),zs&&(zs=clearInterval(zs))):(zs||(_l=Lo.now(),zs=setInterval(aC,f0)),gs=1,d0(Wg))}}function Hg(t,e,r){var n=new vl;return e=e==null?0:+e,n.restart(s=>{n.stop(),t(s+e)},e,r),n}var uC=Wh("start","end","cancel","interrupt"),cC=[],p0=0,zg=1,Lf=2,Wa=3,Vg=4,Nf=5,Ha=6;function Jl(t,e,r,n,s,i){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;fC(t,r,{name:e,index:n,group:s,on:uC,tween:cC,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:p0})}function Kh(t,e){var r=vr(t,e);if(r.state>p0)throw new Error("too late; already scheduled");return r}function Br(t,e){var r=vr(t,e);if(r.state>Wa)throw new Error("too late; already running");return r}function vr(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function fC(t,e,r){var n=t.__transition,s;n[e]=r,r.timer=h0(i,0,r.time);function i(u){r.state=zg,r.timer.restart(a,r.delay,r.time),r.delay<=u&&a(u-r.delay)}function a(u){var c,f,d,p;if(r.state!==zg)return l();for(c in n)if(p=n[c],p.name===r.name){if(p.state===Wa)return Hg(a);p.state===Vg?(p.state=Ha,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete n[c]):+cLf&&n.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function jC(t,e,r){var n,s,i=UC(e)?Kh:Br;return function(){var a=i(this,t),o=a.on;o!==n&&(s=(n=o).copy()).on(e,r),a.on=s}}function WC(t,e){var r=this._id;return arguments.length<2?vr(this.node(),r).on.on(t):this.each(jC(r,t,e))}function HC(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function zC(){return this.on("end.remove",HC(this._id))}function VC(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Hh(t));for(var n=this._groups,s=n.length,i=new Array(s),a=0;a+t;function dI(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var hI={time:null,delay:0,duration:250,ease:dI};function pI(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function gI(t){var e,r;t instanceof an?(e=t._id,t=t._name):(e=b0(),(r=hI).time=Gh(),t=t==null?null:t+"");for(var n=this._groups,s=n.length,i=0;i=0))throw new Error(`invalid digits: ${t}`);if(e>15)return y0;const r=10**e;return function(n){this._+=n[0];for(let s=1,i=n.length;ssi)if(!(Math.abs(f*l-u*c)>si)||!i)this._append`L${this._x1=e},${this._y1=r}`;else{let p=n-a,m=s-o,b=l*l+u*u,v=p*p+m*m,_=Math.sqrt(b),E=Math.sqrt(d),y=i*Math.tan((Df-Math.acos((b+d-v)/(2*_*E)))/2),T=y/E,x=y/_;Math.abs(T-1)>si&&this._append`L${e+T*c},${r+T*f}`,this._append`A${i},${i},0,0,${+(f*p>c*m)},${this._x1=e+x*l},${this._y1=r+x*u}`}}arc(e,r,n,s,i,a){if(e=+e,r=+r,n=+n,a=!!a,n<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(s),l=n*Math.sin(s),u=e+o,c=r+l,f=1^a,d=a?s-i:i-s;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>si||Math.abs(this._y1-c)>si)&&this._append`L${u},${c}`,n&&(d<0&&(d=d%Bf+Bf),d>mI?this._append`A${n},${n},0,1,${f},${e-o},${r-l}A${n},${n},0,1,${f},${this._x1=u},${this._y1=c}`:d>si&&this._append`A${n},${n},0,${+(d>=Df)},${f},${this._x1=e+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(e,r,n,s){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+s}h${-n}Z`}toString(){return this._}}function wI(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function El(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function ms(t){return t=El(Math.abs(t)),t?t[1]:NaN}function _I(t,e){return function(r,n){for(var s=r.length,i=[],a=0,o=t[0],l=0;s>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),i.push(r.substring(s-=o,s+o)),!((l+=o+1)>n));)o=t[a=(a+1)%t.length];return i.reverse().join(e)}}function vI(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var EI=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sl(t){if(!(e=EI.exec(t)))throw new Error("invalid format: "+t);var e;return new Qh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Sl.prototype=Qh.prototype;function Qh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Qh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function SI(t){e:for(var e=t.length,r=1,n=-1,s;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(s+1):t}var w0;function TI(t,e){var r=El(t,e);if(!r)return t+"";var n=r[0],s=r[1],i=s-(w0=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,a=n.length;return i===a?n:i>a?n+new Array(i-a+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+El(t,Math.max(0,e+i-1))[0]}function qg(t,e){var r=El(t,e);if(!r)return t+"";var n=r[0],s=r[1];return s<0?"0."+new Array(-s).join("0")+n:n.length>s+1?n.slice(0,s+1)+"."+n.slice(s+1):n+new Array(s-n.length+2).join("0")}const Yg={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:wI,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>qg(t*100,e),r:qg,s:TI,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Gg(t){return t}var Kg=Array.prototype.map,Xg=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function xI(t){var e=t.grouping===void 0||t.thousands===void 0?Gg:_I(Kg.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",s=t.decimal===void 0?".":t.decimal+"",i=t.numerals===void 0?Gg:vI(Kg.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"−":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function u(f){f=Sl(f);var d=f.fill,p=f.align,m=f.sign,b=f.symbol,v=f.zero,_=f.width,E=f.comma,y=f.precision,T=f.trim,x=f.type;x==="n"?(E=!0,x="g"):Yg[x]||(y===void 0&&(y=12),T=!0,x="g"),(v||d==="0"&&p==="=")&&(v=!0,d="0",p="=");var A=b==="$"?r:b==="#"&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",P=b==="$"?n:/[%p]/.test(x)?a:"",L=Yg[x],W=/[defgprs%]/.test(x);y=y===void 0?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function U(H){var C=A,I=P,N,J,ne;if(x==="c")I=L(H)+I,H="";else{H=+H;var te=H<0||1/H<0;if(H=isNaN(H)?l:L(Math.abs(H),y),T&&(H=SI(H)),te&&+H==0&&m!=="+"&&(te=!1),C=(te?m==="("?m:o:m==="-"||m==="("?"":m)+C,I=(x==="s"?Xg[8+w0/3]:"")+I+(te&&m==="("?")":""),W){for(N=-1,J=H.length;++Nne||ne>57){I=(ne===46?s+H.slice(N+1):H.slice(N))+I,H=H.slice(0,N);break}}}E&&!v&&(H=e(H,1/0));var B=C.length+H.length+I.length,ae=B<_?new Array(_-B+1).join(d):"";switch(E&&v&&(H=e(ae+H,ae.length?_-I.length:1/0),ae=""),p){case"<":H=C+H+I+ae;break;case"=":H=C+ae+H+I;break;case"^":H=ae.slice(0,B=ae.length>>1)+C+H+I+ae.slice(B);break;default:H=ae+C+H+I;break}return i(H)}return U.toString=function(){return f+""},U}function c(f,d){var p=u((f=Sl(f),f.type="f",f)),m=Math.max(-8,Math.min(8,Math.floor(ms(d)/3)))*3,b=Math.pow(10,-m),v=Xg[8+m/3];return function(_){return p(b*_)+v}}return{format:u,formatPrefix:c}}var la,_0,v0;AI({thousands:",",grouping:[3],currency:["$",""]});function AI(t){return la=xI(t),_0=la.format,v0=la.formatPrefix,la}function CI(t){return Math.max(0,-ms(Math.abs(t)))}function II(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ms(e)/3)))*3-ms(Math.abs(t)))}function MI(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ms(e)-ms(t))+1}function Vo(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}const Qg=Symbol("implicit");function E0(){var t=new Cg,e=[],r=[],n=Qg;function s(i){let a=t.get(i);if(a===void 0){if(n!==Qg)return n;t.set(i,a=e.push(i)-1)}return r[a%r.length]}return s.domain=function(i){if(!arguments.length)return e.slice();e=[],t=new Cg;for(const a of i)t.has(a)||t.set(a,e.push(a)-1);return s},s.range=function(i){return arguments.length?(r=Array.from(i),s):r.slice()},s.unknown=function(i){return arguments.length?(n=i,s):n},s.copy=function(){return E0(e,r).unknown(n)},Vo.apply(s,arguments),s}function OI(){var t=E0().unknown(void 0),e=t.domain,r=t.range,n=0,s=1,i,a,o=!1,l=0,u=0,c=.5;delete t.unknown;function f(){var d=e().length,p=se&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function LI(t,e,r){var n=t[0],s=t[1],i=e[0],a=e[1];return s2?NI:LI,l=u=null,f}function f(d){return d==null||isNaN(d=+d)?i:(l||(l=o(t.map(n),e,r)))(n(a(d)))}return f.invert=function(d){return a(s((u||(u=o(e,t.map(n),mr)))(d)))},f.domain=function(d){return arguments.length?(t=Array.from(d,kI),c()):t.slice()},f.range=function(d){return arguments.length?(e=Array.from(d),c()):e.slice()},f.rangeRound=function(d){return e=Array.from(d),r=XA,c()},f.clamp=function(d){return arguments.length?(a=d?!0:es,c()):a!==es},f.interpolate=function(d){return arguments.length?(r=d,c()):r},f.unknown=function(d){return arguments.length?(i=d,f):i},function(d,p){return n=d,s=p,c()}}function T0(){return DI()(es,es)}function BI(t,e,r,n){var s=xf(t,e,r),i;switch(n=Sl(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(i=II(s,a))&&(n.precision=i),v0(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=MI(s,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=CI(s))&&(n.precision=i-(n.type==="%")*2);break}}return _0(n)}function $I(t){var e=t.domain;return t.ticks=function(r){var n=e();return NT(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var s=e();return BI(s[0],s[s.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),s=0,i=n.length-1,a=n[s],o=n[i],l,u,c=10;for(o0;){if(u=Tf(a,o,r),u===l)return n[s]=a,n[i]=o,e(n);if(u>0)a=Math.floor(a/u)*u,o=Math.ceil(o/u)*u;else if(u<0)a=Math.ceil(a*u)/u,o=Math.floor(o*u)/u;else break;l=u}return t},t}function FI(){var t=T0();return t.copy=function(){return S0(t,FI())},Vo.apply(t,arguments),$I(t)}function UI(t,e){t=t.slice();var r=0,n=t.length-1,s=t[r],i=t[n],a;return i(t(i=new Date(+i)),i),s.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),s.round=i=>{const a=s(i),o=s.ceil(i);return i-a(e(i=new Date(+i),a==null?1:Math.floor(a)),i),s.range=(i,a,o)=>{const l=[];if(i=s.ceil(i),o=o==null?1:Math.floor(o),!(i0))return l;let u;do l.push(u=new Date(+i)),e(i,o),t(i);while(udt(a=>{if(a>=a)for(;t(a),!i(a);)a.setTime(a-1)},(a,o)=>{if(a>=a)if(o<0)for(;++o<=0;)for(;e(a,-1),!i(a););else for(;--o>=0;)for(;e(a,1),!i(a););}),r&&(s.count=(i,a)=>(Fu.setTime(+i),Uu.setTime(+a),t(Fu),t(Uu),Math.floor(r(Fu,Uu))),s.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?s.filter(n?a=>n(a)%i===0:a=>s.count(0,a)%i===0):s)),s}const Tl=dt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Tl.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?dt(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):Tl);Tl.range;const Qr=1e3,sr=Qr*60,Jr=sr*60,ln=Jr*24,Jh=ln*7,Zg=ln*30,ju=ln*365,ci=dt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Qr)},(t,e)=>(e-t)/Qr,t=>t.getUTCSeconds());ci.range;const Zh=dt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Qr)},(t,e)=>{t.setTime(+t+e*sr)},(t,e)=>(e-t)/sr,t=>t.getMinutes());Zh.range;const ep=dt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*sr)},(t,e)=>(e-t)/sr,t=>t.getUTCMinutes());ep.range;const tp=dt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Qr-t.getMinutes()*sr)},(t,e)=>{t.setTime(+t+e*Jr)},(t,e)=>(e-t)/Jr,t=>t.getHours());tp.range;const rp=dt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Jr)},(t,e)=>(e-t)/Jr,t=>t.getUTCHours());rp.range;const qo=dt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*sr)/ln,t=>t.getDate()-1);qo.range;const Zl=dt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/ln,t=>t.getUTCDate()-1);Zl.range;const x0=dt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/ln,t=>Math.floor(t/ln));x0.range;function Pi(t){return dt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*sr)/Jh)}const eu=Pi(0),xl=Pi(1),jI=Pi(2),WI=Pi(3),bs=Pi(4),HI=Pi(5),zI=Pi(6);eu.range;xl.range;jI.range;WI.range;bs.range;HI.range;zI.range;function ki(t){return dt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/Jh)}const tu=ki(0),Al=ki(1),VI=ki(2),qI=ki(3),ys=ki(4),YI=ki(5),GI=ki(6);tu.range;Al.range;VI.range;qI.range;ys.range;YI.range;GI.range;const np=dt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());np.range;const ip=dt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());ip.range;const un=dt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());un.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});un.range;const cn=dt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());cn.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});cn.range;function A0(t,e,r,n,s,i){const a=[[ci,1,Qr],[ci,5,5*Qr],[ci,15,15*Qr],[ci,30,30*Qr],[i,1,sr],[i,5,5*sr],[i,15,15*sr],[i,30,30*sr],[s,1,Jr],[s,3,3*Jr],[s,6,6*Jr],[s,12,12*Jr],[n,1,ln],[n,2,2*ln],[r,1,Jh],[e,1,Zg],[e,3,3*Zg],[t,1,ju]];function o(u,c,f){const d=cv).right(a,d);if(p===a.length)return t.every(xf(u/ju,c/ju,f));if(p===0)return Tl.every(Math.max(xf(u,c,f),1));const[m,b]=a[d/a[p-1][2]53)return null;"w"in M||(M.w=1),"Z"in M?(F=Hu(Vs(M.y,0,1)),R=F.getUTCDay(),F=R>4||R===0?Al.ceil(F):Al(F),F=Zl.offset(F,(M.V-1)*7),M.y=F.getUTCFullYear(),M.m=F.getUTCMonth(),M.d=F.getUTCDate()+(M.w+6)%7):(F=Wu(Vs(M.y,0,1)),R=F.getDay(),F=R>4||R===0?xl.ceil(F):xl(F),F=qo.offset(F,(M.V-1)*7),M.y=F.getFullYear(),M.m=F.getMonth(),M.d=F.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),R="Z"in M?Hu(Vs(M.y,0,1)).getUTCDay():Wu(Vs(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(R+5)%7:M.w+M.U*7-(R+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,Hu(M)):Wu(M)}}function L(X,le,se,M){for(var O=0,F=le.length,R=se.length,V,q;O=R)return-1;if(V=le.charCodeAt(O++),V===37){if(V=le.charAt(O++),q=x[V in em?le.charAt(O++):V],!q||(M=q(X,se,M))<0)return-1}else if(V!=se.charCodeAt(M++))return-1}return M}function W(X,le,se){var M=u.exec(le.slice(se));return M?(X.p=c.get(M[0].toLowerCase()),se+M[0].length):-1}function U(X,le,se){var M=p.exec(le.slice(se));return M?(X.w=m.get(M[0].toLowerCase()),se+M[0].length):-1}function H(X,le,se){var M=f.exec(le.slice(se));return M?(X.w=d.get(M[0].toLowerCase()),se+M[0].length):-1}function C(X,le,se){var M=_.exec(le.slice(se));return M?(X.m=E.get(M[0].toLowerCase()),se+M[0].length):-1}function I(X,le,se){var M=b.exec(le.slice(se));return M?(X.m=v.get(M[0].toLowerCase()),se+M[0].length):-1}function N(X,le,se){return L(X,e,le,se)}function J(X,le,se){return L(X,r,le,se)}function ne(X,le,se){return L(X,n,le,se)}function te(X){return a[X.getDay()]}function B(X){return i[X.getDay()]}function ae(X){return l[X.getMonth()]}function Y(X){return o[X.getMonth()]}function ce(X){return s[+(X.getHours()>=12)]}function $(X){return 1+~~(X.getMonth()/3)}function ue(X){return a[X.getUTCDay()]}function me(X){return i[X.getUTCDay()]}function ee(X){return l[X.getUTCMonth()]}function K(X){return o[X.getUTCMonth()]}function j(X){return s[+(X.getUTCHours()>=12)]}function D(X){return 1+~~(X.getUTCMonth()/3)}return{format:function(X){var le=A(X+="",y);return le.toString=function(){return X},le},parse:function(X){var le=P(X+="",!1);return le.toString=function(){return X},le},utcFormat:function(X){var le=A(X+="",T);return le.toString=function(){return X},le},utcParse:function(X){var le=P(X+="",!0);return le.toString=function(){return X},le}}}var em={"-":"",_:" ",0:"0"},gt=/^\s*\d+/,eM=/^%/,tM=/[\\^$*+?|[\]().{}]/g;function je(t,e,r){var n=t<0?"-":"",s=(n?-t:t)+"",i=s.length;return n+(i[e.toLowerCase(),r]))}function nM(t,e,r){var n=gt.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function iM(t,e,r){var n=gt.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function sM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function oM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function aM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function tm(t,e,r){var n=gt.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function rm(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function lM(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function uM(t,e,r){var n=gt.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function cM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function nm(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function fM(t,e,r){var n=gt.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function im(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function dM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function hM(t,e,r){var n=gt.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function pM(t,e,r){var n=gt.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function gM(t,e,r){var n=gt.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function mM(t,e,r){var n=eM.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function bM(t,e,r){var n=gt.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function yM(t,e,r){var n=gt.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function sm(t,e){return je(t.getDate(),e,2)}function wM(t,e){return je(t.getHours(),e,2)}function _M(t,e){return je(t.getHours()%12||12,e,2)}function vM(t,e){return je(1+qo.count(un(t),t),e,3)}function C0(t,e){return je(t.getMilliseconds(),e,3)}function EM(t,e){return C0(t,e)+"000"}function SM(t,e){return je(t.getMonth()+1,e,2)}function TM(t,e){return je(t.getMinutes(),e,2)}function xM(t,e){return je(t.getSeconds(),e,2)}function AM(t){var e=t.getDay();return e===0?7:e}function CM(t,e){return je(eu.count(un(t)-1,t),e,2)}function I0(t){var e=t.getDay();return e>=4||e===0?bs(t):bs.ceil(t)}function IM(t,e){return t=I0(t),je(bs.count(un(t),t)+(un(t).getDay()===4),e,2)}function MM(t){return t.getDay()}function OM(t,e){return je(xl.count(un(t)-1,t),e,2)}function PM(t,e){return je(t.getFullYear()%100,e,2)}function kM(t,e){return t=I0(t),je(t.getFullYear()%100,e,2)}function RM(t,e){return je(t.getFullYear()%1e4,e,4)}function LM(t,e){var r=t.getDay();return t=r>=4||r===0?bs(t):bs.ceil(t),je(t.getFullYear()%1e4,e,4)}function NM(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+je(e/60|0,"0",2)+je(e%60,"0",2)}function om(t,e){return je(t.getUTCDate(),e,2)}function DM(t,e){return je(t.getUTCHours(),e,2)}function BM(t,e){return je(t.getUTCHours()%12||12,e,2)}function $M(t,e){return je(1+Zl.count(cn(t),t),e,3)}function M0(t,e){return je(t.getUTCMilliseconds(),e,3)}function FM(t,e){return M0(t,e)+"000"}function UM(t,e){return je(t.getUTCMonth()+1,e,2)}function jM(t,e){return je(t.getUTCMinutes(),e,2)}function WM(t,e){return je(t.getUTCSeconds(),e,2)}function HM(t){var e=t.getUTCDay();return e===0?7:e}function zM(t,e){return je(tu.count(cn(t)-1,t),e,2)}function O0(t){var e=t.getUTCDay();return e>=4||e===0?ys(t):ys.ceil(t)}function VM(t,e){return t=O0(t),je(ys.count(cn(t),t)+(cn(t).getUTCDay()===4),e,2)}function qM(t){return t.getUTCDay()}function YM(t,e){return je(Al.count(cn(t)-1,t),e,2)}function GM(t,e){return je(t.getUTCFullYear()%100,e,2)}function KM(t,e){return t=O0(t),je(t.getUTCFullYear()%100,e,2)}function XM(t,e){return je(t.getUTCFullYear()%1e4,e,4)}function QM(t,e){var r=t.getUTCDay();return t=r>=4||r===0?ys(t):ys.ceil(t),je(t.getUTCFullYear()%1e4,e,4)}function JM(){return"+0000"}function am(){return"%"}function lm(t){return+t}function um(t){return Math.floor(+t/1e3)}var zi,P0,ZM,k0;eO({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function eO(t){return zi=ZI(t),P0=zi.format,ZM=zi.parse,k0=zi.utcFormat,zi.utcParse,zi}function tO(t){return new Date(t)}function rO(t){return t instanceof Date?+t:+new Date(+t)}function sp(t,e,r,n,s,i,a,o,l,u){var c=T0(),f=c.invert,d=c.domain,p=u(".%L"),m=u(":%S"),b=u("%I:%M"),v=u("%I %p"),_=u("%a %d"),E=u("%b %d"),y=u("%B"),T=u("%Y");function x(A){return(l(A)1?0:t<-1?No:Math.acos(t)}function fm(t){return t>=1?Cl:t<=-1?-Cl:Math.asin(t)}function op(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new yI(e)}function sO(t){return t.innerRadius}function oO(t){return t.outerRadius}function aO(t){return t.startAngle}function lO(t){return t.endAngle}function uO(t){return t&&t.padAngle}function cO(t,e,r,n,s,i,a,o){var l=r-t,u=n-e,c=a-s,f=o-i,d=f*l-c*u;if(!(d*dN*N+J*J&&(L=U,W=H),{cx:L,cy:W,x01:-c,y01:-f,x11:L*(s/x-1),y11:W*(s/x-1)}}function PF(){var t=sO,e=oO,r=Fe(0),n=null,s=aO,i=lO,a=uO,o=null,l=op(u);function u(){var c,f,d=+t.apply(this,arguments),p=+e.apply(this,arguments),m=s.apply(this,arguments)-Cl,b=i.apply(this,arguments)-Cl,v=cm(b-m),_=b>m;if(o||(o=c=l()),pBt))o.moveTo(0,0);else if(v>Va-Bt)o.moveTo(p*Qn(m),p*Tr(m)),o.arc(0,0,p,m,b,!_),d>Bt&&(o.moveTo(d*Qn(b),d*Tr(b)),o.arc(0,0,d,b,m,_));else{var E=m,y=b,T=m,x=b,A=v,P=v,L=a.apply(this,arguments)/2,W=L>Bt&&(n?+n.apply(this,arguments):ts(d*d+p*p)),U=zu(cm(p-d)/2,+r.apply(this,arguments)),H=U,C=U,I,N;if(W>Bt){var J=fm(W/d*Tr(L)),ne=fm(W/p*Tr(L));(A-=J*2)>Bt?(J*=_?1:-1,T+=J,x-=J):(A=0,T=x=(m+b)/2),(P-=ne*2)>Bt?(ne*=_?1:-1,E+=ne,y-=ne):(P=0,E=y=(m+b)/2)}var te=p*Qn(E),B=p*Tr(E),ae=d*Qn(x),Y=d*Tr(x);if(U>Bt){var ce=p*Qn(y),$=p*Tr(y),ue=d*Qn(T),me=d*Tr(T),ee;if(vBt?C>Bt?(I=ua(ue,me,te,B,p,C,_),N=ua(ce,$,ae,Y,p,C,_),o.moveTo(I.cx+I.x01,I.cy+I.y01),CBt)||!(A>Bt)?o.lineTo(ae,Y):H>Bt?(I=ua(ae,Y,ce,$,d,-H,_),N=ua(te,B,ue,me,d,-H,_),o.lineTo(I.cx+I.x01,I.cy+I.y01),H=p;--m)o.point(y[m],T[m]);o.lineEnd(),o.areaEnd()}_&&(y[d]=+t(v,d,f),T[d]=+e(v,d,f),o.point(n?+n(v,d,f):y[d],r?+r(v,d,f):T[d]))}if(E)return o=null,E+""||null}function c(){return fO().defined(s).curve(a).context(i)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Fe(+f),n=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Fe(+f),u):t},u.x1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Fe(+f),u):n},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Fe(+f),r=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Fe(+f),u):e},u.y1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Fe(+f),u):r},u.lineX0=u.lineY0=function(){return c().x(t).y(e)},u.lineY1=function(){return c().x(t).y(r)},u.lineX1=function(){return c().x(n).y(e)},u.defined=function(f){return arguments.length?(s=typeof f=="function"?f:Fe(!!f),u):s},u.curve=function(f){return arguments.length?(a=f,i!=null&&(o=a(i)),u):a},u.context=function(f){return arguments.length?(f==null?i=o=null:o=a(i=f),u):i},u}function dO(t,e){return et?1:e>=t?0:NaN}function hO(t){return t}function RF(){var t=hO,e=dO,r=null,n=Fe(0),s=Fe(Va),i=Fe(0);function a(o){var l,u=(o=ru(o)).length,c,f,d=0,p=new Array(u),m=new Array(u),b=+n.apply(this,arguments),v=Math.min(Va,Math.max(-Va,s.apply(this,arguments)-b)),_,E=Math.min(Math.abs(v)/u,i.apply(this,arguments)),y=E*(v<0?-1:1),T;for(l=0;l0&&(d+=T);for(e!=null?p.sort(function(x,A){return e(m[x],m[A])}):r!=null&&p.sort(function(x,A){return r(o[x],o[A])}),l=0,f=d?(v-u*y)/d:0;l0?T*f:0)+y,m[c]={data:o[c],index:l,value:T,startAngle:b,endAngle:_,padAngle:E};return m}return a.value=function(o){return arguments.length?(t=typeof o=="function"?o:Fe(+o),a):t},a.sortValues=function(o){return arguments.length?(e=o,r=null,a):e},a.sort=function(o){return arguments.length?(r=o,e=null,a):r},a.startAngle=function(o){return arguments.length?(n=typeof o=="function"?o:Fe(+o),a):n},a.endAngle=function(o){return arguments.length?(s=typeof o=="function"?o:Fe(+o),a):s},a.padAngle=function(o){return arguments.length?(i=typeof o=="function"?o:Fe(+o),a):i},a}class pO{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}}function LF(t){return new pO(t,!0)}function dm(t,e){if((a=t.length)>1)for(var r=1,n,s,i=t[e[0]],a,o=i.length;r=0;)r[e]=e;return r}function gO(t,e){return t[e]}function mO(t){const e=[];return e.key=t,e}function NF(){var t=Fe([]),e=hm,r=dm,n=gO;function s(i){var a=Array.from(t.apply(this,arguments),mO),o,l=a.length,u=-1,c;for(const f of i)for(o=0,++u;o()=>t;function bO(t,{sourceEvent:e,target:r,transform:n,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:n,enumerable:!0,configurable:!0},_:{value:s}})}function Zr(t,e,r){this.k=t,this.x=e,this.y=r}Zr.prototype={constructor:Zr,scale:function(t){return t===1?this:new Zr(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Zr(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var B0=new Zr(1,0,0);Zr.prototype;function Vu(t){t.stopImmediatePropagation()}function Gs(t){t.preventDefault(),t.stopImmediatePropagation()}function yO(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function wO(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function pm(){return this.__zoom||B0}function _O(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function vO(){return navigator.maxTouchPoints||"ontouchstart"in this}function EO(t,e,r){var n=t.invertX(e[0][0])-r[0][0],s=t.invertX(e[1][0])-r[1][0],i=t.invertY(e[0][1])-r[0][1],a=t.invertY(e[1][1])-r[1][1];return t.translate(s>n?(n+s)/2:Math.min(0,n)||Math.max(0,s),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function DF(){var t=yO,e=wO,r=EO,n=_O,s=vO,i=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],o=250,l=iC,u=Wh("start","zoom","end"),c,f,d,p=500,m=150,b=0,v=10;function _(N){N.property("__zoom",pm).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",W).on("dblclick.zoom",U).filter(s).on("touchstart.zoom",H).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",I).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}_.transform=function(N,J,ne,te){var B=N.selection?N.selection():N;B.property("__zoom",pm),N!==B?x(N,J,ne,te):B.interrupt().each(function(){A(this,arguments).event(te).start().zoom(null,typeof J=="function"?J.apply(this,arguments):J).end()})},_.scaleBy=function(N,J,ne,te){_.scaleTo(N,function(){var B=this.__zoom.k,ae=typeof J=="function"?J.apply(this,arguments):J;return B*ae},ne,te)},_.scaleTo=function(N,J,ne,te){_.transform(N,function(){var B=e.apply(this,arguments),ae=this.__zoom,Y=ne==null?T(B):typeof ne=="function"?ne.apply(this,arguments):ne,ce=ae.invert(Y),$=typeof J=="function"?J.apply(this,arguments):J;return r(y(E(ae,$),Y,ce),B,a)},ne,te)},_.translateBy=function(N,J,ne,te){_.transform(N,function(){return r(this.__zoom.translate(typeof J=="function"?J.apply(this,arguments):J,typeof ne=="function"?ne.apply(this,arguments):ne),e.apply(this,arguments),a)},null,te)},_.translateTo=function(N,J,ne,te,B){_.transform(N,function(){var ae=e.apply(this,arguments),Y=this.__zoom,ce=te==null?T(ae):typeof te=="function"?te.apply(this,arguments):te;return r(B0.translate(ce[0],ce[1]).scale(Y.k).translate(typeof J=="function"?-J.apply(this,arguments):-J,typeof ne=="function"?-ne.apply(this,arguments):-ne),ae,a)},te,B)};function E(N,J){return J=Math.max(i[0],Math.min(i[1],J)),J===N.k?N:new Zr(J,N.x,N.y)}function y(N,J,ne){var te=J[0]-ne[0]*N.k,B=J[1]-ne[1]*N.k;return te===N.x&&B===N.y?N:new Zr(N.k,te,B)}function T(N){return[(+N[0][0]+ +N[1][0])/2,(+N[0][1]+ +N[1][1])/2]}function x(N,J,ne,te){N.on("start.zoom",function(){A(this,arguments).event(te).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(te).end()}).tween("zoom",function(){var B=this,ae=arguments,Y=A(B,ae).event(te),ce=e.apply(B,ae),$=ne==null?T(ce):typeof ne=="function"?ne.apply(B,ae):ne,ue=Math.max(ce[1][0]-ce[0][0],ce[1][1]-ce[0][1]),me=B.__zoom,ee=typeof J=="function"?J.apply(B,ae):J,K=l(me.invert($).concat(ue/me.k),ee.invert($).concat(ue/ee.k));return function(j){if(j===1)j=ee;else{var D=K(j),X=ue/D[2];j=new Zr(X,$[0]-D[0]*X,$[1]-D[1]*X)}Y.zoom(null,j)}})}function A(N,J,ne){return!ne&&N.__zooming||new P(N,J)}function P(N,J){this.that=N,this.args=J,this.active=0,this.sourceEvent=null,this.extent=e.apply(N,J),this.taps=0}P.prototype={event:function(N){return N&&(this.sourceEvent=N),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(N,J){return this.mouse&&N!=="mouse"&&(this.mouse[1]=J.invert(this.mouse[0])),this.touch0&&N!=="touch"&&(this.touch0[1]=J.invert(this.touch0[0])),this.touch1&&N!=="touch"&&(this.touch1[1]=J.invert(this.touch1[0])),this.that.__zoom=J,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(N){var J=ai(this.that).datum();u.call(N,this.that,new bO(N,{sourceEvent:this.sourceEvent,target:_,type:N,transform:this.that.__zoom,dispatch:u}),J)}};function L(N,...J){if(!t.apply(this,arguments))return;var ne=A(this,J).event(N),te=this.__zoom,B=Math.max(i[0],Math.min(i[1],te.k*Math.pow(2,n.apply(this,arguments)))),ae=Xn(N);if(ne.wheel)(ne.mouse[0][0]!==ae[0]||ne.mouse[0][1]!==ae[1])&&(ne.mouse[1]=te.invert(ne.mouse[0]=ae)),clearTimeout(ne.wheel);else{if(te.k===B)return;ne.mouse=[ae,te.invert(ae)],za(this),ne.start()}Gs(N),ne.wheel=setTimeout(Y,m),ne.zoom("mouse",r(y(E(te,B),ne.mouse[0],ne.mouse[1]),ne.extent,a));function Y(){ne.wheel=null,ne.end()}}function W(N,...J){if(d||!t.apply(this,arguments))return;var ne=N.currentTarget,te=A(this,J,!0).event(N),B=ai(N.view).on("mousemove.zoom",$,!0).on("mouseup.zoom",ue,!0),ae=Xn(N,ne),Y=N.clientX,ce=N.clientY;AA(N.view),Vu(N),te.mouse=[ae,this.__zoom.invert(ae)],za(this),te.start();function $(me){if(Gs(me),!te.moved){var ee=me.clientX-Y,K=me.clientY-ce;te.moved=ee*ee+K*K>b}te.event(me).zoom("mouse",r(y(te.that.__zoom,te.mouse[0]=Xn(me,ne),te.mouse[1]),te.extent,a))}function ue(me){B.on("mousemove.zoom mouseup.zoom",null),CA(me.view,te.moved),Gs(me),te.event(me).end()}}function U(N,...J){if(t.apply(this,arguments)){var ne=this.__zoom,te=Xn(N.changedTouches?N.changedTouches[0]:N,this),B=ne.invert(te),ae=ne.k*(N.shiftKey?.5:2),Y=r(y(E(ne,ae),te,B),e.apply(this,J),a);Gs(N),o>0?ai(this).transition().duration(o).call(x,Y,te,N):ai(this).call(_.transform,Y,te,N)}}function H(N,...J){if(t.apply(this,arguments)){var ne=N.touches,te=ne.length,B=A(this,J,N.changedTouches.length===te).event(N),ae,Y,ce,$;for(Vu(N),Y=0;Y()=>(t&&(e=t(t=0)),e),Te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ri=(t,e)=>{for(var r in e)ap(t,r,{get:e[r],enumerable:!0})},AO=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of TO(e))!xO.call(t,s)&&s!==r&&ap(t,s,{get:()=>e[s],enumerable:!(n=SO(e,s))||n.enumerable});return t},Ke=t=>AO(ap({},"__esModule",{value:!0}),t),we=wt(()=>{}),ze={};Ri(ze,{_debugEnd:()=>bd,_debugProcess:()=>md,_events:()=>kd,_eventsCount:()=>Rd,_exiting:()=>rd,_fatalExceptions:()=>hd,_getActiveHandles:()=>z0,_getActiveRequests:()=>H0,_kill:()=>sd,_linkedBinding:()=>j0,_maxListeners:()=>Pd,_preload_modules:()=>Md,_rawDebug:()=>Zf,_startProfilerIdleNotifier:()=>yd,_stopProfilerIdleNotifier:()=>wd,_tickCallback:()=>gd,abort:()=>Sd,addListener:()=>Ld,allowedNodeEnvironmentFlags:()=>fd,arch:()=>Uf,argv:()=>Hf,argv0:()=>Id,assert:()=>V0,binding:()=>Gf,chdir:()=>Qf,config:()=>nd,cpuUsage:()=>uo,cwd:()=>Xf,debugPort:()=>Cd,default:()=>up,dlopen:()=>W0,domain:()=>td,emit:()=>Fd,emitWarning:()=>Yf,env:()=>Wf,execArgv:()=>zf,execPath:()=>Ad,exit:()=>ud,features:()=>dd,hasUncaughtExceptionCaptureCallback:()=>q0,hrtime:()=>qa,kill:()=>ld,listeners:()=>G0,memoryUsage:()=>ad,moduleLoadList:()=>ed,nextTick:()=>F0,off:()=>Dd,on:()=>Wr,once:()=>Nd,openStdin:()=>cd,pid:()=>Td,platform:()=>jf,ppid:()=>xd,prependListener:()=>Ud,prependOnceListener:()=>jd,reallyExit:()=>id,release:()=>Jf,removeAllListeners:()=>$d,removeListener:()=>Bd,resourceUsage:()=>od,setSourceMapsEnabled:()=>Od,setUncaughtExceptionCaptureCallback:()=>pd,stderr:()=>vd,stdin:()=>Ed,stdout:()=>_d,title:()=>Ff,umask:()=>Kf,uptime:()=>Y0,version:()=>Vf,versions:()=>qf});function lp(t){throw new Error("Node.js process "+t+" is not supported by JSPM core outside of Node.js")}function CO(){!yi||!fi||(yi=!1,fi.length?Mr=fi.concat(Mr):vo=-1,Mr.length&&$0())}function $0(){if(!yi){var t=setTimeout(CO,0);yi=!0;for(var e=Mr.length;e;){for(fi=Mr,Mr=[];++vo1)for(var r=1;r{we(),ve(),_e(),Mr=[],yi=!1,vo=-1,U0.prototype.run=function(){this.fun.apply(null,this.array)},Ff="browser",Uf="x64",jf="browser",Wf={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Hf=["/usr/bin/node"],zf=[],Vf="v16.8.0",qf={},Yf=function(t,e){console.warn((e?e+": ":"")+t)},Gf=function(t){lp("binding")},Kf=function(t){return 0},Xf=function(){return"/"},Qf=function(t){},Jf={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},Zf=Tt,ed=[],td={},rd=!1,nd={},id=Tt,sd=Tt,uo=function(){return{}},od=uo,ad=uo,ld=Tt,ud=Tt,cd=Tt,fd={},dd={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},hd=Tt,pd=Tt,gd=Tt,md=Tt,bd=Tt,yd=Tt,wd=Tt,_d=void 0,vd=void 0,Ed=void 0,Sd=Tt,Td=2,xd=1,Ad="/bin/usr/node",Cd=9229,Id="node",Md=[],Od=Tt,Yr={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Yr.now===void 0&&(qu=Date.now(),Yr.timing&&Yr.timing.navigationStart&&(qu=Yr.timing.navigationStart),Yr.now=()=>Date.now()-qu),Ya=1e9,qa.bigint=function(t){var e=qa(t);return typeof BigInt>"u"?e[0]*Ya+e[1]:BigInt(e[0]*Ya)+BigInt(e[1])},Pd=10,kd={},Rd=0,Ld=Wr,Nd=Wr,Dd=Wr,Bd=Wr,$d=Wr,Fd=Tt,Ud=Wr,jd=Wr,up={version:Vf,versions:qf,arch:Uf,platform:jf,release:Jf,_rawDebug:Zf,moduleLoadList:ed,binding:Gf,_linkedBinding:j0,_events:kd,_eventsCount:Rd,_maxListeners:Pd,on:Wr,addListener:Ld,once:Nd,off:Dd,removeListener:Bd,removeAllListeners:$d,emit:Fd,prependListener:Ud,prependOnceListener:jd,listeners:G0,domain:td,_exiting:rd,config:nd,dlopen:W0,uptime:Y0,_getActiveRequests:H0,_getActiveHandles:z0,reallyExit:id,_kill:sd,cpuUsage:uo,resourceUsage:od,memoryUsage:ad,kill:ld,exit:ud,openStdin:cd,allowedNodeEnvironmentFlags:fd,assert:V0,features:dd,_fatalExceptions:hd,setUncaughtExceptionCaptureCallback:pd,hasUncaughtExceptionCaptureCallback:q0,emitWarning:Yf,nextTick:F0,_tickCallback:gd,_debugProcess:md,_debugEnd:bd,_startProfilerIdleNotifier:yd,_stopProfilerIdleNotifier:wd,stdout:_d,stdin:Ed,stderr:vd,abort:Sd,umask:Kf,chdir:Qf,cwd:Xf,env:Wf,title:Ff,argv:Hf,execArgv:zf,pid:Td,ppid:xd,execPath:Ad,debugPort:Cd,hrtime:qa,argv0:Id,_preload_modules:Md,setSourceMapsEnabled:Od}}),_e=wt(()=>{IO()}),_t={};Ri(_t,{Buffer:()=>Il,INSPECT_MAX_BYTES:()=>K0,default:()=>Hr,kMaxLength:()=>X0});function MO(){if(Wd)return Ki;Wd=!0,Ki.byteLength=o,Ki.toByteArray=u,Ki.fromByteArray=d;for(var t=[],e=[],r=typeof Uint8Array<"u"?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,i=n.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var b=p.indexOf("=");b===-1&&(b=m);var v=b===m?0:4-b%4;return[b,v]}function o(p){var m=a(p),b=m[0],v=m[1];return(b+v)*3/4-v}function l(p,m,b){return(m+b)*3/4-b}function u(p){var m,b=a(p),v=b[0],_=b[1],E=new r(l(p,v,_)),y=0,T=_>0?v-4:v,x;for(x=0;x>16&255,E[y++]=m>>8&255,E[y++]=m&255;return _===2&&(m=e[p.charCodeAt(x)]<<2|e[p.charCodeAt(x+1)]>>4,E[y++]=m&255),_===1&&(m=e[p.charCodeAt(x)]<<10|e[p.charCodeAt(x+1)]<<4|e[p.charCodeAt(x+2)]>>2,E[y++]=m>>8&255,E[y++]=m&255),E}function c(p){return t[p>>18&63]+t[p>>12&63]+t[p>>6&63]+t[p&63]}function f(p,m,b){for(var v,_=[],E=m;ET?T:y+E));return v===1?(m=p[b-1],_.push(t[m>>2]+t[m<<4&63]+"==")):v===2&&(m=(p[b-2]<<8)+p[b-1],_.push(t[m>>10]+t[m>>4&63]+t[m<<2&63]+"=")),_.join("")}return Ki}function OO(){return Hd?co:(Hd=!0,co.read=function(t,e,r,n,s){var i,a,o=s*8-n-1,l=(1<>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=i*256+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:(p?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-u}return(p?-1:1)*a*Math.pow(2,i-n)},co.write=function(t,e,r,n,s,i){var a,o,l,u=i*8-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,m=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=o&255,p+=m,o/=256,s-=8);for(a=a<0;t[r+p]=a&255,p+=m,a/=256,u-=8);t[r+p-m]|=b*128},co)}function PO(){if(zd)return Sn;zd=!0;let t=MO(),e=OO(),r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Sn.Buffer=a,Sn.SlowBuffer=_,Sn.INSPECT_MAX_BYTES=50;let n=2147483647;Sn.kMaxLength=n,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{let S=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(S,g),S.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function i(S){if(S>n)throw new RangeError('The value "'+S+'" is invalid for option "size"');let g=new Uint8Array(S);return Object.setPrototypeOf(g,a.prototype),g}function a(S,g,h){if(typeof S=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(S)}return o(S,g,h)}a.poolSize=8192;function o(S,g,h){if(typeof S=="string")return f(S,g);if(ArrayBuffer.isView(S))return p(S);if(S==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof S);if(re(S,ArrayBuffer)||S&&re(S.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(re(S,SharedArrayBuffer)||S&&re(S.buffer,SharedArrayBuffer)))return m(S,g,h);if(typeof S=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let w=S.valueOf&&S.valueOf();if(w!=null&&w!==S)return a.from(w,g,h);let k=b(S);if(k)return k;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof S[Symbol.toPrimitive]=="function")return a.from(S[Symbol.toPrimitive]("string"),g,h);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof S)}a.from=function(S,g,h){return o(S,g,h)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(S){if(typeof S!="number")throw new TypeError('"size" argument must be of type number');if(S<0)throw new RangeError('The value "'+S+'" is invalid for option "size"')}function u(S,g,h){return l(S),S<=0?i(S):g!==void 0?typeof h=="string"?i(S).fill(g,h):i(S).fill(g):i(S)}a.alloc=function(S,g,h){return u(S,g,h)};function c(S){return l(S),i(S<0?0:v(S)|0)}a.allocUnsafe=function(S){return c(S)},a.allocUnsafeSlow=function(S){return c(S)};function f(S,g){if((typeof g!="string"||g==="")&&(g="utf8"),!a.isEncoding(g))throw new TypeError("Unknown encoding: "+g);let h=E(S,g)|0,w=i(h),k=w.write(S,g);return k!==h&&(w=w.slice(0,k)),w}function d(S){let g=S.length<0?0:v(S.length)|0,h=i(g);for(let w=0;w=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return S|0}function _(S){return+S!=S&&(S=0),a.alloc(+S)}a.isBuffer=function(S){return S!=null&&S._isBuffer===!0&&S!==a.prototype},a.compare=function(S,g){if(re(S,Uint8Array)&&(S=a.from(S,S.offset,S.byteLength)),re(g,Uint8Array)&&(g=a.from(g,g.offset,g.byteLength)),!a.isBuffer(S)||!a.isBuffer(g))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(S===g)return 0;let h=S.length,w=g.length;for(let k=0,Z=Math.min(h,w);kw.length?(a.isBuffer(Z)||(Z=a.from(Z)),Z.copy(w,k)):Uint8Array.prototype.set.call(w,Z,k);else if(a.isBuffer(Z))Z.copy(w,k);else throw new TypeError('"list" argument must be an Array of Buffers');k+=Z.length}return w};function E(S,g){if(a.isBuffer(S))return S.length;if(ArrayBuffer.isView(S)||re(S,ArrayBuffer))return S.byteLength;if(typeof S!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof S);let h=S.length,w=arguments.length>2&&arguments[2]===!0;if(!w&&h===0)return 0;let k=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return h;case"utf8":case"utf-8":return V(S).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return h*2;case"hex":return h>>>1;case"base64":return Q(S).length;default:if(k)return w?-1:V(S).length;g=(""+g).toLowerCase(),k=!0}}a.byteLength=E;function y(S,g,h){let w=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((h===void 0||h>this.length)&&(h=this.length),h<=0)||(h>>>=0,g>>>=0,h<=g))return"";for(S||(S="utf8");;)switch(S){case"hex":return B(this,g,h);case"utf8":case"utf-8":return I(this,g,h);case"ascii":return ne(this,g,h);case"latin1":case"binary":return te(this,g,h);case"base64":return C(this,g,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ae(this,g,h);default:if(w)throw new TypeError("Unknown encoding: "+S);S=(S+"").toLowerCase(),w=!0}}a.prototype._isBuffer=!0;function T(S,g,h){let w=S[g];S[g]=S[h],S[h]=w}a.prototype.swap16=function(){let S=this.length;if(S%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let g=0;gg&&(S+=" ... "),""},r&&(a.prototype[r]=a.prototype.inspect),a.prototype.compare=function(S,g,h,w,k){if(re(S,Uint8Array)&&(S=a.from(S,S.offset,S.byteLength)),!a.isBuffer(S))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof S);if(g===void 0&&(g=0),h===void 0&&(h=S?S.length:0),w===void 0&&(w=0),k===void 0&&(k=this.length),g<0||h>S.length||w<0||k>this.length)throw new RangeError("out of range index");if(w>=k&&g>=h)return 0;if(w>=k)return-1;if(g>=h)return 1;if(g>>>=0,h>>>=0,w>>>=0,k>>>=0,this===S)return 0;let Z=k-w,de=h-g,ye=Math.min(Z,de),Ae=this.slice(w,k),Me=S.slice(g,h);for(let xe=0;xe2147483647?h=2147483647:h<-2147483648&&(h=-2147483648),h=+h,z(h)&&(h=k?0:S.length-1),h<0&&(h=S.length+h),h>=S.length){if(k)return-1;h=S.length-1}else if(h<0)if(k)h=0;else return-1;if(typeof g=="string"&&(g=a.from(g,w)),a.isBuffer(g))return g.length===0?-1:A(S,g,h,w,k);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?k?Uint8Array.prototype.indexOf.call(S,g,h):Uint8Array.prototype.lastIndexOf.call(S,g,h):A(S,[g],h,w,k);throw new TypeError("val must be string, number or Buffer")}function A(S,g,h,w,k){let Z=1,de=S.length,ye=g.length;if(w!==void 0&&(w=String(w).toLowerCase(),w==="ucs2"||w==="ucs-2"||w==="utf16le"||w==="utf-16le")){if(S.length<2||g.length<2)return-1;Z=2,de/=2,ye/=2,h/=2}function Ae(xe,Pe){return Z===1?xe[Pe]:xe.readUInt16BE(Pe*Z)}let Me;if(k){let xe=-1;for(Me=h;Mede&&(h=de-ye),Me=h;Me>=0;Me--){let xe=!0;for(let Pe=0;Pek&&(w=k)):w=k;let Z=g.length;w>Z/2&&(w=Z/2);let de;for(de=0;de>>0,isFinite(h)?(h=h>>>0,w===void 0&&(w="utf8")):(w=h,h=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let k=this.length-g;if((h===void 0||h>k)&&(h=k),S.length>0&&(h<0||g<0)||g>this.length)throw new RangeError("Attempt to write outside buffer bounds");w||(w="utf8");let Z=!1;for(;;)switch(w){case"hex":return P(this,S,g,h);case"utf8":case"utf-8":return L(this,S,g,h);case"ascii":case"latin1":case"binary":return W(this,S,g,h);case"base64":return U(this,S,g,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,S,g,h);default:if(Z)throw new TypeError("Unknown encoding: "+w);w=(""+w).toLowerCase(),Z=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function C(S,g,h){return g===0&&h===S.length?t.fromByteArray(S):t.fromByteArray(S.slice(g,h))}function I(S,g,h){h=Math.min(S.length,h);let w=[],k=g;for(;k239?4:Z>223?3:Z>191?2:1;if(k+ye<=h){let Ae,Me,xe,Pe;switch(ye){case 1:Z<128&&(de=Z);break;case 2:Ae=S[k+1],(Ae&192)===128&&(Pe=(Z&31)<<6|Ae&63,Pe>127&&(de=Pe));break;case 3:Ae=S[k+1],Me=S[k+2],(Ae&192)===128&&(Me&192)===128&&(Pe=(Z&15)<<12|(Ae&63)<<6|Me&63,Pe>2047&&(Pe<55296||Pe>57343)&&(de=Pe));break;case 4:Ae=S[k+1],Me=S[k+2],xe=S[k+3],(Ae&192)===128&&(Me&192)===128&&(xe&192)===128&&(Pe=(Z&15)<<18|(Ae&63)<<12|(Me&63)<<6|xe&63,Pe>65535&&Pe<1114112&&(de=Pe))}}de===null?(de=65533,ye=1):de>65535&&(de-=65536,w.push(de>>>10&1023|55296),de=56320|de&1023),w.push(de),k+=ye}return J(w)}let N=4096;function J(S){let g=S.length;if(g<=N)return String.fromCharCode.apply(String,S);let h="",w=0;for(;ww)&&(h=w);let k="";for(let Z=g;Zh&&(S=h),g<0?(g+=h,g<0&&(g=0)):g>h&&(g=h),gh)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(S,g,h){S=S>>>0,g=g>>>0,h||Y(S,g,this.length);let w=this[S],k=1,Z=0;for(;++Z>>0,g=g>>>0,h||Y(S,g,this.length);let w=this[S+--g],k=1;for(;g>0&&(k*=256);)w+=this[S+--g]*k;return w},a.prototype.readUint8=a.prototype.readUInt8=function(S,g){return S=S>>>0,g||Y(S,1,this.length),this[S]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(S,g){return S=S>>>0,g||Y(S,2,this.length),this[S]|this[S+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(S,g){return S=S>>>0,g||Y(S,2,this.length),this[S]<<8|this[S+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(S,g){return S=S>>>0,g||Y(S,4,this.length),(this[S]|this[S+1]<<8|this[S+2]<<16)+this[S+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(S,g){return S=S>>>0,g||Y(S,4,this.length),this[S]*16777216+(this[S+1]<<16|this[S+2]<<8|this[S+3])},a.prototype.readBigUInt64LE=he(function(S){S=S>>>0,M(S,"offset");let g=this[S],h=this[S+7];(g===void 0||h===void 0)&&O(S,this.length-8);let w=g+this[++S]*2**8+this[++S]*2**16+this[++S]*2**24,k=this[++S]+this[++S]*2**8+this[++S]*2**16+h*2**24;return BigInt(w)+(BigInt(k)<>>0,M(S,"offset");let g=this[S],h=this[S+7];(g===void 0||h===void 0)&&O(S,this.length-8);let w=g*2**24+this[++S]*2**16+this[++S]*2**8+this[++S],k=this[++S]*2**24+this[++S]*2**16+this[++S]*2**8+h;return(BigInt(w)<>>0,g=g>>>0,h||Y(S,g,this.length);let w=this[S],k=1,Z=0;for(;++Z=k&&(w-=Math.pow(2,8*g)),w},a.prototype.readIntBE=function(S,g,h){S=S>>>0,g=g>>>0,h||Y(S,g,this.length);let w=g,k=1,Z=this[S+--w];for(;w>0&&(k*=256);)Z+=this[S+--w]*k;return k*=128,Z>=k&&(Z-=Math.pow(2,8*g)),Z},a.prototype.readInt8=function(S,g){return S=S>>>0,g||Y(S,1,this.length),this[S]&128?(255-this[S]+1)*-1:this[S]},a.prototype.readInt16LE=function(S,g){S=S>>>0,g||Y(S,2,this.length);let h=this[S]|this[S+1]<<8;return h&32768?h|4294901760:h},a.prototype.readInt16BE=function(S,g){S=S>>>0,g||Y(S,2,this.length);let h=this[S+1]|this[S]<<8;return h&32768?h|4294901760:h},a.prototype.readInt32LE=function(S,g){return S=S>>>0,g||Y(S,4,this.length),this[S]|this[S+1]<<8|this[S+2]<<16|this[S+3]<<24},a.prototype.readInt32BE=function(S,g){return S=S>>>0,g||Y(S,4,this.length),this[S]<<24|this[S+1]<<16|this[S+2]<<8|this[S+3]},a.prototype.readBigInt64LE=he(function(S){S=S>>>0,M(S,"offset");let g=this[S],h=this[S+7];(g===void 0||h===void 0)&&O(S,this.length-8);let w=this[S+4]+this[S+5]*2**8+this[S+6]*2**16+(h<<24);return(BigInt(w)<>>0,M(S,"offset");let g=this[S],h=this[S+7];(g===void 0||h===void 0)&&O(S,this.length-8);let w=(g<<24)+this[++S]*2**16+this[++S]*2**8+this[++S];return(BigInt(w)<>>0,g||Y(S,4,this.length),e.read(this,S,!0,23,4)},a.prototype.readFloatBE=function(S,g){return S=S>>>0,g||Y(S,4,this.length),e.read(this,S,!1,23,4)},a.prototype.readDoubleLE=function(S,g){return S=S>>>0,g||Y(S,8,this.length),e.read(this,S,!0,52,8)},a.prototype.readDoubleBE=function(S,g){return S=S>>>0,g||Y(S,8,this.length),e.read(this,S,!1,52,8)};function ce(S,g,h,w,k,Z){if(!a.isBuffer(S))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>k||gS.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(S,g,h,w){if(S=+S,g=g>>>0,h=h>>>0,!w){let de=Math.pow(2,8*h)-1;ce(this,S,g,h,de,0)}let k=1,Z=0;for(this[g]=S&255;++Z>>0,h=h>>>0,!w){let de=Math.pow(2,8*h)-1;ce(this,S,g,h,de,0)}let k=h-1,Z=1;for(this[g+k]=S&255;--k>=0&&(Z*=256);)this[g+k]=S/Z&255;return g+h},a.prototype.writeUint8=a.prototype.writeUInt8=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,1,255,0),this[g]=S&255,g+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,2,65535,0),this[g]=S&255,this[g+1]=S>>>8,g+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,2,65535,0),this[g]=S>>>8,this[g+1]=S&255,g+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,4,4294967295,0),this[g+3]=S>>>24,this[g+2]=S>>>16,this[g+1]=S>>>8,this[g]=S&255,g+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,4,4294967295,0),this[g]=S>>>24,this[g+1]=S>>>16,this[g+2]=S>>>8,this[g+3]=S&255,g+4};function $(S,g,h,w,k){se(g,w,k,S,h,7);let Z=Number(g&BigInt(4294967295));S[h++]=Z,Z=Z>>8,S[h++]=Z,Z=Z>>8,S[h++]=Z,Z=Z>>8,S[h++]=Z;let de=Number(g>>BigInt(32)&BigInt(4294967295));return S[h++]=de,de=de>>8,S[h++]=de,de=de>>8,S[h++]=de,de=de>>8,S[h++]=de,h}function ue(S,g,h,w,k){se(g,w,k,S,h,7);let Z=Number(g&BigInt(4294967295));S[h+7]=Z,Z=Z>>8,S[h+6]=Z,Z=Z>>8,S[h+5]=Z,Z=Z>>8,S[h+4]=Z;let de=Number(g>>BigInt(32)&BigInt(4294967295));return S[h+3]=de,de=de>>8,S[h+2]=de,de=de>>8,S[h+1]=de,de=de>>8,S[h]=de,h+8}a.prototype.writeBigUInt64LE=he(function(S,g=0){return $(this,S,g,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=he(function(S,g=0){return ue(this,S,g,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(S,g,h,w){if(S=+S,g=g>>>0,!w){let ye=Math.pow(2,8*h-1);ce(this,S,g,h,ye-1,-ye)}let k=0,Z=1,de=0;for(this[g]=S&255;++k>0)-de&255;return g+h},a.prototype.writeIntBE=function(S,g,h,w){if(S=+S,g=g>>>0,!w){let ye=Math.pow(2,8*h-1);ce(this,S,g,h,ye-1,-ye)}let k=h-1,Z=1,de=0;for(this[g+k]=S&255;--k>=0&&(Z*=256);)S<0&&de===0&&this[g+k+1]!==0&&(de=1),this[g+k]=(S/Z>>0)-de&255;return g+h},a.prototype.writeInt8=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,1,127,-128),S<0&&(S=255+S+1),this[g]=S&255,g+1},a.prototype.writeInt16LE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,2,32767,-32768),this[g]=S&255,this[g+1]=S>>>8,g+2},a.prototype.writeInt16BE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,2,32767,-32768),this[g]=S>>>8,this[g+1]=S&255,g+2},a.prototype.writeInt32LE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,4,2147483647,-2147483648),this[g]=S&255,this[g+1]=S>>>8,this[g+2]=S>>>16,this[g+3]=S>>>24,g+4},a.prototype.writeInt32BE=function(S,g,h){return S=+S,g=g>>>0,h||ce(this,S,g,4,2147483647,-2147483648),S<0&&(S=4294967295+S+1),this[g]=S>>>24,this[g+1]=S>>>16,this[g+2]=S>>>8,this[g+3]=S&255,g+4},a.prototype.writeBigInt64LE=he(function(S,g=0){return $(this,S,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=he(function(S,g=0){return ue(this,S,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function me(S,g,h,w,k,Z){if(h+w>S.length)throw new RangeError("Index out of range");if(h<0)throw new RangeError("Index out of range")}function ee(S,g,h,w,k){return g=+g,h=h>>>0,k||me(S,g,h,4),e.write(S,g,h,w,23,4),h+4}a.prototype.writeFloatLE=function(S,g,h){return ee(this,S,g,!0,h)},a.prototype.writeFloatBE=function(S,g,h){return ee(this,S,g,!1,h)};function K(S,g,h,w,k){return g=+g,h=h>>>0,k||me(S,g,h,8),e.write(S,g,h,w,52,8),h+8}a.prototype.writeDoubleLE=function(S,g,h){return K(this,S,g,!0,h)},a.prototype.writeDoubleBE=function(S,g,h){return K(this,S,g,!1,h)},a.prototype.copy=function(S,g,h,w){if(!a.isBuffer(S))throw new TypeError("argument should be a Buffer");if(h||(h=0),!w&&w!==0&&(w=this.length),g>=S.length&&(g=S.length),g||(g=0),w>0&&w=this.length)throw new RangeError("Index out of range");if(w<0)throw new RangeError("sourceEnd out of bounds");w>this.length&&(w=this.length),S.length-g>>0,h=h===void 0?this.length:h>>>0,S||(S=0);let k;if(typeof S=="number")for(k=g;k2**32?k=X(String(h)):typeof h=="bigint"&&(k=String(h),(h>BigInt(2)**BigInt(32)||h<-(BigInt(2)**BigInt(32)))&&(k=X(k)),k+="n"),w+=` It must be ${g}. Received ${k}`,w},RangeError);function X(S){let g="",h=S.length,w=S[0]==="-"?1:0;for(;h>=w+4;h-=3)g=`_${S.slice(h-3,h)}${g}`;return`${S.slice(0,h)}${g}`}function le(S,g,h){M(g,"offset"),(S[g]===void 0||S[g+h]===void 0)&&O(g,S.length-(h+1))}function se(S,g,h,w,k,Z){if(S>h||S= 0${de} and < 2${de} ** ${(Z+1)*8}${de}`:ye=`>= -(2${de} ** ${(Z+1)*8-1}${de}) and < 2 ** ${(Z+1)*8-1}${de}`,new j.ERR_OUT_OF_RANGE("value",ye,S)}le(w,k,Z)}function M(S,g){if(typeof S!="number")throw new j.ERR_INVALID_ARG_TYPE(g,"number",S)}function O(S,g,h){throw Math.floor(S)!==S?(M(S,h),new j.ERR_OUT_OF_RANGE("offset","an integer",S)):g<0?new j.ERR_BUFFER_OUT_OF_BOUNDS:new j.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${g}`,S)}let F=/[^+/0-9A-Za-z-_]/g;function R(S){if(S=S.split("=")[0],S=S.trim().replace(F,""),S.length<2)return"";for(;S.length%4!==0;)S=S+"=";return S}function V(S,g){g=g||1/0;let h,w=S.length,k=null,Z=[];for(let de=0;de55295&&h<57344){if(!k){if(h>56319){(g-=3)>-1&&Z.push(239,191,189);continue}else if(de+1===w){(g-=3)>-1&&Z.push(239,191,189);continue}k=h;continue}if(h<56320){(g-=3)>-1&&Z.push(239,191,189),k=h;continue}h=(k-55296<<10|h-56320)+65536}else k&&(g-=3)>-1&&Z.push(239,191,189);if(k=null,h<128){if((g-=1)<0)break;Z.push(h)}else if(h<2048){if((g-=2)<0)break;Z.push(h>>6|192,h&63|128)}else if(h<65536){if((g-=3)<0)break;Z.push(h>>12|224,h>>6&63|128,h&63|128)}else if(h<1114112){if((g-=4)<0)break;Z.push(h>>18|240,h>>12&63|128,h>>6&63|128,h&63|128)}else throw new Error("Invalid code point")}return Z}function q(S){let g=[];for(let h=0;h>8,k=h%256,Z.push(k),Z.push(w);return Z}function Q(S){return t.toByteArray(R(S))}function G(S,g,h,w){let k;for(k=0;k=g.length||k>=S.length);++k)g[k+h]=S[k];return k}function re(S,g){return S instanceof g||S!=null&&S.constructor!=null&&S.constructor.name!=null&&S.constructor.name===g.name}function z(S){return S!==S}let ie=function(){let S="0123456789abcdef",g=new Array(256);for(let h=0;h<16;++h){let w=h*16;for(let k=0;k<16;++k)g[w+k]=S[h]+S[k]}return g}();function he(S){return typeof BigInt>"u"?be:S}function be(){throw new Error("BigInt not supported")}return Sn}var Ki,Wd,co,Hd,Sn,zd,Hr,Il,K0,X0,vt=wt(()=>{we(),ve(),_e(),Ki={},Wd=!1,co={},Hd=!1,Sn={},zd=!1,Hr=PO(),Hr.Buffer,Hr.SlowBuffer,Hr.INSPECT_MAX_BYTES,Hr.kMaxLength,Il=Hr.Buffer,K0=Hr.INSPECT_MAX_BYTES,X0=Hr.kMaxLength}),ve=wt(()=>{vt()}),kO=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=class{constructor(r){this.aliasToTopic={},this.max=r}put(r,n){return n===0||n>this.max?!1:(this.aliasToTopic[n]=r,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(r){return this.aliasToTopic[r]}clear(){this.aliasToTopic={}}};t.default=e}),ft=Te((t,e)=>{we(),ve(),_e(),e.exports={ArrayIsArray(r){return Array.isArray(r)},ArrayPrototypeIncludes(r,n){return r.includes(n)},ArrayPrototypeIndexOf(r,n){return r.indexOf(n)},ArrayPrototypeJoin(r,n){return r.join(n)},ArrayPrototypeMap(r,n){return r.map(n)},ArrayPrototypePop(r,n){return r.pop(n)},ArrayPrototypePush(r,n){return r.push(n)},ArrayPrototypeSlice(r,n,s){return r.slice(n,s)},Error,FunctionPrototypeCall(r,n,...s){return r.call(n,...s)},FunctionPrototypeSymbolHasInstance(r,n){return Function.prototype[Symbol.hasInstance].call(r,n)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(r,n){return Object.defineProperties(r,n)},ObjectDefineProperty(r,n,s){return Object.defineProperty(r,n,s)},ObjectGetOwnPropertyDescriptor(r,n){return Object.getOwnPropertyDescriptor(r,n)},ObjectKeys(r){return Object.keys(r)},ObjectSetPrototypeOf(r,n){return Object.setPrototypeOf(r,n)},Promise,PromisePrototypeCatch(r,n){return r.catch(n)},PromisePrototypeThen(r,n,s){return r.then(n,s)},PromiseReject(r){return Promise.reject(r)},ReflectApply:Reflect.apply,RegExpPrototypeTest(r,n){return r.test(n)},SafeSet:Set,String,StringPrototypeSlice(r,n,s){return r.slice(n,s)},StringPrototypeToLowerCase(r){return r.toLowerCase()},StringPrototypeToUpperCase(r){return r.toUpperCase()},StringPrototypeTrim(r){return r.trim()},Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(r,n,s){return r.set(n,s)},Uint8Array}}),fn=Te((t,e)=>{we(),ve(),_e();var r=(vt(),Ke(_t)),n=Object.getPrototypeOf(async function(){}).constructor,s=globalThis.Blob||r.Blob,i=typeof s<"u"?function(o){return o instanceof s}:function(o){return!1},a=class extends Error{constructor(o){if(!Array.isArray(o))throw new TypeError(`Expected input to be an Array, got ${typeof o}`);let l="";for(let u=0;u{o=u,l=c}),resolve:o,reject:l}},promisify(o){return new Promise((l,u)=>{o((c,...f)=>c?u(c):l(...f))})},debuglog(){return function(){}},format(o,...l){return o.replace(/%([sdifj])/g,function(...[u,c]){let f=l.shift();return c==="f"?f.toFixed(6):c==="j"?JSON.stringify(f):c==="s"&&typeof f=="object"?`${f.constructor!==Object?f.constructor.name:""} {}`.trim():f.toString()})},inspect(o){switch(typeof o){case"string":if(o.includes("'"))if(o.includes('"')){if(!o.includes("`")&&!o.includes("${"))return`\`${o}\``}else return`"${o}"`;return`'${o}'`;case"number":return isNaN(o)?"NaN":Object.is(o,-0)?String(o):o;case"bigint":return`${String(o)}n`;case"boolean":case"undefined":return String(o);case"object":return"{}"}},types:{isAsyncFunction(o){return o instanceof n},isArrayBufferView(o){return ArrayBuffer.isView(o)}},isBlob:i},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),cp=Te((t,e)=>{we(),ve(),_e();var{AbortController:r,AbortSignal:n}=typeof self<"u"?self:typeof window<"u"?window:void 0;e.exports=r,e.exports.AbortSignal=n,e.exports.default=r}),jt=Te((t,e)=>{we(),ve(),_e();var{format:r,inspect:n,AggregateError:s}=fn(),i=globalThis.AggregateError||s,a=Symbol("kIsNodeError"),o=["string","function","number","object","Function","Object","boolean","bigint","symbol"],l=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(E,y){if(!E)throw new c.ERR_INTERNAL_ASSERTION(y)}function d(E){let y="",T=E.length,x=E[0]==="-"?1:0;for(;T>=x+4;T-=3)y=`_${E.slice(T-3,T)}${y}`;return`${E.slice(0,T)}${y}`}function p(E,y,T){if(typeof y=="function")return f(y.length<=T.length,`Code: ${E}; The provided arguments length (${T.length}) does not match the required ones (${y.length}).`),y(...T);let x=(y.match(/%[dfijoOs]/g)||[]).length;return f(x===T.length,`Code: ${E}; The provided arguments length (${T.length}) does not match the required ones (${x}).`),T.length===0?y:r(y,...T)}function m(E,y,T){T||(T=Error);class x extends T{constructor(...P){super(p(E,y,P))}toString(){return`${this.name} [${E}]: ${this.message}`}}Object.defineProperties(x.prototype,{name:{value:T.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${E}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),x.prototype.code=E,x.prototype[a]=!0,c[E]=x}function b(E){let y=u+E.name;return Object.defineProperty(E,"name",{value:y}),E}function v(E,y){if(E&&y&&E!==y){if(Array.isArray(y.errors))return y.errors.push(E),y;let T=new i([y,E],y.message);return T.code=y.code,T}return E||y}var _=class extends Error{constructor(E="The operation was aborted",y=void 0){if(y!==void 0&&typeof y!="object")throw new c.ERR_INVALID_ARG_TYPE("options","Object",y);super(E,y),this.code="ABORT_ERR",this.name="AbortError"}};m("ERR_ASSERTION","%s",Error),m("ERR_INVALID_ARG_TYPE",(E,y,T)=>{f(typeof E=="string","'name' must be a string"),Array.isArray(y)||(y=[y]);let x="The ";E.endsWith(" argument")?x+=`${E} `:x+=`"${E}" ${E.includes(".")?"property":"argument"} `,x+="must be ";let A=[],P=[],L=[];for(let U of y)f(typeof U=="string","All expected entries have to be of type string"),o.includes(U)?A.push(U.toLowerCase()):l.test(U)?P.push(U):(f(U!=="object",'The value "object" should be written as "Object"'),L.push(U));if(P.length>0){let U=A.indexOf("object");U!==-1&&(A.splice(A,U,1),P.push("Object"))}if(A.length>0){switch(A.length){case 1:x+=`of type ${A[0]}`;break;case 2:x+=`one of type ${A[0]} or ${A[1]}`;break;default:{let U=A.pop();x+=`one of type ${A.join(", ")}, or ${U}`}}(P.length>0||L.length>0)&&(x+=" or ")}if(P.length>0){switch(P.length){case 1:x+=`an instance of ${P[0]}`;break;case 2:x+=`an instance of ${P[0]} or ${P[1]}`;break;default:{let U=P.pop();x+=`an instance of ${P.join(", ")}, or ${U}`}}L.length>0&&(x+=" or ")}switch(L.length){case 0:break;case 1:L[0].toLowerCase()!==L[0]&&(x+="an "),x+=`${L[0]}`;break;case 2:x+=`one of ${L[0]} or ${L[1]}`;break;default:{let U=L.pop();x+=`one of ${L.join(", ")}, or ${U}`}}if(T==null)x+=`. Received ${T}`;else if(typeof T=="function"&&T.name)x+=`. Received function ${T.name}`;else if(typeof T=="object"){var W;if((W=T.constructor)!==null&&W!==void 0&&W.name)x+=`. Received an instance of ${T.constructor.name}`;else{let U=n(T,{depth:-1});x+=`. Received ${U}`}}else{let U=n(T,{colors:!1});U.length>25&&(U=`${U.slice(0,25)}...`),x+=`. Received type ${typeof T} (${U})`}return x},TypeError),m("ERR_INVALID_ARG_VALUE",(E,y,T="is invalid")=>{let x=n(y);return x.length>128&&(x=x.slice(0,128)+"..."),`The ${E.includes(".")?"property":"argument"} '${E}' ${T}. Received ${x}`},TypeError),m("ERR_INVALID_RETURN_VALUE",(E,y,T)=>{var x;let A=T!=null&&(x=T.constructor)!==null&&x!==void 0&&x.name?`instance of ${T.constructor.name}`:`type ${typeof T}`;return`Expected ${E} to be returned from the "${y}" function but got ${A}.`},TypeError),m("ERR_MISSING_ARGS",(...E)=>{f(E.length>0,"At least one arg needs to be specified");let y,T=E.length;switch(E=(Array.isArray(E)?E:[E]).map(x=>`"${x}"`).join(" or "),T){case 1:y+=`The ${E[0]} argument`;break;case 2:y+=`The ${E[0]} and ${E[1]} arguments`;break;default:{let x=E.pop();y+=`The ${E.join(", ")}, and ${x} arguments`}break}return`${y} must be specified`},TypeError),m("ERR_OUT_OF_RANGE",(E,y,T)=>{f(y,'Missing "range" argument');let x;return Number.isInteger(T)&&Math.abs(T)>2**32?x=d(String(T)):typeof T=="bigint"?(x=String(T),(T>2n**32n||T<-(2n**32n))&&(x=d(x)),x+="n"):x=n(T),`The value of "${E}" is out of range. It must be ${y}. Received ${x}`},RangeError),m("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),m("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),m("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),m("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),m("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),m("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),m("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),m("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),m("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),m("ERR_STREAM_WRITE_AFTER_END","write after end",Error),m("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:_,aggregateTwoErrors:b(v),hideStackFrames:b,codes:c}}),nu=Te((t,e)=>{we(),ve(),_e();var{ArrayIsArray:r,ArrayPrototypeIncludes:n,ArrayPrototypeJoin:s,ArrayPrototypeMap:i,NumberIsInteger:a,NumberIsNaN:o,NumberMAX_SAFE_INTEGER:l,NumberMIN_SAFE_INTEGER:u,NumberParseInt:c,ObjectPrototypeHasOwnProperty:f,RegExpPrototypeExec:d,String:p,StringPrototypeToUpperCase:m,StringPrototypeTrim:b}=ft(),{hideStackFrames:v,codes:{ERR_SOCKET_BAD_PORT:_,ERR_INVALID_ARG_TYPE:E,ERR_INVALID_ARG_VALUE:y,ERR_OUT_OF_RANGE:T,ERR_UNKNOWN_SIGNAL:x}}=jt(),{normalizeEncoding:A}=fn(),{isAsyncFunction:P,isArrayBufferView:L}=fn().types,W={};function U(G){return G===(G|0)}function H(G){return G===G>>>0}var C=/^[0-7]+$/,I="must be a 32-bit unsigned integer or an octal string";function N(G,re,z){if(typeof G>"u"&&(G=z),typeof G=="string"){if(d(C,G)===null)throw new y(re,G,I);G=c(G,8)}return te(G,re),G}var J=v((G,re,z=u,ie=l)=>{if(typeof G!="number")throw new E(re,"number",G);if(!a(G))throw new T(re,"an integer",G);if(Gie)throw new T(re,`>= ${z} && <= ${ie}`,G)}),ne=v((G,re,z=-2147483648,ie=2147483647)=>{if(typeof G!="number")throw new E(re,"number",G);if(!a(G))throw new T(re,"an integer",G);if(Gie)throw new T(re,`>= ${z} && <= ${ie}`,G)}),te=v((G,re,z=!1)=>{if(typeof G!="number")throw new E(re,"number",G);if(!a(G))throw new T(re,"an integer",G);let ie=z?1:0,he=4294967295;if(Ghe)throw new T(re,`>= ${ie} && <= ${he}`,G)});function B(G,re){if(typeof G!="string")throw new E(re,"string",G)}function ae(G,re,z=void 0,ie){if(typeof G!="number")throw new E(re,"number",G);if(z!=null&&Gie||(z!=null||ie!=null)&&o(G))throw new T(re,`${z!=null?`>= ${z}`:""}${z!=null&&ie!=null?" && ":""}${ie!=null?`<= ${ie}`:""}`,G)}var Y=v((G,re,z)=>{if(!n(z,G)){let ie="must be one of: "+s(i(z,he=>typeof he=="string"?`'${he}'`:p(he)),", ");throw new y(re,G,ie)}});function ce(G,re){if(typeof G!="boolean")throw new E(re,"boolean",G)}function $(G,re,z){return G==null||!f(G,re)?z:G[re]}var ue=v((G,re,z=null)=>{let ie=$(z,"allowArray",!1),he=$(z,"allowFunction",!1);if(!$(z,"nullable",!1)&&G===null||!ie&&r(G)||typeof G!="object"&&(!he||typeof G!="function"))throw new E(re,"Object",G)}),me=v((G,re)=>{if(G!=null&&typeof G!="object"&&typeof G!="function")throw new E(re,"a dictionary",G)}),ee=v((G,re,z=0)=>{if(!r(G))throw new E(re,"Array",G);if(G.length{if(!L(G))throw new E(re,["Buffer","TypedArray","DataView"],G)});function le(G,re){let z=A(re),ie=G.length;if(z==="hex"&&ie%2!==0)throw new y("encoding",re,`is invalid for data of length ${ie}`)}function se(G,re="Port",z=!0){if(typeof G!="number"&&typeof G!="string"||typeof G=="string"&&b(G).length===0||+G!==+G>>>0||G>65535||G===0&&!z)throw new _(re,G,z);return G|0}var M=v((G,re)=>{if(G!==void 0&&(G===null||typeof G!="object"||!("aborted"in G)))throw new E(re,"AbortSignal",G)}),O=v((G,re)=>{if(typeof G!="function")throw new E(re,"Function",G)}),F=v((G,re)=>{if(typeof G!="function"||P(G))throw new E(re,"Function",G)}),R=v((G,re)=>{if(G!==void 0)throw new E(re,"undefined",G)});function V(G,re,z){if(!n(z,G))throw new E(re,`('${s(z,"|")}')`,G)}var q=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function oe(G,re){if(typeof G>"u"||!d(q,G))throw new y(re,G,'must be an array or string of format "; rel=preload; as=style"')}function Q(G){if(typeof G=="string")return oe(G,"hints"),G;if(r(G)){let re=G.length,z="";if(re===0)return z;for(let ie=0;ie; rel=preload; as=style"')}e.exports={isInt32:U,isUint32:H,parseFileMode:N,validateArray:ee,validateStringArray:K,validateBooleanArray:j,validateBoolean:ce,validateBuffer:X,validateDictionary:me,validateEncoding:le,validateFunction:O,validateInt32:ne,validateInteger:J,validateNumber:ae,validateObject:ue,validateOneOf:Y,validatePlainFunction:F,validatePort:se,validateSignalName:D,validateString:B,validateUint32:te,validateUndefined:R,validateUnion:V,validateAbortSignal:M,validateLinkHeaderValue:Q}}),Li=Te((t,e)=>{we(),ve(),_e();var r=e.exports={},n,s;function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?n=setTimeout:n=i}catch{n=i}try{typeof clearTimeout=="function"?s=clearTimeout:s=a}catch{s=a}})();function o(_){if(n===setTimeout)return setTimeout(_,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(_,0);try{return n(_,0)}catch{try{return n.call(null,_,0)}catch{return n.call(this,_,0)}}}function l(_){if(s===clearTimeout)return clearTimeout(_);if((s===a||!s)&&clearTimeout)return s=clearTimeout,clearTimeout(_);try{return s(_)}catch{try{return s.call(null,_)}catch{return s.call(this,_)}}}var u=[],c=!1,f,d=-1;function p(){!c||!f||(c=!1,f.length?u=f.concat(u):d=-1,u.length&&m())}function m(){if(!c){var _=o(p);c=!0;for(var E=u.length;E;){for(f=u,u=[];++d1)for(var y=1;y{we(),ve(),_e();var{Symbol:r,SymbolAsyncIterator:n,SymbolIterator:s,SymbolFor:i}=ft(),a=r("kDestroyed"),o=r("kIsErrored"),l=r("kIsReadable"),u=r("kIsDisturbed"),c=i("nodejs.webstream.isClosedPromise"),f=i("nodejs.webstream.controllerErrorFunction");function d($,ue=!1){var me;return!!($&&typeof $.pipe=="function"&&typeof $.on=="function"&&(!ue||typeof $.pause=="function"&&typeof $.resume=="function")&&(!$._writableState||((me=$._readableState)===null||me===void 0?void 0:me.readable)!==!1)&&(!$._writableState||$._readableState))}function p($){var ue;return!!($&&typeof $.write=="function"&&typeof $.on=="function"&&(!$._readableState||((ue=$._writableState)===null||ue===void 0?void 0:ue.writable)!==!1))}function m($){return!!($&&typeof $.pipe=="function"&&$._readableState&&typeof $.on=="function"&&typeof $.write=="function")}function b($){return $&&($._readableState||$._writableState||typeof $.write=="function"&&typeof $.on=="function"||typeof $.pipe=="function"&&typeof $.on=="function")}function v($){return!!($&&!b($)&&typeof $.pipeThrough=="function"&&typeof $.getReader=="function"&&typeof $.cancel=="function")}function _($){return!!($&&!b($)&&typeof $.getWriter=="function"&&typeof $.abort=="function")}function E($){return!!($&&!b($)&&typeof $.readable=="object"&&typeof $.writable=="object")}function y($){return v($)||_($)||E($)}function T($,ue){return $==null?!1:ue===!0?typeof $[n]=="function":ue===!1?typeof $[s]=="function":typeof $[n]=="function"||typeof $[s]=="function"}function x($){if(!b($))return null;let ue=$._writableState,me=$._readableState,ee=ue||me;return!!($.destroyed||$[a]||ee!=null&&ee.destroyed)}function A($){if(!p($))return null;if($.writableEnded===!0)return!0;let ue=$._writableState;return ue!=null&&ue.errored?!1:typeof(ue==null?void 0:ue.ended)!="boolean"?null:ue.ended}function P($,ue){if(!p($))return null;if($.writableFinished===!0)return!0;let me=$._writableState;return me!=null&&me.errored?!1:typeof(me==null?void 0:me.finished)!="boolean"?null:!!(me.finished||ue===!1&&me.ended===!0&&me.length===0)}function L($){if(!d($))return null;if($.readableEnded===!0)return!0;let ue=$._readableState;return!ue||ue.errored?!1:typeof(ue==null?void 0:ue.ended)!="boolean"?null:ue.ended}function W($,ue){if(!d($))return null;let me=$._readableState;return me!=null&&me.errored?!1:typeof(me==null?void 0:me.endEmitted)!="boolean"?null:!!(me.endEmitted||ue===!1&&me.ended===!0&&me.length===0)}function U($){return $&&$[l]!=null?$[l]:typeof($==null?void 0:$.readable)!="boolean"?null:x($)?!1:d($)&&$.readable&&!W($)}function H($){return typeof($==null?void 0:$.writable)!="boolean"?null:x($)?!1:p($)&&$.writable&&!A($)}function C($,ue){return b($)?x($)?!0:!((ue==null?void 0:ue.readable)!==!1&&U($)||(ue==null?void 0:ue.writable)!==!1&&H($)):null}function I($){var ue,me;return b($)?$.writableErrored?$.writableErrored:(ue=(me=$._writableState)===null||me===void 0?void 0:me.errored)!==null&&ue!==void 0?ue:null:null}function N($){var ue,me;return b($)?$.readableErrored?$.readableErrored:(ue=(me=$._readableState)===null||me===void 0?void 0:me.errored)!==null&&ue!==void 0?ue:null:null}function J($){if(!b($))return null;if(typeof $.closed=="boolean")return $.closed;let ue=$._writableState,me=$._readableState;return typeof(ue==null?void 0:ue.closed)=="boolean"||typeof(me==null?void 0:me.closed)=="boolean"?(ue==null?void 0:ue.closed)||(me==null?void 0:me.closed):typeof $._closed=="boolean"&&ne($)?$._closed:null}function ne($){return typeof $._closed=="boolean"&&typeof $._defaultKeepAlive=="boolean"&&typeof $._removedConnection=="boolean"&&typeof $._removedContLen=="boolean"}function te($){return typeof $._sent100=="boolean"&&ne($)}function B($){var ue;return typeof $._consuming=="boolean"&&typeof $._dumped=="boolean"&&((ue=$.req)===null||ue===void 0?void 0:ue.upgradeOrConnect)===void 0}function ae($){if(!b($))return null;let ue=$._writableState,me=$._readableState,ee=ue||me;return!ee&&te($)||!!(ee&&ee.autoDestroy&&ee.emitClose&&ee.closed===!1)}function Y($){var ue;return!!($&&((ue=$[u])!==null&&ue!==void 0?ue:$.readableDidRead||$.readableAborted))}function ce($){var ue,me,ee,K,j,D,X,le,se,M;return!!($&&((ue=(me=(ee=(K=(j=(D=$[o])!==null&&D!==void 0?D:$.readableErrored)!==null&&j!==void 0?j:$.writableErrored)!==null&&K!==void 0?K:(X=$._readableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&ee!==void 0?ee:(le=$._writableState)===null||le===void 0?void 0:le.errorEmitted)!==null&&me!==void 0?me:(se=$._readableState)===null||se===void 0?void 0:se.errored)!==null&&ue!==void 0?ue:!((M=$._writableState)===null||M===void 0)&&M.errored))}e.exports={kDestroyed:a,isDisturbed:Y,kIsDisturbed:u,isErrored:ce,kIsErrored:o,isReadable:U,kIsReadable:l,kIsClosedPromise:c,kControllerErrorFunction:f,isClosed:J,isDestroyed:x,isDuplexNodeStream:m,isFinished:C,isIterable:T,isReadableNodeStream:d,isReadableStream:v,isReadableEnded:L,isReadableFinished:W,isReadableErrored:N,isNodeStream:b,isWebStream:y,isWritable:H,isWritableNodeStream:p,isWritableStream:_,isWritableEnded:A,isWritableFinished:P,isWritableErrored:I,isServerRequest:B,isServerResponse:te,willEmitClose:ae,isTransformStream:E}}),jn=Te((t,e)=>{we(),ve(),_e();var r=Li(),{AbortError:n,codes:s}=jt(),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_PREMATURE_CLOSE:a}=s,{kEmptyObject:o,once:l}=fn(),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:d}=nu(),{Promise:p,PromisePrototypeThen:m}=ft(),{isClosed:b,isReadable:v,isReadableNodeStream:_,isReadableStream:E,isReadableFinished:y,isReadableErrored:T,isWritable:x,isWritableNodeStream:A,isWritableStream:P,isWritableFinished:L,isWritableErrored:W,isNodeStream:U,willEmitClose:H,kIsClosedPromise:C}=bn();function I(B){return B.setHeader&&typeof B.abort=="function"}var N=()=>{};function J(B,ae,Y){var ce,$;if(arguments.length===2?(Y=ae,ae=o):ae==null?ae=o:f(ae,"options"),c(Y,"callback"),u(ae.signal,"options.signal"),Y=l(Y),E(B)||P(B))return ne(B,ae,Y);if(!U(B))throw new i("stream",["ReadableStream","WritableStream","Stream"],B);let ue=(ce=ae.readable)!==null&&ce!==void 0?ce:_(B),me=($=ae.writable)!==null&&$!==void 0?$:A(B),ee=B._writableState,K=B._readableState,j=()=>{B.writable||le()},D=H(B)&&_(B)===ue&&A(B)===me,X=L(B,!1),le=()=>{X=!0,B.destroyed&&(D=!1),!(D&&(!B.readable||ue))&&(!ue||se)&&Y.call(B)},se=y(B,!1),M=()=>{se=!0,B.destroyed&&(D=!1),!(D&&(!B.writable||me))&&(!me||X)&&Y.call(B)},O=Q=>{Y.call(B,Q)},F=b(B),R=()=>{F=!0;let Q=W(B)||T(B);if(Q&&typeof Q!="boolean")return Y.call(B,Q);if(ue&&!se&&_(B,!0)&&!y(B,!1))return Y.call(B,new a);if(me&&!X&&!L(B,!1))return Y.call(B,new a);Y.call(B)},V=()=>{F=!0;let Q=W(B)||T(B);if(Q&&typeof Q!="boolean")return Y.call(B,Q);Y.call(B)},q=()=>{B.req.on("finish",le)};I(B)?(B.on("complete",le),D||B.on("abort",R),B.req?q():B.on("request",q)):me&&!ee&&(B.on("end",j),B.on("close",j)),!D&&typeof B.aborted=="boolean"&&B.on("aborted",R),B.on("end",M),B.on("finish",le),ae.error!==!1&&B.on("error",O),B.on("close",R),F?r.nextTick(R):ee!=null&&ee.errorEmitted||K!=null&&K.errorEmitted?D||r.nextTick(V):(!ue&&(!D||v(B))&&(X||x(B)===!1)||!me&&(!D||x(B))&&(se||v(B)===!1)||K&&B.req&&B.aborted)&&r.nextTick(V);let oe=()=>{Y=N,B.removeListener("aborted",R),B.removeListener("complete",le),B.removeListener("abort",R),B.removeListener("request",q),B.req&&B.req.removeListener("finish",le),B.removeListener("end",j),B.removeListener("close",j),B.removeListener("finish",le),B.removeListener("end",M),B.removeListener("error",O),B.removeListener("close",R)};if(ae.signal&&!F){let Q=()=>{let G=Y;oe(),G.call(B,new n(void 0,{cause:ae.signal.reason}))};if(ae.signal.aborted)r.nextTick(Q);else{let G=Y;Y=l((...re)=>{ae.signal.removeEventListener("abort",Q),G.apply(B,re)}),ae.signal.addEventListener("abort",Q)}}return oe}function ne(B,ae,Y){let ce=!1,$=N;if(ae.signal)if($=()=>{ce=!0,Y.call(B,new n(void 0,{cause:ae.signal.reason}))},ae.signal.aborted)r.nextTick($);else{let me=Y;Y=l((...ee)=>{ae.signal.removeEventListener("abort",$),me.apply(B,ee)}),ae.signal.addEventListener("abort",$)}let ue=(...me)=>{ce||r.nextTick(()=>Y.apply(B,me))};return m(B[C].promise,ue,ue),N}function te(B,ae){var Y;let ce=!1;return ae===null&&(ae=o),(Y=ae)!==null&&Y!==void 0&&Y.cleanup&&(d(ae.cleanup,"cleanup"),ce=ae.cleanup),new p(($,ue)=>{let me=J(B,ae,ee=>{ce&&me(),ee?ue(ee):$()})})}e.exports=J,e.exports.finished=te}),Ms=Te((t,e)=>{we(),ve(),_e();var r=Li(),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:s},AbortError:i}=jt(),{Symbol:a}=ft(),{kDestroyed:o,isDestroyed:l,isFinished:u,isServerRequest:c}=bn(),f=a("kDestroy"),d=a("kConstruct");function p(C,I,N){C&&(C.stack,I&&!I.errored&&(I.errored=C),N&&!N.errored&&(N.errored=C))}function m(C,I){let N=this._readableState,J=this._writableState,ne=J||N;return J!=null&&J.destroyed||N!=null&&N.destroyed?(typeof I=="function"&&I(),this):(p(C,J,N),J&&(J.destroyed=!0),N&&(N.destroyed=!0),ne.constructed?b(this,C,I):this.once(f,function(te){b(this,n(te,C),I)}),this)}function b(C,I,N){let J=!1;function ne(te){if(J)return;J=!0;let B=C._readableState,ae=C._writableState;p(te,ae,B),ae&&(ae.closed=!0),B&&(B.closed=!0),typeof N=="function"&&N(te),te?r.nextTick(v,C,te):r.nextTick(_,C)}try{C._destroy(I||null,ne)}catch(te){ne(te)}}function v(C,I){E(C,I),_(C)}function _(C){let I=C._readableState,N=C._writableState;N&&(N.closeEmitted=!0),I&&(I.closeEmitted=!0),(N!=null&&N.emitClose||I!=null&&I.emitClose)&&C.emit("close")}function E(C,I){let N=C._readableState,J=C._writableState;J!=null&&J.errorEmitted||N!=null&&N.errorEmitted||(J&&(J.errorEmitted=!0),N&&(N.errorEmitted=!0),C.emit("error",I))}function y(){let C=this._readableState,I=this._writableState;C&&(C.constructed=!0,C.closed=!1,C.closeEmitted=!1,C.destroyed=!1,C.errored=null,C.errorEmitted=!1,C.reading=!1,C.ended=C.readable===!1,C.endEmitted=C.readable===!1),I&&(I.constructed=!0,I.destroyed=!1,I.closed=!1,I.closeEmitted=!1,I.errored=null,I.errorEmitted=!1,I.finalCalled=!1,I.prefinished=!1,I.ended=I.writable===!1,I.ending=I.writable===!1,I.finished=I.writable===!1)}function T(C,I,N){let J=C._readableState,ne=C._writableState;if(ne!=null&&ne.destroyed||J!=null&&J.destroyed)return this;J!=null&&J.autoDestroy||ne!=null&&ne.autoDestroy?C.destroy(I):I&&(I.stack,ne&&!ne.errored&&(ne.errored=I),J&&!J.errored&&(J.errored=I),N?r.nextTick(E,C,I):E(C,I))}function x(C,I){if(typeof C._construct!="function")return;let N=C._readableState,J=C._writableState;N&&(N.constructed=!1),J&&(J.constructed=!1),C.once(d,I),!(C.listenerCount(d)>1)&&r.nextTick(A,C)}function A(C){let I=!1;function N(J){if(I){T(C,J??new s);return}I=!0;let ne=C._readableState,te=C._writableState,B=te||ne;ne&&(ne.constructed=!0),te&&(te.constructed=!0),B.destroyed?C.emit(f,J):J?T(C,J,!0):r.nextTick(P,C)}try{C._construct(J=>{r.nextTick(N,J)})}catch(J){r.nextTick(N,J)}}function P(C){C.emit(d)}function L(C){return(C==null?void 0:C.setHeader)&&typeof C.abort=="function"}function W(C){C.emit("close")}function U(C,I){C.emit("error",I),r.nextTick(W,C)}function H(C,I){!C||l(C)||(!I&&!u(C)&&(I=new i),c(C)?(C.socket=null,C.destroy(I)):L(C)?C.abort():L(C.req)?C.req.abort():typeof C.destroy=="function"?C.destroy(I):typeof C.close=="function"?C.close():I?r.nextTick(U,C,I):r.nextTick(W,C),C.destroyed||(C[o]=!0))}e.exports={construct:x,destroyer:H,destroy:m,undestroy:y,errorOrDestroy:T}});function Ye(){Ye.init.call(this)}function Ga(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function Q0(t){return t._maxListeners===void 0?Ye.defaultMaxListeners:t._maxListeners}function gm(t,e,r,n){var s,i,a,o;if(Ga(r),(i=t._events)===void 0?(i=t._events=Object.create(null),t._eventsCount=0):(i.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),a=i[e]),a===void 0)a=i[e]=r,++t._eventsCount;else if(typeof a=="function"?a=i[e]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(s=Q0(t))>0&&a.length>s&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=a.length,o=l,console&&console.warn&&console.warn(o)}return t}function RO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function mm(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},s=RO.bind(n);return s.listener=r,n.wrapFn=s,s}function bm(t,e,r){var n=t._events;if(n===void 0)return[];var s=n[e];return s===void 0?[]:typeof s=="function"?r?[s.listener||s]:[s]:r?function(i){for(var a=new Array(i.length),o=0;o{we(),ve(),_e(),Jn=typeof Reflect=="object"?Reflect:null,Yu=Jn&&typeof Jn.apply=="function"?Jn.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},_m=Jn&&typeof Jn.ownKeys=="function"?Jn.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)},Gu=Number.isNaN||function(t){return t!=t},wm=Ye,Ye.EventEmitter=Ye,Ye.prototype._events=void 0,Ye.prototype._eventsCount=0,Ye.prototype._maxListeners=void 0,Ku=10,Object.defineProperty(Ye,"defaultMaxListeners",{enumerable:!0,get:function(){return Ku},set:function(t){if(typeof t!="number"||t<0||Gu(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Ku=t}}),Ye.init=function(){this._events!==void 0&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ye.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Gu(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},Ye.prototype.getMaxListeners=function(){return Q0(this)},Ye.prototype.emit=function(t){for(var e=[],r=1;r0&&(i=e[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var o=s[t];if(o===void 0)return!1;if(typeof o=="function")Yu(o,this,e);else{var l=o.length,u=J0(o,l);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){a=r[i].listener,s=i;break}if(s<0)return this;s===0?r.shift():function(o,l){for(;l+1=0;n--)this.removeListener(t,e[n]);return this},Ye.prototype.listeners=function(t){return bm(this,t,!0)},Ye.prototype.rawListeners=function(t){return bm(this,t,!1)},Ye.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):ym.call(t,e)},Ye.prototype.listenerCount=ym,Ye.prototype.eventNames=function(){return this._eventsCount>0?_m(this._events):[]},Vt=wm,Vt.EventEmitter,Vt.defaultMaxListeners,Vt.init,Vt.listenerCount,Vt.EventEmitter,Vt.defaultMaxListeners,Vt.init,Vt.listenerCount}),Ni={};Ri(Ni,{EventEmitter:()=>Z0,default:()=>Vt,defaultMaxListeners:()=>e_,init:()=>t_,listenerCount:()=>r_,on:()=>n_,once:()=>i_});var Z0,e_,t_,r_,n_,i_,Os=wt(()=>{we(),ve(),_e(),vm(),vm(),Vt.once=function(t,e){return new Promise((r,n)=>{function s(...a){i!==void 0&&t.removeListener("error",i),r(a)}let i;e!=="error"&&(i=a=>{t.removeListener(name,s),n(a)},t.once("error",i)),t.once(e,s)})},Vt.on=function(t,e){let r=[],n=[],s=null,i=!1,a={async next(){let u=r.shift();if(u)return createIterResult(u,!1);if(s){let c=Promise.reject(s);return s=null,c}return i?createIterResult(void 0,!0):new Promise((c,f)=>n.push({resolve:c,reject:f}))},async return(){t.removeListener(e,o),t.removeListener("error",l),i=!0;for(let u of n)u.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(u){s=u,t.removeListener(e,o),t.removeListener("error",l)},[Symbol.asyncIterator](){return this}};return t.on(e,o),t.on("error",l),a;function o(...u){let c=n.shift();c?c.resolve(createIterResult(u,!1)):r.push(u)}function l(u){i=!0;let c=n.shift();c?c.reject(u):s=u,a.return()}},{EventEmitter:Z0,defaultMaxListeners:e_,init:t_,listenerCount:r_,on:n_,once:i_}=Vt}),fp=Te((t,e)=>{we(),ve(),_e();var{ArrayIsArray:r,ObjectSetPrototypeOf:n}=ft(),{EventEmitter:s}=(Os(),Ke(Ni));function i(o){s.call(this,o)}n(i.prototype,s.prototype),n(i,s),i.prototype.pipe=function(o,l){let u=this;function c(_){o.writable&&o.write(_)===!1&&u.pause&&u.pause()}u.on("data",c);function f(){u.readable&&u.resume&&u.resume()}o.on("drain",f),!o._isStdio&&(!l||l.end!==!1)&&(u.on("end",p),u.on("close",m));let d=!1;function p(){d||(d=!0,o.end())}function m(){d||(d=!0,typeof o.destroy=="function"&&o.destroy())}function b(_){v(),s.listenerCount(this,"error")===0&&this.emit("error",_)}a(u,"error",b),a(o,"error",b);function v(){u.removeListener("data",c),o.removeListener("drain",f),u.removeListener("end",p),u.removeListener("close",m),u.removeListener("error",b),o.removeListener("error",b),u.removeListener("end",v),u.removeListener("close",v),o.removeListener("close",v)}return u.on("end",v),u.on("close",v),o.on("close",v),o.emit("pipe",u),o};function a(o,l,u){if(typeof o.prependListener=="function")return o.prependListener(l,u);!o._events||!o._events[l]?o.on(l,u):r(o._events[l])?o._events[l].unshift(u):o._events[l]=[u,o._events[l]]}e.exports={Stream:i,prependListener:a}}),iu=Te((t,e)=>{we(),ve(),_e();var{AbortError:r,codes:n}=jt(),{isNodeStream:s,isWebStream:i,kControllerErrorFunction:a}=bn(),o=jn(),{ERR_INVALID_ARG_TYPE:l}=n,u=(c,f)=>{if(typeof c!="object"||!("aborted"in c))throw new l(f,"AbortSignal",c)};e.exports.addAbortSignal=function(c,f){if(u(c,"signal"),!s(f)&&!i(f))throw new l("stream",["ReadableStream","WritableStream","Stream"],f);return e.exports.addAbortSignalNoValidate(c,f)},e.exports.addAbortSignalNoValidate=function(c,f){if(typeof c!="object"||!("aborted"in c))return f;let d=s(f)?()=>{f.destroy(new r(void 0,{cause:c.reason}))}:()=>{f[a](new r(void 0,{cause:c.reason}))};return c.aborted?d():(c.addEventListener("abort",d),o(f,()=>c.removeEventListener("abort",d))),f}}),LO=Te((t,e)=>{we(),ve(),_e();var{StringPrototypeSlice:r,SymbolIterator:n,TypedArrayPrototypeSet:s,Uint8Array:i}=ft(),{Buffer:a}=(vt(),Ke(_t)),{inspect:o}=fn();e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(l){let u={data:l,next:null};this.length>0?this.tail.next=u:this.head=u,this.tail=u,++this.length}unshift(l){let u={data:l,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length}shift(){if(this.length===0)return;let l=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,l}clear(){this.head=this.tail=null,this.length=0}join(l){if(this.length===0)return"";let u=this.head,c=""+u.data;for(;(u=u.next)!==null;)c+=l+u.data;return c}concat(l){if(this.length===0)return a.alloc(0);let u=a.allocUnsafe(l>>>0),c=this.head,f=0;for(;c;)s(u,c.data,f),f+=c.data.length,c=c.next;return u}consume(l,u){let c=this.head.data;if(ld.length)u+=d,l-=d.length;else{l===d.length?(u+=d,++f,c.next?this.head=c.next:this.head=this.tail=null):(u+=r(d,0,l),this.head=c,c.data=r(d,l));break}++f}while((c=c.next)!==null);return this.length-=f,u}_getBuffer(l){let u=a.allocUnsafe(l),c=l,f=this.head,d=0;do{let p=f.data;if(l>p.length)s(u,p,c-l),l-=p.length;else{l===p.length?(s(u,p,c-l),++d,f.next?this.head=f.next:this.head=this.tail=null):(s(u,new i(p.buffer,p.byteOffset,l),c-l),this.head=f,f.data=p.slice(l));break}++d}while((f=f.next)!==null);return this.length-=d,u}[Symbol.for("nodejs.util.inspect.custom")](l,u){return o(this,{...u,depth:0,customInspect:!1})}}}),dp=Te((t,e)=>{we(),ve(),_e();var{MathFloor:r,NumberIsInteger:n}=ft(),{ERR_INVALID_ARG_VALUE:s}=jt().codes;function i(l,u,c){return l.highWaterMark!=null?l.highWaterMark:u?l[c]:null}function a(l){return l?16:16*1024}function o(l,u,c,f){let d=i(u,f,c);if(d!=null){if(!n(d)||d<0){let p=f?`options.${c}`:"options.highWaterMark";throw new s(p,d)}return r(d)}return a(l.objectMode)}e.exports={getHighWaterMark:o,getDefaultHighWaterMark:a}});function Em(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return r===-1&&(r=e),[r,r===e?0:4-r%4]}function NO(t,e,r){for(var n,s,i=[],a=e;a>18&63]+gr[s>>12&63]+gr[s>>6&63]+gr[63&s]);return i.join("")}function en(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,Ee.prototype),e}function Ee(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Vd(t)}return s_(t,e,r)}function s_(t,e,r){if(typeof t=="string")return function(i,a){if(typeof a=="string"&&a!==""||(a="utf8"),!Ee.isEncoding(a))throw new TypeError("Unknown encoding: "+a);var o=0|a_(i,a),l=en(o),u=l.write(i,a);return u!==o&&(l=l.slice(0,u)),l}(t,e);if(ArrayBuffer.isView(t))return Xu(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(tn(t,ArrayBuffer)||t&&tn(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(tn(t,SharedArrayBuffer)||t&&tn(t.buffer,SharedArrayBuffer)))return DO(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(n!=null&&n!==t)return Ee.from(n,e,r);var s=function(i){if(Ee.isBuffer(i)){var a=0|hp(i.length),o=en(a);return o.length===0||i.copy(o,0,0,a),o}if(i.length!==void 0)return typeof i.length!="number"||pp(i.length)?en(0):Xu(i);if(i.type==="Buffer"&&Array.isArray(i.data))return Xu(i.data)}(t);if(s)return s;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return Ee.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function o_(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function Vd(t){return o_(t),en(t<0?0:0|hp(t))}function Xu(t){for(var e=t.length<0?0:0|hp(t.length),r=en(e),n=0;n=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function a_(t,e){if(Ee.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||tn(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;for(var s=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return qd(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return f_(t).length;default:if(s)return n?-1:qd(t).length;e=(""+e).toLowerCase(),s=!0}}function BO(t,e,r){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return qO(this,e,r);case"utf8":case"utf-8":return u_(this,e,r);case"ascii":return zO(this,e,r);case"latin1":case"binary":return VO(this,e,r);case"base64":return HO(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return YO(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function Zn(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Sm(t,e,r,n,s){if(t.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),pp(r=+r)&&(r=s?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(s)return-1;r=t.length-1}else if(r<0){if(!s)return-1;r=0}if(typeof e=="string"&&(e=Ee.from(e,n)),Ee.isBuffer(e))return e.length===0?-1:Tm(t,e,r,n,s);if(typeof e=="number")return e&=255,typeof Uint8Array.prototype.indexOf=="function"?s?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Tm(t,[e],r,n,s);throw new TypeError("val must be string, number or Buffer")}function Tm(t,e,r,n,s){var i,a=1,o=t.length,l=e.length;if(n!==void 0&&((n=String(n).toLowerCase())==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,r/=2}function u(p,m){return a===1?p[m]:p.readUInt16BE(m*a)}if(s){var c=-1;for(i=r;io&&(r=o-l),i=r;i>=0;i--){for(var f=!0,d=0;ds&&(n=s):n=s;var i=e.length;n>i/2&&(n=i/2);for(var a=0;a>8,l=a%256,u.push(l),u.push(o);return u}(e,t.length-r),t,r,n)}function HO(t,e,r){return e===0&&r===t.length?Ml.fromByteArray(t):Ml.fromByteArray(t.slice(e,r))}function u_(t,e,r){r=Math.min(t.length,r);for(var n=[],s=e;s239?4:u>223?3:u>191?2:1;if(s+f<=r)switch(f){case 1:u<128&&(c=u);break;case 2:(192&(i=t[s+1]))==128&&(l=(31&u)<<6|63&i)>127&&(c=l);break;case 3:i=t[s+1],a=t[s+2],(192&i)==128&&(192&a)==128&&(l=(15&u)<<12|(63&i)<<6|63&a)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:i=t[s+1],a=t[s+2],o=t[s+3],(192&i)==128&&(192&a)==128&&(192&o)==128&&(l=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(c=l)}c===null?(c=65533,f=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),s+=f}return function(d){var p=d.length;if(p<=4096)return String.fromCharCode.apply(String,d);for(var m="",b=0;bn)&&(r=n);for(var s="",i=e;ir)throw new RangeError("Trying to access beyond buffer length")}function Dt(t,e,r,n,s,i){if(!Ee.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||et.length)throw new RangeError("Index out of range")}function c_(t,e,r,n,s,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function xm(t,e,r,n,s){return e=+e,r>>>=0,s||c_(t,0,r,4),li.write(t,e,r,n,23,4),r+4}function Am(t,e,r,n,s){return e=+e,r>>>=0,s||c_(t,0,r,8),li.write(t,e,r,n,52,8),r+8}function qd(t,e){var r;e=e||1/0;for(var n=t.length,s=null,i=[],a=0;a55295&&r<57344){if(!s){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&i.push(239,191,189);continue}s=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),s=r;continue}r=65536+(s-55296<<10|r-56320)}else s&&(e-=3)>-1&&i.push(239,191,189);if(s=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function f_(t){return Ml.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(d_,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(t))}function su(t,e,r,n){for(var s=0;s=e.length||s>=t.length);++s)e[s+r]=t[s];return s}function tn(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function pp(t){return t!=t}function Cm(t,e){for(var r in t)e[r]=t[r]}function ei(t,e,r){return hr(t,e,r)}function Ks(t){var e;switch(this.encoding=function(r){var n=function(s){if(!s)return"utf8";for(var i;;)switch(s){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return s;default:if(i)return;s=(""+s).toLowerCase(),i=!0}}(r);if(typeof n!="string"&&(Ol.isEncoding===Yd||!Yd(r)))throw new Error("Unknown encoding: "+r);return n||r}(t),this.encoding){case"utf16le":this.text=KO,this.end=XO,e=4;break;case"utf8":this.fillLast=GO,e=4;break;case"base64":this.text=QO,this.end=JO,e=3;break;default:return this.write=ZO,this.end=eP,void 0}this.lastNeed=0,this.lastTotal=0,this.lastChar=Ol.allocUnsafe(e)}function Qu(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function GO(t){var e=this.lastTotal-this.lastNeed,r=function(n,s,i){if((192&s[0])!=128)return n.lastNeed=0,"�";if(n.lastNeed>1&&s.length>1){if((192&s[1])!=128)return n.lastNeed=1,"�";if(n.lastNeed>2&&s.length>2&&(192&s[2])!=128)return n.lastNeed=2,"�"}}(this,t);return r!==void 0?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length,void 0)}function KO(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function XO(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function QO(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function JO(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function ZO(t){return t.toString(this.encoding)}function eP(t){return t&&t.length?this.write(t):""}var Im,gr,Wt,Mm,fa,ti,Om,Pm,xr,Ml,li,Ju,d_,h_,Xs,Qs,hr,km,rs,Ol,Yd,Rm=wt(()=>{for(we(),ve(),_e(),Im={byteLength:function(t){var e=Em(t),r=e[0],n=e[1];return 3*(r+n)/4-n},toByteArray:function(t){var e,r,n=Em(t),s=n[0],i=n[1],a=new Mm(function(u,c,f){return 3*(c+f)/4-f}(0,s,i)),o=0,l=i>0?s-4:s;for(r=0;r>16&255,a[o++]=e>>8&255,a[o++]=255&e;return i===2&&(e=Wt[t.charCodeAt(r)]<<2|Wt[t.charCodeAt(r+1)]>>4,a[o++]=255&e),i===1&&(e=Wt[t.charCodeAt(r)]<<10|Wt[t.charCodeAt(r+1)]<<4|Wt[t.charCodeAt(r+2)]>>2,a[o++]=e>>8&255,a[o++]=255&e),a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,s=[],i=0,a=r-n;ia?a:i+16383));return n===1?(e=t[r-1],s.push(gr[e>>2]+gr[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],s.push(gr[e>>10]+gr[e>>4&63]+gr[e<<2&63]+"=")),s.join("")}},gr=[],Wt=[],Mm=typeof Uint8Array<"u"?Uint8Array:Array,fa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ti=0,Om=fa.length;ti>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=256*i+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=256*a+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),i-=u}return(p?-1:1)*a*Math.pow(2,i-n)},write:function(t,e,r,n,s,i){var a,o,l,u=8*i-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,m=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+f>=1?d/l:d*Math.pow(2,1-f))*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a+=f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=255&o,p+=m,o/=256,s-=8);for(a=a<0;t[r+p]=255&a,p+=m,a/=256,u-=8);t[r+p-m]|=128*b}},xr={},Ml=Im,li=Pm,Ju=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null,xr.Buffer=Ee,xr.SlowBuffer=function(t){return+t!=t&&(t=0),Ee.alloc(+t)},xr.INSPECT_MAX_BYTES=50,xr.kMaxLength=2147483647,Ee.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}(),Ee.TYPED_ARRAY_SUPPORT||typeof console>"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(Ee.prototype,"parent",{enumerable:!0,get:function(){if(Ee.isBuffer(this))return this.buffer}}),Object.defineProperty(Ee.prototype,"offset",{enumerable:!0,get:function(){if(Ee.isBuffer(this))return this.byteOffset}}),Ee.poolSize=8192,Ee.from=function(t,e,r){return s_(t,e,r)},Object.setPrototypeOf(Ee.prototype,Uint8Array.prototype),Object.setPrototypeOf(Ee,Uint8Array),Ee.alloc=function(t,e,r){return function(n,s,i){return o_(n),n<=0?en(n):s!==void 0?typeof i=="string"?en(n).fill(s,i):en(n).fill(s):en(n)}(t,e,r)},Ee.allocUnsafe=function(t){return Vd(t)},Ee.allocUnsafeSlow=function(t){return Vd(t)},Ee.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==Ee.prototype},Ee.compare=function(t,e){if(tn(t,Uint8Array)&&(t=Ee.from(t,t.offset,t.byteLength)),tn(e,Uint8Array)&&(e=Ee.from(e,e.offset,e.byteLength)),!Ee.isBuffer(t)||!Ee.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,s=0,i=Math.min(r,n);se&&(t+=" ... "),""},Ju&&(Ee.prototype[Ju]=Ee.prototype.inspect),Ee.prototype.compare=function(t,e,r,n,s){if(tn(t,Uint8Array)&&(t=Ee.from(t,t.offset,t.byteLength)),!Ee.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),r===void 0&&(r=t?t.length:0),n===void 0&&(n=0),s===void 0&&(s=this.length),e<0||r>t.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&e>=r)return 0;if(n>=s)return-1;if(e>=r)return 1;if(this===t)return 0;for(var i=(s>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0),o=Math.min(i,a),l=this.slice(n,s),u=t.slice(e,r),c=0;c>>=0,isFinite(r)?(r>>>=0,n===void 0&&(n="utf8")):(n=r,r=void 0)}var s=this.length-e;if((r===void 0||r>s)&&(r=s),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return $O(this,t,e,r);case"utf8":case"utf-8":return FO(this,t,e,r);case"ascii":return l_(this,t,e,r);case"latin1":case"binary":return UO(this,t,e,r);case"base64":return jO(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return WO(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},Ee.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Ee.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=e===void 0?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||ht(t,e,this.length);for(var n=this[t],s=1,i=0;++i>>=0,e>>>=0,r||ht(t,e,this.length);for(var n=this[t+--e],s=1;e>0&&(s*=256);)n+=this[t+--e]*s;return n},Ee.prototype.readUInt8=function(t,e){return t>>>=0,e||ht(t,1,this.length),this[t]},Ee.prototype.readUInt16LE=function(t,e){return t>>>=0,e||ht(t,2,this.length),this[t]|this[t+1]<<8},Ee.prototype.readUInt16BE=function(t,e){return t>>>=0,e||ht(t,2,this.length),this[t]<<8|this[t+1]},Ee.prototype.readUInt32LE=function(t,e){return t>>>=0,e||ht(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Ee.prototype.readUInt32BE=function(t,e){return t>>>=0,e||ht(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Ee.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||ht(t,e,this.length);for(var n=this[t],s=1,i=0;++i=(s*=128)&&(n-=Math.pow(2,8*e)),n},Ee.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||ht(t,e,this.length);for(var n=e,s=1,i=this[t+--n];n>0&&(s*=256);)i+=this[t+--n]*s;return i>=(s*=128)&&(i-=Math.pow(2,8*e)),i},Ee.prototype.readInt8=function(t,e){return t>>>=0,e||ht(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Ee.prototype.readInt16LE=function(t,e){t>>>=0,e||ht(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Ee.prototype.readInt16BE=function(t,e){t>>>=0,e||ht(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Ee.prototype.readInt32LE=function(t,e){return t>>>=0,e||ht(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Ee.prototype.readInt32BE=function(t,e){return t>>>=0,e||ht(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Ee.prototype.readFloatLE=function(t,e){return t>>>=0,e||ht(t,4,this.length),li.read(this,t,!0,23,4)},Ee.prototype.readFloatBE=function(t,e){return t>>>=0,e||ht(t,4,this.length),li.read(this,t,!1,23,4)},Ee.prototype.readDoubleLE=function(t,e){return t>>>=0,e||ht(t,8,this.length),li.read(this,t,!0,52,8)},Ee.prototype.readDoubleBE=function(t,e){return t>>>=0,e||ht(t,8,this.length),li.read(this,t,!1,52,8)},Ee.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||Dt(this,t,e,r,Math.pow(2,8*r)-1,0);var s=1,i=0;for(this[e]=255&t;++i>>=0,r>>>=0,n||Dt(this,t,e,r,Math.pow(2,8*r)-1,0);var s=r-1,i=1;for(this[e+s]=255&t;--s>=0&&(i*=256);)this[e+s]=t/i&255;return e+r},Ee.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,1,255,0),this[e]=255&t,e+1},Ee.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},Ee.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},Ee.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},Ee.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Ee.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);Dt(this,t,e,r,s-1,-s)}var i=0,a=1,o=0;for(this[e]=255&t;++i>0)-o&255;return e+r},Ee.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);Dt(this,t,e,r,s-1,-s)}var i=r-1,a=1,o=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&o===0&&this[e+i+1]!==0&&(o=1),this[e+i]=(t/a>>0)-o&255;return e+r},Ee.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},Ee.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},Ee.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},Ee.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},Ee.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||Dt(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Ee.prototype.writeFloatLE=function(t,e,r){return xm(this,t,e,!0,r)},Ee.prototype.writeFloatBE=function(t,e,r){return xm(this,t,e,!1,r)},Ee.prototype.writeDoubleLE=function(t,e,r){return Am(this,t,e,!0,r)},Ee.prototype.writeDoubleBE=function(t,e,r){return Am(this,t,e,!1,r)},Ee.prototype.copy=function(t,e,r,n){if(!Ee.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||n===0||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return s},Ee.prototype.fill=function(t,e,r,n){if(typeof t=="string"){if(typeof e=="string"?(n=e,e=0,r=this.length):typeof r=="string"&&(n=r,r=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!Ee.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(t.length===1){var s=t.charCodeAt(0);(n==="utf8"&&s<128||n==="latin1")&&(t=s)}}else typeof t=="number"?t&=255:typeof t=="boolean"&&(t=Number(t));if(e<0||this.length>>=0,r=r===void 0?this.length:r>>>0,t||(t=0),typeof t=="number")for(i=e;i=0?(l>0&&(s.lastNeed=l-1),l):--o=0?(l>0&&(s.lastNeed=l-2),l):--o=0?(l>0&&(l===2?l=0:s.lastNeed=l-3),l):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},Ks.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},rs.StringDecoder,rs.StringDecoder}),p_={};Ri(p_,{StringDecoder:()=>g_,default:()=>rs});var g_,tP=wt(()=>{we(),ve(),_e(),Rm(),Rm(),g_=rs.StringDecoder}),m_=Te((t,e)=>{we(),ve(),_e();var r=Li(),{PromisePrototypeThen:n,SymbolAsyncIterator:s,SymbolIterator:i}=ft(),{Buffer:a}=(vt(),Ke(_t)),{ERR_INVALID_ARG_TYPE:o,ERR_STREAM_NULL_VALUES:l}=jt().codes;function u(c,f,d){let p;if(typeof f=="string"||f instanceof a)return new c({objectMode:!0,...d,read(){this.push(f),this.push(null)}});let m;if(f&&f[s])m=!0,p=f[s]();else if(f&&f[i])m=!1,p=f[i]();else throw new o("iterable",["Iterable"],f);let b=new c({objectMode:!0,highWaterMark:1,...d}),v=!1;b._read=function(){v||(v=!0,E())},b._destroy=function(y,T){n(_(y),()=>r.nextTick(T,y),x=>r.nextTick(T,x||y))};async function _(y){let T=y!=null,x=typeof p.throw=="function";if(T&&x){let{value:A,done:P}=await p.throw(y);if(await A,P)return}if(typeof p.return=="function"){let{value:A}=await p.return();await A}}async function E(){for(;;){try{let{value:y,done:T}=m?await p.next():p.next();if(T)b.push(null);else{let x=y&&typeof y.then=="function"?await y:y;if(x===null)throw v=!1,new l;if(b.push(x))continue;v=!1}}catch(y){b.destroy(y)}break}}return b}e.exports=u}),ou=Te((t,e)=>{we(),ve(),_e();var r=Li(),{ArrayPrototypeIndexOf:n,NumberIsInteger:s,NumberIsNaN:i,NumberParseInt:a,ObjectDefineProperties:o,ObjectKeys:l,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncIterator:d,Symbol:p}=ft();e.exports=$,$.ReadableState=ce;var{EventEmitter:m}=(Os(),Ke(Ni)),{Stream:b,prependListener:v}=fp(),{Buffer:_}=(vt(),Ke(_t)),{addAbortSignal:E}=iu(),y=jn(),T=fn().debuglog("stream",g=>{T=g}),x=LO(),A=Ms(),{getHighWaterMark:P,getDefaultHighWaterMark:L}=dp(),{aggregateTwoErrors:W,codes:{ERR_INVALID_ARG_TYPE:U,ERR_METHOD_NOT_IMPLEMENTED:H,ERR_OUT_OF_RANGE:C,ERR_STREAM_PUSH_AFTER_EOF:I,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:N}}=jt(),{validateObject:J}=nu(),ne=p("kPaused"),{StringDecoder:te}=(tP(),Ke(p_)),B=m_();u($.prototype,b.prototype),u($,b);var ae=()=>{},{errorOrDestroy:Y}=A;function ce(g,h,w){typeof w!="boolean"&&(w=h instanceof dn()),this.objectMode=!!(g&&g.objectMode),w&&(this.objectMode=this.objectMode||!!(g&&g.readableObjectMode)),this.highWaterMark=g?P(this,g,"readableHighWaterMark",w):L(!1),this.buffer=new x,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[ne]=null,this.errorEmitted=!1,this.emitClose=!g||g.emitClose!==!1,this.autoDestroy=!g||g.autoDestroy!==!1,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=g&&g.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,g&&g.encoding&&(this.decoder=new te(g.encoding),this.encoding=g.encoding)}function $(g){if(!(this instanceof $))return new $(g);let h=this instanceof dn();this._readableState=new ce(g,this,h),g&&(typeof g.read=="function"&&(this._read=g.read),typeof g.destroy=="function"&&(this._destroy=g.destroy),typeof g.construct=="function"&&(this._construct=g.construct),g.signal&&!h&&E(g.signal,this)),b.call(this,g),A.construct(this,()=>{this._readableState.needReadable&&se(this,this._readableState)})}$.prototype.destroy=A.destroy,$.prototype._undestroy=A.undestroy,$.prototype._destroy=function(g,h){h(g)},$.prototype[m.captureRejectionSymbol]=function(g){this.destroy(g)},$.prototype.push=function(g,h){return ue(this,g,h,!1)},$.prototype.unshift=function(g,h){return ue(this,g,h,!0)};function ue(g,h,w,k){T("readableAddChunk",h);let Z=g._readableState,de;if(Z.objectMode||(typeof h=="string"?(w=w||Z.defaultEncoding,Z.encoding!==w&&(k&&Z.encoding?h=_.from(h,w).toString(Z.encoding):(h=_.from(h,w),w=""))):h instanceof _?w="":b._isUint8Array(h)?(h=b._uint8ArrayToBuffer(h),w=""):h!=null&&(de=new U("chunk",["string","Buffer","Uint8Array"],h))),de)Y(g,de);else if(h===null)Z.reading=!1,D(g,Z);else if(Z.objectMode||h&&h.length>0)if(k)if(Z.endEmitted)Y(g,new N);else{if(Z.destroyed||Z.errored)return!1;me(g,Z,h,!0)}else if(Z.ended)Y(g,new I);else{if(Z.destroyed||Z.errored)return!1;Z.reading=!1,Z.decoder&&!w?(h=Z.decoder.write(h),Z.objectMode||h.length!==0?me(g,Z,h,!1):se(g,Z)):me(g,Z,h,!1)}else k||(Z.reading=!1,se(g,Z));return!Z.ended&&(Z.length0?(h.multiAwaitDrain?h.awaitDrainWriters.clear():h.awaitDrainWriters=null,h.dataEmitted=!0,g.emit("data",w)):(h.length+=h.objectMode?1:w.length,k?h.buffer.unshift(w):h.buffer.push(w),h.needReadable&&X(g)),se(g,h)}$.prototype.isPaused=function(){let g=this._readableState;return g[ne]===!0||g.flowing===!1},$.prototype.setEncoding=function(g){let h=new te(g);this._readableState.decoder=h,this._readableState.encoding=this._readableState.decoder.encoding;let w=this._readableState.buffer,k="";for(let Z of w)k+=h.write(Z);return w.clear(),k!==""&&w.push(k),this._readableState.length=k.length,this};var ee=1073741824;function K(g){if(g>ee)throw new C("size","<= 1GiB",g);return g--,g|=g>>>1,g|=g>>>2,g|=g>>>4,g|=g>>>8,g|=g>>>16,g++,g}function j(g,h){return g<=0||h.length===0&&h.ended?0:h.objectMode?1:i(g)?h.flowing&&h.length?h.buffer.first().length:h.length:g<=h.length?g:h.ended?h.length:0}$.prototype.read=function(g){T("read",g),g===void 0?g=NaN:s(g)||(g=a(g,10));let h=this._readableState,w=g;if(g>h.highWaterMark&&(h.highWaterMark=K(g)),g!==0&&(h.emittedReadable=!1),g===0&&h.needReadable&&((h.highWaterMark!==0?h.length>=h.highWaterMark:h.length>0)||h.ended))return T("read: emitReadable",h.length,h.ended),h.length===0&&h.ended?z(this):X(this),null;if(g=j(g,h),g===0&&h.ended)return h.length===0&&z(this),null;let k=h.needReadable;if(T("need readable",k),(h.length===0||h.length-g0?Z=re(g,h):Z=null,Z===null?(h.needReadable=h.length<=h.highWaterMark,g=0):(h.length-=g,h.multiAwaitDrain?h.awaitDrainWriters.clear():h.awaitDrainWriters=null),h.length===0&&(h.ended||(h.needReadable=!0),w!==g&&h.ended&&z(this)),Z!==null&&!h.errorEmitted&&!h.closeEmitted&&(h.dataEmitted=!0,this.emit("data",Z)),Z};function D(g,h){if(T("onEofChunk"),!h.ended){if(h.decoder){let w=h.decoder.end();w&&w.length&&(h.buffer.push(w),h.length+=h.objectMode?1:w.length)}h.ended=!0,h.sync?X(g):(h.needReadable=!1,h.emittedReadable=!0,le(g))}}function X(g){let h=g._readableState;T("emitReadable",h.needReadable,h.emittedReadable),h.needReadable=!1,h.emittedReadable||(T("emitReadable",h.flowing),h.emittedReadable=!0,r.nextTick(le,g))}function le(g){let h=g._readableState;T("emitReadable_",h.destroyed,h.length,h.ended),!h.destroyed&&!h.errored&&(h.length||h.ended)&&(g.emit("readable"),h.emittedReadable=!1),h.needReadable=!h.flowing&&!h.ended&&h.length<=h.highWaterMark,oe(g)}function se(g,h){!h.readingMore&&h.constructed&&(h.readingMore=!0,r.nextTick(M,g,h))}function M(g,h){for(;!h.reading&&!h.ended&&(h.length1&&k.pipes.includes(g)&&(T("false write response, pause",k.awaitDrainWriters.size),k.awaitDrainWriters.add(g)),w.pause()),Ae||(Ae=O(w,g),g.on("drain",Ae))}w.on("data",Oe);function Oe(mt){T("ondata");let ct=g.write(mt);T("dest.write",ct),ct===!1&&Pe()}function Ve(mt){if(T("onerror",mt),at(),g.removeListener("error",Ve),g.listenerCount("error")===0){let ct=g._writableState||g._readableState;ct&&!ct.errorEmitted?Y(g,mt):g.emit("error",mt)}}v(g,"error",Ve);function ut(){g.removeListener("finish",Je),at()}g.once("close",ut);function Je(){T("onfinish"),g.removeListener("close",ut),at()}g.once("finish",Je);function at(){T("unpipe"),w.unpipe(g)}return g.emit("pipe",w),g.writableNeedDrain===!0?k.flowing&&Pe():k.flowing||(T("pipe resume"),w.resume()),g};function O(g,h){return function(){let w=g._readableState;w.awaitDrainWriters===h?(T("pipeOnDrain",1),w.awaitDrainWriters=null):w.multiAwaitDrain&&(T("pipeOnDrain",w.awaitDrainWriters.size),w.awaitDrainWriters.delete(h)),(!w.awaitDrainWriters||w.awaitDrainWriters.size===0)&&g.listenerCount("data")&&g.resume()}}$.prototype.unpipe=function(g){let h=this._readableState,w={hasUnpiped:!1};if(h.pipes.length===0)return this;if(!g){let Z=h.pipes;h.pipes=[],this.pause();for(let de=0;de0,k.flowing!==!1&&this.resume()):g==="readable"&&!k.endEmitted&&!k.readableListening&&(k.readableListening=k.needReadable=!0,k.flowing=!1,k.emittedReadable=!1,T("on readable",k.length,k.reading),k.length?X(this):k.reading||r.nextTick(R,this)),w},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(g,h){let w=b.prototype.removeListener.call(this,g,h);return g==="readable"&&r.nextTick(F,this),w},$.prototype.off=$.prototype.removeListener,$.prototype.removeAllListeners=function(g){let h=b.prototype.removeAllListeners.apply(this,arguments);return(g==="readable"||g===void 0)&&r.nextTick(F,this),h};function F(g){let h=g._readableState;h.readableListening=g.listenerCount("readable")>0,h.resumeScheduled&&h[ne]===!1?h.flowing=!0:g.listenerCount("data")>0?g.resume():h.readableListening||(h.flowing=null)}function R(g){T("readable nexttick read 0"),g.read(0)}$.prototype.resume=function(){let g=this._readableState;return g.flowing||(T("resume"),g.flowing=!g.readableListening,V(this,g)),g[ne]=!1,this};function V(g,h){h.resumeScheduled||(h.resumeScheduled=!0,r.nextTick(q,g,h))}function q(g,h){T("resume",h.reading),h.reading||g.read(0),h.resumeScheduled=!1,g.emit("resume"),oe(g),h.flowing&&!h.reading&&g.read(0)}$.prototype.pause=function(){return T("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(T("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[ne]=!0,this};function oe(g){let h=g._readableState;for(T("flow",h.flowing);h.flowing&&g.read()!==null;);}$.prototype.wrap=function(g){let h=!1;g.on("data",k=>{!this.push(k)&&g.pause&&(h=!0,g.pause())}),g.on("end",()=>{this.push(null)}),g.on("error",k=>{Y(this,k)}),g.on("close",()=>{this.destroy()}),g.on("destroy",()=>{this.destroy()}),this._read=()=>{h&&g.resume&&(h=!1,g.resume())};let w=l(g);for(let k=1;k{Z=ye?W(Z,ye):null,w(),w=ae});try{for(;;){let ye=g.destroyed?null:g.read();if(ye!==null)yield ye;else{if(Z)throw Z;if(Z===null)return;await new c(k)}}}catch(ye){throw Z=W(Z,ye),Z}finally{(Z||(h==null?void 0:h.destroyOnReturn)!==!1)&&(Z===void 0||g._readableState.autoDestroy)?A.destroyer(g,null):(g.off("readable",k),de())}}o($.prototype,{readable:{__proto__:null,get(){let g=this._readableState;return!!g&&g.readable!==!1&&!g.destroyed&&!g.errorEmitted&&!g.endEmitted},set(g){this._readableState&&(this._readableState.readable=!!g)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(g){this._readableState&&(this._readableState.flowing=g)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(g){this._readableState&&(this._readableState.destroyed=g)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),o(ce.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(g){this[ne]=!!g}}}),$._fromList=re;function re(g,h){if(h.length===0)return null;let w;return h.objectMode?w=h.buffer.shift():!g||g>=h.length?(h.decoder?w=h.buffer.join(""):h.buffer.length===1?w=h.buffer.first():w=h.buffer.concat(h.length),h.buffer.clear()):w=h.buffer.consume(g,h.decoder),w}function z(g){let h=g._readableState;T("endReadable",h.endEmitted),h.endEmitted||(h.ended=!0,r.nextTick(ie,h,g))}function ie(g,h){if(T("endReadableNT",g.endEmitted,g.length),!g.errored&&!g.closeEmitted&&!g.endEmitted&&g.length===0){if(g.endEmitted=!0,h.emit("end"),h.writable&&h.allowHalfOpen===!1)r.nextTick(he,h);else if(g.autoDestroy){let w=h._writableState;(!w||w.autoDestroy&&(w.finished||w.writable===!1))&&h.destroy()}}}function he(g){g.writable&&!g.writableEnded&&!g.destroyed&&g.end()}$.from=function(g,h){return B($,g,h)};var be;function S(){return be===void 0&&(be={}),be}$.fromWeb=function(g,h){return S().newStreamReadableFromReadableStream(g,h)},$.toWeb=function(g,h){return S().newReadableStreamFromStreamReadable(g,h)},$.wrap=function(g,h){var w,k;return new $({objectMode:(w=(k=g.readableObjectMode)!==null&&k!==void 0?k:g.objectMode)!==null&&w!==void 0?w:!0,...h,destroy(Z,de){A.destroyer(g,Z),de(Z)}}).wrap(g)}}),b_=Te((t,e)=>{we(),ve(),_e();var r=Li(),{ArrayPrototypeSlice:n,Error:s,FunctionPrototypeSymbolHasInstance:i,ObjectDefineProperty:a,ObjectDefineProperties:o,ObjectSetPrototypeOf:l,StringPrototypeToLowerCase:u,Symbol:c,SymbolHasInstance:f}=ft();e.exports=te,te.WritableState=J;var{EventEmitter:d}=(Os(),Ke(Ni)),p=fp().Stream,{Buffer:m}=(vt(),Ke(_t)),b=Ms(),{addAbortSignal:v}=iu(),{getHighWaterMark:_,getDefaultHighWaterMark:E}=dp(),{ERR_INVALID_ARG_TYPE:y,ERR_METHOD_NOT_IMPLEMENTED:T,ERR_MULTIPLE_CALLBACK:x,ERR_STREAM_CANNOT_PIPE:A,ERR_STREAM_DESTROYED:P,ERR_STREAM_ALREADY_FINISHED:L,ERR_STREAM_NULL_VALUES:W,ERR_STREAM_WRITE_AFTER_END:U,ERR_UNKNOWN_ENCODING:H}=jt().codes,{errorOrDestroy:C}=b;l(te.prototype,p.prototype),l(te,p);function I(){}var N=c("kOnFinished");function J(R,V,q){typeof q!="boolean"&&(q=V instanceof dn()),this.objectMode=!!(R&&R.objectMode),q&&(this.objectMode=this.objectMode||!!(R&&R.writableObjectMode)),this.highWaterMark=R?_(this,R,"writableHighWaterMark",q):E(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let oe=!!(R&&R.decodeStrings===!1);this.decodeStrings=!oe,this.defaultEncoding=R&&R.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=$.bind(void 0,V),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,ne(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!R||R.emitClose!==!1,this.autoDestroy=!R||R.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[N]=[]}function ne(R){R.buffered=[],R.bufferedIndex=0,R.allBuffers=!0,R.allNoop=!0}J.prototype.getBuffer=function(){return n(this.buffered,this.bufferedIndex)},a(J.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function te(R){let V=this instanceof dn();if(!V&&!i(te,this))return new te(R);this._writableState=new J(R,this,V),R&&(typeof R.write=="function"&&(this._write=R.write),typeof R.writev=="function"&&(this._writev=R.writev),typeof R.destroy=="function"&&(this._destroy=R.destroy),typeof R.final=="function"&&(this._final=R.final),typeof R.construct=="function"&&(this._construct=R.construct),R.signal&&v(R.signal,this)),p.call(this,R),b.construct(this,()=>{let q=this._writableState;q.writing||K(this,q),le(this,q)})}a(te,f,{__proto__:null,value:function(R){return i(this,R)?!0:this!==te?!1:R&&R._writableState instanceof J}}),te.prototype.pipe=function(){C(this,new A)};function B(R,V,q,oe){let Q=R._writableState;if(typeof q=="function")oe=q,q=Q.defaultEncoding;else{if(!q)q=Q.defaultEncoding;else if(q!=="buffer"&&!m.isEncoding(q))throw new H(q);typeof oe!="function"&&(oe=I)}if(V===null)throw new W;if(!Q.objectMode)if(typeof V=="string")Q.decodeStrings!==!1&&(V=m.from(V,q),q="buffer");else if(V instanceof m)q="buffer";else if(p._isUint8Array(V))V=p._uint8ArrayToBuffer(V),q="buffer";else throw new y("chunk",["string","Buffer","Uint8Array"],V);let G;return Q.ending?G=new U:Q.destroyed&&(G=new P("write")),G?(r.nextTick(oe,G),C(R,G,!0),G):(Q.pendingcb++,ae(R,Q,V,q,oe))}te.prototype.write=function(R,V,q){return B(this,R,V,q)===!0},te.prototype.cork=function(){this._writableState.corked++},te.prototype.uncork=function(){let R=this._writableState;R.corked&&(R.corked--,R.writing||K(this,R))},te.prototype.setDefaultEncoding=function(R){if(typeof R=="string"&&(R=u(R)),!m.isEncoding(R))throw new H(R);return this._writableState.defaultEncoding=R,this};function ae(R,V,q,oe,Q){let G=V.objectMode?1:q.length;V.length+=G;let re=V.lengthq.bufferedIndex&&K(R,q),oe?q.afterWriteTickInfo!==null&&q.afterWriteTickInfo.cb===Q?q.afterWriteTickInfo.count++:(q.afterWriteTickInfo={count:1,cb:Q,stream:R,state:q},r.nextTick(ue,q.afterWriteTickInfo)):me(R,q,1,Q))}function ue({stream:R,state:V,count:q,cb:oe}){return V.afterWriteTickInfo=null,me(R,V,q,oe)}function me(R,V,q,oe){for(!V.ending&&!R.destroyed&&V.length===0&&V.needDrain&&(V.needDrain=!1,R.emit("drain"));q-- >0;)V.pendingcb--,oe();V.destroyed&&ee(V),le(R,V)}function ee(R){if(R.writing)return;for(let Q=R.bufferedIndex;Q1&&R._writev){V.pendingcb-=G-1;let z=V.allNoop?I:he=>{for(let be=re;be256?(q.splice(0,re),V.bufferedIndex=0):V.bufferedIndex=re}V.bufferProcessing=!1}te.prototype._write=function(R,V,q){if(this._writev)this._writev([{chunk:R,encoding:V}],q);else throw new T("_write()")},te.prototype._writev=null,te.prototype.end=function(R,V,q){let oe=this._writableState;typeof R=="function"?(q=R,R=null,V=null):typeof V=="function"&&(q=V,V=null);let Q;if(R!=null){let G=B(this,R,V);G instanceof s&&(Q=G)}return oe.corked&&(oe.corked=1,this.uncork()),Q||(!oe.errored&&!oe.ending?(oe.ending=!0,le(this,oe,!0),oe.ended=!0):oe.finished?Q=new L("end"):oe.destroyed&&(Q=new P("end"))),typeof q=="function"&&(Q||oe.finished?r.nextTick(q,Q):oe[N].push(q)),this};function j(R){return R.ending&&!R.destroyed&&R.constructed&&R.length===0&&!R.errored&&R.buffered.length===0&&!R.finished&&!R.writing&&!R.errorEmitted&&!R.closeEmitted}function D(R,V){let q=!1;function oe(Q){if(q){C(R,Q??x());return}if(q=!0,V.pendingcb--,Q){let G=V[N].splice(0);for(let re=0;re{j(Q)?se(oe,Q):Q.pendingcb--},R,V)):j(V)&&(V.pendingcb++,se(R,V))))}function se(R,V){V.pendingcb--,V.finished=!0;let q=V[N].splice(0);for(let oe=0;oe{we(),ve(),_e();var r=Li(),n=(vt(),Ke(_t)),{isReadable:s,isWritable:i,isIterable:a,isNodeStream:o,isReadableNodeStream:l,isWritableNodeStream:u,isDuplexNodeStream:c}=bn(),f=jn(),{AbortError:d,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:m}}=jt(),{destroyer:b}=Ms(),v=dn(),_=ou(),{createDeferredPromise:E}=fn(),y=m_(),T=globalThis.Blob||n.Blob,x=typeof T<"u"?function(H){return H instanceof T}:function(H){return!1},A=globalThis.AbortController||cp().AbortController,{FunctionPrototypeCall:P}=ft(),L=class extends v{constructor(H){super(H),(H==null?void 0:H.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(H==null?void 0:H.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};e.exports=function H(C,I){if(c(C))return C;if(l(C))return U({readable:C});if(u(C))return U({writable:C});if(o(C))return U({writable:!1,readable:!1});if(typeof C=="function"){let{value:J,write:ne,final:te,destroy:B}=W(C);if(a(J))return y(L,J,{objectMode:!0,write:ne,final:te,destroy:B});let ae=J==null?void 0:J.then;if(typeof ae=="function"){let Y,ce=P(ae,J,$=>{if($!=null)throw new m("nully","body",$)},$=>{b(Y,$)});return Y=new L({objectMode:!0,readable:!1,write:ne,final($){te(async()=>{try{await ce,r.nextTick($,null)}catch(ue){r.nextTick($,ue)}})},destroy:B})}throw new m("Iterable, AsyncIterable or AsyncFunction",I,J)}if(x(C))return H(C.arrayBuffer());if(a(C))return y(L,C,{objectMode:!0,writable:!1});if(typeof(C==null?void 0:C.writable)=="object"||typeof(C==null?void 0:C.readable)=="object"){let J=C!=null&&C.readable?l(C==null?void 0:C.readable)?C==null?void 0:C.readable:H(C.readable):void 0,ne=C!=null&&C.writable?u(C==null?void 0:C.writable)?C==null?void 0:C.writable:H(C.writable):void 0;return U({readable:J,writable:ne})}let N=C==null?void 0:C.then;if(typeof N=="function"){let J;return P(N,C,ne=>{ne!=null&&J.push(ne),J.push(null)},ne=>{b(J,ne)}),J=new L({objectMode:!0,writable:!1,read(){}})}throw new p(I,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],C)};function W(H){let{promise:C,resolve:I}=E(),N=new A,J=N.signal;return{value:H(async function*(){for(;;){let ne=C;C=null;let{chunk:te,done:B,cb:ae}=await ne;if(r.nextTick(ae),B)return;if(J.aborted)throw new d(void 0,{cause:J.reason});({promise:C,resolve:I}=E()),yield te}}(),{signal:J}),write(ne,te,B){let ae=I;I=null,ae({chunk:ne,done:!1,cb:B})},final(ne){let te=I;I=null,te({done:!0,cb:ne})},destroy(ne,te){N.abort(),te(ne)}}}function U(H){let C=H.readable&&typeof H.readable.read!="function"?_.wrap(H.readable):H.readable,I=H.writable,N=!!s(C),J=!!i(I),ne,te,B,ae,Y;function ce($){let ue=ae;ae=null,ue?ue($):$&&Y.destroy($)}return Y=new L({readableObjectMode:!!(C!=null&&C.readableObjectMode),writableObjectMode:!!(I!=null&&I.writableObjectMode),readable:N,writable:J}),J&&(f(I,$=>{J=!1,$&&b(C,$),ce($)}),Y._write=function($,ue,me){I.write($,ue)?me():ne=me},Y._final=function($){I.end(),te=$},I.on("drain",function(){if(ne){let $=ne;ne=null,$()}}),I.on("finish",function(){if(te){let $=te;te=null,$()}})),N&&(f(C,$=>{N=!1,$&&b(C,$),ce($)}),C.on("readable",function(){if(B){let $=B;B=null,$()}}),C.on("end",function(){Y.push(null)}),Y._read=function(){for(;;){let $=C.read();if($===null){B=Y._read;return}if(!Y.push($))return}}),Y._destroy=function($,ue){!$&&ae!==null&&($=new d),B=null,ne=null,te=null,ae===null?ue($):(ae=ue,b(I,$),b(C,$))},Y}}),dn=Te((t,e)=>{we(),ve(),_e();var{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:s,ObjectSetPrototypeOf:i}=ft();e.exports=l;var a=ou(),o=b_();i(l.prototype,a.prototype),i(l,a);{let d=s(o.prototype);for(let p=0;p{we(),ve(),_e();var{ObjectSetPrototypeOf:r,Symbol:n}=ft();e.exports=l;var{ERR_METHOD_NOT_IMPLEMENTED:s}=jt().codes,i=dn(),{getHighWaterMark:a}=dp();r(l.prototype,i.prototype),r(l,i);var o=n("kCallback");function l(f){if(!(this instanceof l))return new l(f);let d=f?a(this,f,"readableHighWaterMark",!0):null;d===0&&(f={...f,highWaterMark:null,readableHighWaterMark:d,writableHighWaterMark:f.writableHighWaterMark||0}),i.call(this,f),this._readableState.sync=!1,this[o]=null,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",c)}function u(f){typeof this._flush=="function"&&!this.destroyed?this._flush((d,p)=>{if(d){f?f(d):this.destroy(d);return}p!=null&&this.push(p),this.push(null),f&&f()}):(this.push(null),f&&f())}function c(){this._final!==u&&u.call(this)}l.prototype._final=u,l.prototype._transform=function(f,d,p){throw new s("_transform()")},l.prototype._write=function(f,d,p){let m=this._readableState,b=this._writableState,v=m.length;this._transform(f,d,(_,E)=>{if(_){p(_);return}E!=null&&this.push(E),b.ended||v===m.length||m.length{we(),ve(),_e();var{ObjectSetPrototypeOf:r}=ft();e.exports=s;var n=y_();r(s.prototype,n.prototype),r(s,n);function s(i){if(!(this instanceof s))return new s(i);n.call(this,i)}s.prototype._transform=function(i,a,o){o(null,i)}}),gp=Te((t,e)=>{we(),ve(),_e();var r=Li(),{ArrayIsArray:n,Promise:s,SymbolAsyncIterator:i}=ft(),a=jn(),{once:o}=fn(),l=Ms(),u=dn(),{aggregateTwoErrors:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:d,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:m,ERR_STREAM_PREMATURE_CLOSE:b},AbortError:v}=jt(),{validateFunction:_,validateAbortSignal:E}=nu(),{isIterable:y,isReadable:T,isReadableNodeStream:x,isNodeStream:A,isTransformStream:P,isWebStream:L,isReadableStream:W,isReadableEnded:U}=bn(),H=globalThis.AbortController||cp().AbortController,C,I;function N(ue,me,ee){let K=!1;ue.on("close",()=>{K=!0});let j=a(ue,{readable:me,writable:ee},D=>{K=!D});return{destroy:D=>{K||(K=!0,l.destroyer(ue,D||new m("pipe")))},cleanup:j}}function J(ue){return _(ue[ue.length-1],"streams[stream.length - 1]"),ue.pop()}function ne(ue){if(y(ue))return ue;if(x(ue))return te(ue);throw new f("val",["Readable","Iterable","AsyncIterable"],ue)}async function*te(ue){I||(I=ou()),yield*I.prototype[i].call(ue)}async function B(ue,me,ee,{end:K}){let j,D=null,X=M=>{if(M&&(j=M),D){let O=D;D=null,O()}},le=()=>new s((M,O)=>{j?O(j):D=()=>{j?O(j):M()}});me.on("drain",X);let se=a(me,{readable:!1},X);try{me.writableNeedDrain&&await le();for await(let M of ue)me.write(M)||await le();K&&me.end(),await le(),ee()}catch(M){ee(j!==M?c(j,M):M)}finally{se(),me.off("drain",X)}}async function ae(ue,me,ee,{end:K}){P(me)&&(me=me.writable);let j=me.getWriter();try{for await(let D of ue)await j.ready,j.write(D).catch(()=>{});await j.ready,K&&await j.close(),ee()}catch(D){try{await j.abort(D),ee(D)}catch(X){ee(X)}}}function Y(...ue){return ce(ue,o(J(ue)))}function ce(ue,me,ee){if(ue.length===1&&n(ue[0])&&(ue=ue[0]),ue.length<2)throw new p("streams");let K=new H,j=K.signal,D=ee==null?void 0:ee.signal,X=[];E(D,"options.signal");function le(){V(new v)}D==null||D.addEventListener("abort",le);let se,M,O=[],F=0;function R(G){V(G,--F===0)}function V(G,re){if(G&&(!se||se.code==="ERR_STREAM_PREMATURE_CLOSE")&&(se=G),!(!se&&!re)){for(;O.length;)O.shift()(se);D==null||D.removeEventListener("abort",le),K.abort(),re&&(se||X.forEach(z=>z()),r.nextTick(me,se,M))}}let q;for(let G=0;G0,he=z||(ee==null?void 0:ee.end)!==!1,be=G===ue.length-1;if(A(re)){let S=function(g){g&&g.name!=="AbortError"&&g.code!=="ERR_STREAM_PREMATURE_CLOSE"&&R(g)};if(he){let{destroy:g,cleanup:h}=N(re,z,ie);O.push(g),T(re)&&be&&X.push(h)}re.on("error",S),T(re)&&be&&X.push(()=>{re.removeListener("error",S)})}if(G===0)if(typeof re=="function"){if(q=re({signal:j}),!y(q))throw new d("Iterable, AsyncIterable or Stream","source",q)}else y(re)||x(re)||P(re)?q=re:q=u.from(re);else if(typeof re=="function"){if(P(q)){var oe;q=ne((oe=q)===null||oe===void 0?void 0:oe.readable)}else q=ne(q);if(q=re(q,{signal:j}),z){if(!y(q,!0))throw new d("AsyncIterable",`transform[${G-1}]`,q)}else{var Q;C||(C=w_());let S=new C({objectMode:!0}),g=(Q=q)===null||Q===void 0?void 0:Q.then;if(typeof g=="function")F++,g.call(q,k=>{M=k,k!=null&&S.write(k),he&&S.end(),r.nextTick(R)},k=>{S.destroy(k),r.nextTick(R,k)});else if(y(q,!0))F++,B(q,S,R,{end:he});else if(W(q)||P(q)){let k=q.readable||q;F++,B(k,S,R,{end:he})}else throw new d("AsyncIterable or Promise","destination",q);q=S;let{destroy:h,cleanup:w}=N(q,!1,!0);O.push(h),be&&X.push(w)}}else if(A(re)){if(x(q)){F+=2;let S=$(q,re,R,{end:he});T(re)&&be&&X.push(S)}else if(P(q)||W(q)){let S=q.readable||q;F++,B(S,re,R,{end:he})}else if(y(q))F++,B(q,re,R,{end:he});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],q);q=re}else if(L(re)){if(x(q))F++,ae(ne(q),re,R,{end:he});else if(W(q)||y(q))F++,ae(q,re,R,{end:he});else if(P(q))F++,ae(q.readable,re,R,{end:he});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],q);q=re}else q=u.from(re)}return(j!=null&&j.aborted||D!=null&&D.aborted)&&r.nextTick(le),q}function $(ue,me,ee,{end:K}){let j=!1;if(me.on("close",()=>{j||ee(new b)}),ue.pipe(me,{end:!1}),K){let D=function(){j=!0,me.end()};U(ue)?r.nextTick(D):ue.once("end",D)}else ee();return a(ue,{readable:!0,writable:!1},D=>{let X=ue._readableState;D&&D.code==="ERR_STREAM_PREMATURE_CLOSE"&&X&&X.ended&&!X.errored&&!X.errorEmitted?ue.once("end",ee).once("error",ee):ee(D)}),a(me,{readable:!1,writable:!0},ee)}e.exports={pipelineImpl:ce,pipeline:Y}}),__=Te((t,e)=>{we(),ve(),_e();var{pipeline:r}=gp(),n=dn(),{destroyer:s}=Ms(),{isNodeStream:i,isReadable:a,isWritable:o,isWebStream:l,isTransformStream:u,isWritableStream:c,isReadableStream:f}=bn(),{AbortError:d,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:m}}=jt(),b=jn();e.exports=function(...v){if(v.length===0)throw new m("streams");if(v.length===1)return n.from(v[0]);let _=[...v];if(typeof v[0]=="function"&&(v[0]=n.from(v[0])),typeof v[v.length-1]=="function"){let C=v.length-1;v[C]=n.from(v[C])}for(let C=0;C0&&!(o(v[C])||c(v[C])||u(v[C])))throw new p(`streams[${C}]`,_[C],"must be writable")}let E,y,T,x,A;function P(C){let I=x;x=null,I?I(C):C?A.destroy(C):!H&&!U&&A.destroy()}let L=v[0],W=r(v,P),U=!!(o(L)||c(L)||u(L)),H=!!(a(W)||f(W)||u(W));if(A=new n({writableObjectMode:!!(L!=null&&L.writableObjectMode),readableObjectMode:!!(W!=null&&W.writableObjectMode),writable:U,readable:H}),U){if(i(L))A._write=function(I,N,J){L.write(I,N)?J():E=J},A._final=function(I){L.end(),y=I},L.on("drain",function(){if(E){let I=E;E=null,I()}});else if(l(L)){let I=(u(L)?L.writable:L).getWriter();A._write=async function(N,J,ne){try{await I.ready,I.write(N).catch(()=>{}),ne()}catch(te){ne(te)}},A._final=async function(N){try{await I.ready,I.close().catch(()=>{}),y=N}catch(J){N(J)}}}let C=u(W)?W.readable:W;b(C,()=>{if(y){let I=y;y=null,I()}})}if(H){if(i(W))W.on("readable",function(){if(T){let C=T;T=null,C()}}),W.on("end",function(){A.push(null)}),A._read=function(){for(;;){let C=W.read();if(C===null){T=A._read;return}if(!A.push(C))return}};else if(l(W)){let C=(u(W)?W.readable:W).getReader();A._read=async function(){for(;;)try{let{value:I,done:N}=await C.read();if(!A.push(I))return;if(N){A.push(null);return}}catch{return}}}}return A._destroy=function(C,I){!C&&x!==null&&(C=new d),T=null,E=null,y=null,x===null?I(C):(x=I,i(W)&&s(W,C))},A}}),nP=Te((t,e)=>{we(),ve(),_e();var r=globalThis.AbortController||cp().AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:s,ERR_MISSING_ARGS:i,ERR_OUT_OF_RANGE:a},AbortError:o}=jt(),{validateAbortSignal:l,validateInteger:u,validateObject:c}=nu(),f=ft().Symbol("kWeak"),{finished:d}=jn(),p=__(),{addAbortSignalNoValidate:m}=iu(),{isWritable:b,isNodeStream:v}=bn(),{ArrayPrototypePush:_,MathFloor:E,Number:y,NumberIsNaN:T,Promise:x,PromiseReject:A,PromisePrototypeThen:P,Symbol:L}=ft(),W=L("kEmpty"),U=L("kEof");function H(K,j){if(j!=null&&c(j,"options"),(j==null?void 0:j.signal)!=null&&l(j.signal,"options.signal"),v(K)&&!b(K))throw new n("stream",K,"must be writable");let D=p(this,K);return j!=null&&j.signal&&m(j.signal,D),D}function C(K,j){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);j!=null&&c(j,"options"),(j==null?void 0:j.signal)!=null&&l(j.signal,"options.signal");let D=1;return(j==null?void 0:j.concurrency)!=null&&(D=E(j.concurrency)),u(D,"concurrency",1),(async function*(){var X,le;let se=new r,M=this,O=[],F=se.signal,R={signal:F},V=()=>se.abort();j!=null&&(X=j.signal)!==null&&X!==void 0&&X.aborted&&V(),j==null||(le=j.signal)===null||le===void 0||le.addEventListener("abort",V);let q,oe,Q=!1;function G(){Q=!0}async function re(){try{for await(let he of M){var z;if(Q)return;if(F.aborted)throw new o;try{he=K(he,R)}catch(be){he=A(be)}he!==W&&(typeof((z=he)===null||z===void 0?void 0:z.catch)=="function"&&he.catch(G),O.push(he),q&&(q(),q=null),!Q&&O.length&&O.length>=D&&await new x(be=>{oe=be}))}O.push(U)}catch(he){let be=A(he);P(be,void 0,G),O.push(be)}finally{var ie;Q=!0,q&&(q(),q=null),j==null||(ie=j.signal)===null||ie===void 0||ie.removeEventListener("abort",V)}}re();try{for(;;){for(;O.length>0;){let z=await O[0];if(z===U)return;if(F.aborted)throw new o;z!==W&&(yield z),O.shift(),oe&&(oe(),oe=null)}await new x(z=>{q=z})}}finally{se.abort(),Q=!0,oe&&(oe(),oe=null)}}).call(this)}function I(K=void 0){return K!=null&&c(K,"options"),(K==null?void 0:K.signal)!=null&&l(K.signal,"options.signal"),(async function*(){let j=0;for await(let X of this){var D;if(K!=null&&(D=K.signal)!==null&&D!==void 0&&D.aborted)throw new o({cause:K.signal.reason});yield[j++,X]}}).call(this)}async function N(K,j=void 0){for await(let D of B.call(this,K,j))return!0;return!1}async function J(K,j=void 0){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);return!await N.call(this,async(...D)=>!await K(...D),j)}async function ne(K,j){for await(let D of B.call(this,K,j))return D}async function te(K,j){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);async function D(X,le){return await K(X,le),W}for await(let X of C.call(this,D,j));}function B(K,j){if(typeof K!="function")throw new s("fn",["Function","AsyncFunction"],K);async function D(X,le){return await K(X,le)?X:W}return C.call(this,D,j)}var ae=class extends i{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function Y(K,j,D){var X;if(typeof K!="function")throw new s("reducer",["Function","AsyncFunction"],K);D!=null&&c(D,"options"),(D==null?void 0:D.signal)!=null&&l(D.signal,"options.signal");let le=arguments.length>1;if(D!=null&&(X=D.signal)!==null&&X!==void 0&&X.aborted){let R=new o(void 0,{cause:D.signal.reason});throw this.once("error",()=>{}),await d(this.destroy(R)),R}let se=new r,M=se.signal;if(D!=null&&D.signal){let R={once:!0,[f]:this};D.signal.addEventListener("abort",()=>se.abort(),R)}let O=!1;try{for await(let R of this){var F;if(O=!0,D!=null&&(F=D.signal)!==null&&F!==void 0&&F.aborted)throw new o;le?j=await K(j,R,{signal:M}):(j=R,le=!0)}if(!O&&!le)throw new ae}finally{se.abort()}return j}async function ce(K){K!=null&&c(K,"options"),(K==null?void 0:K.signal)!=null&&l(K.signal,"options.signal");let j=[];for await(let X of this){var D;if(K!=null&&(D=K.signal)!==null&&D!==void 0&&D.aborted)throw new o(void 0,{cause:K.signal.reason});_(j,X)}return j}function $(K,j){let D=C.call(this,K,j);return(async function*(){for await(let X of D)yield*X}).call(this)}function ue(K){if(K=y(K),T(K))return 0;if(K<0)throw new a("number",">= 0",K);return K}function me(K,j=void 0){return j!=null&&c(j,"options"),(j==null?void 0:j.signal)!=null&&l(j.signal,"options.signal"),K=ue(K),(async function*(){var D;if(j!=null&&(D=j.signal)!==null&&D!==void 0&&D.aborted)throw new o;for await(let le of this){var X;if(j!=null&&(X=j.signal)!==null&&X!==void 0&&X.aborted)throw new o;K--<=0&&(yield le)}}).call(this)}function ee(K,j=void 0){return j!=null&&c(j,"options"),(j==null?void 0:j.signal)!=null&&l(j.signal,"options.signal"),K=ue(K),(async function*(){var D;if(j!=null&&(D=j.signal)!==null&&D!==void 0&&D.aborted)throw new o;for await(let le of this){var X;if(j!=null&&(X=j.signal)!==null&&X!==void 0&&X.aborted)throw new o;if(K-- >0)yield le;else return}}).call(this)}e.exports.streamReturningOperators={asIndexedPairs:I,drop:me,filter:B,flatMap:$,map:C,take:ee,compose:H},e.exports.promiseReturningOperators={every:J,forEach:te,reduce:Y,toArray:ce,some:N,find:ne}}),v_=Te((t,e)=>{we(),ve(),_e();var{ArrayPrototypePop:r,Promise:n}=ft(),{isIterable:s,isNodeStream:i,isWebStream:a}=bn(),{pipelineImpl:o}=gp(),{finished:l}=jn();E_();function u(...c){return new n((f,d)=>{let p,m,b=c[c.length-1];if(b&&typeof b=="object"&&!i(b)&&!s(b)&&!a(b)){let v=r(c);p=v.signal,m=v.end}o(c,(v,_)=>{v?d(v):f(_)},{signal:p,end:m})})}e.exports={finished:l,pipeline:u}}),E_=Te((t,e)=>{we(),ve(),_e();var{Buffer:r}=(vt(),Ke(_t)),{ObjectDefineProperty:n,ObjectKeys:s,ReflectApply:i}=ft(),{promisify:{custom:a}}=fn(),{streamReturningOperators:o,promiseReturningOperators:l}=nP(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=jt(),c=__(),{pipeline:f}=gp(),{destroyer:d}=Ms(),p=jn(),m=v_(),b=bn(),v=e.exports=fp().Stream;v.isDisturbed=b.isDisturbed,v.isErrored=b.isErrored,v.isReadable=b.isReadable,v.Readable=ou();for(let E of s(o)){let y=function(...x){if(new.target)throw u();return v.Readable.from(i(T,this,x))},T=o[E];n(y,"name",{__proto__:null,value:T.name}),n(y,"length",{__proto__:null,value:T.length}),n(v.Readable.prototype,E,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}for(let E of s(l)){let y=function(...x){if(new.target)throw u();return i(T,this,x)},T=l[E];n(y,"name",{__proto__:null,value:T.name}),n(y,"length",{__proto__:null,value:T.length}),n(v.Readable.prototype,E,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}v.Writable=b_(),v.Duplex=dn(),v.Transform=y_(),v.PassThrough=w_(),v.pipeline=f;var{addAbortSignal:_}=iu();v.addAbortSignal=_,v.finished=p,v.destroy=d,v.compose=c,n(v,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return m}}),n(f,a,{__proto__:null,enumerable:!0,get(){return m.pipeline}}),n(p,a,{__proto__:null,enumerable:!0,get(){return m.finished}}),v.Stream=v,v._isUint8Array=function(E){return E instanceof Uint8Array},v._uint8ArrayToBuffer=function(E){return r.from(E.buffer,E.byteOffset,E.byteLength)}}),Di=Te((t,e)=>{we(),ve(),_e();var r=E_(),n=v_(),s=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=s,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return n}}),e.exports.Stream=r.Stream,e.exports.default=e.exports}),iP=Te((t,e)=>{we(),ve(),_e(),typeof Object.create=="function"?e.exports=function(r,n){n&&(r.super_=n,r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(r,n){if(n){r.super_=n;var s=function(){};s.prototype=n.prototype,r.prototype=new s,r.prototype.constructor=r}}}),sP=Te((t,e)=>{we(),ve(),_e();var{Buffer:r}=(vt(),Ke(_t)),n=Symbol.for("BufferList");function s(i){if(!(this instanceof s))return new s(i);s._init.call(this,i)}s._init=function(i){Object.defineProperty(this,n,{value:!0}),this._bufs=[],this.length=0,i&&this.append(i)},s.prototype._new=function(i){return new s(i)},s.prototype._offset=function(i){if(i===0)return[0,0];let a=0;for(let o=0;othis.length||i<0)return;let a=this._offset(i);return this._bufs[a[0]][a[1]]},s.prototype.slice=function(i,a){return typeof i=="number"&&i<0&&(i+=this.length),typeof a=="number"&&a<0&&(a+=this.length),this.copy(null,0,i,a)},s.prototype.copy=function(i,a,o,l){if((typeof o!="number"||o<0)&&(o=0),(typeof l!="number"||l>this.length)&&(l=this.length),o>=this.length||l<=0)return i||r.alloc(0);let u=!!i,c=this._offset(o),f=l-o,d=f,p=u&&a||0,m=c[1];if(o===0&&l===this.length){if(!u)return this._bufs.length===1?this._bufs[0]:r.concat(this._bufs,this.length);for(let b=0;bv)this._bufs[b].copy(i,p,m),p+=v;else{this._bufs[b].copy(i,p,m,m+d),p+=v;break}d-=v,m&&(m=0)}return i.length>p?i.slice(0,p):i},s.prototype.shallowSlice=function(i,a){if(i=i||0,a=typeof a!="number"?this.length:a,i<0&&(i+=this.length),a<0&&(a+=this.length),i===a)return this._new();let o=this._offset(i),l=this._offset(a),u=this._bufs.slice(o[0],l[0]+1);return l[1]===0?u.pop():u[u.length-1]=u[u.length-1].slice(0,l[1]),o[1]!==0&&(u[0]=u[0].slice(o[1])),this._new(u)},s.prototype.toString=function(i,a,o){return this.slice(a,o).toString(i)},s.prototype.consume=function(i){if(i=Math.trunc(i),Number.isNaN(i)||i<=0)return this;for(;this._bufs.length;)if(i>=this._bufs[0].length)i-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(i),this.length-=i;break}return this},s.prototype.duplicate=function(){let i=this._new();for(let a=0;athis.length?this.length:a;let l=this._offset(a),u=l[0],c=l[1];for(;u=i.length){let d=f.indexOf(i,c);if(d!==-1)return this._reverseOffset([u,d]);c=f.length-i.length+1}else{let d=this._reverseOffset([u,c]);if(this._match(d,i))return d;c++}c=0}return-1},s.prototype._match=function(i,a){if(this.length-i{we(),ve(),_e();var r=Di().Duplex,n=iP(),s=sP();function i(a){if(!(this instanceof i))return new i(a);if(typeof a=="function"){this._callback=a;let o=(function(l){this._callback&&(this._callback(l),this._callback=null)}).bind(this);this.on("pipe",function(l){l.on("error",o)}),this.on("unpipe",function(l){l.removeListener("error",o)}),a=null}s._init.call(this,a),r.call(this)}n(i,r),Object.assign(i.prototype,s.prototype),i.prototype._new=function(a){return new i(a)},i.prototype._write=function(a,o,l){this._appendBuffer(a),typeof l=="function"&&l()},i.prototype._read=function(a){if(!this.length)return this.push(null);a=Math.min(a,this.length),this.push(this.slice(0,a)),this.consume(a)},i.prototype.end=function(a){r.prototype.end.call(this,a),this._callback&&(this._callback(null,this.slice()),this._callback=null)},i.prototype._destroy=function(a,o){this._bufs.length=0,this.length=0,o(a)},i.prototype._isBufferList=function(a){return a instanceof i||a instanceof s||i.isBufferList(a)},i.isBufferList=s.isBufferList,e.exports=i,e.exports.BufferListStream=i,e.exports.BufferList=s}),aP=Te((t,e)=>{we(),ve(),_e();var r=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};e.exports=r}),S_=Te((t,e)=>{we(),ve(),_e();var r=e.exports,{Buffer:n}=(vt(),Ke(_t));r.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},r.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},r.requiredHeaderFlagsErrors={};for(let i in r.requiredHeaderFlags){let a=r.requiredHeaderFlags[i];r.requiredHeaderFlagsErrors[i]="Invalid header flag bits, must be 0x"+a.toString(16)+" for "+r.types[i]+" packet"}r.codes={};for(let i in r.types){let a=r.types[i];r.codes[a]=i}r.CMD_SHIFT=4,r.CMD_MASK=240,r.DUP_MASK=8,r.QOS_MASK=3,r.QOS_SHIFT=1,r.RETAIN_MASK=1,r.VARBYTEINT_MASK=127,r.VARBYTEINT_FIN_MASK=128,r.VARBYTEINT_MAX=268435455,r.SESSIONPRESENT_MASK=1,r.SESSIONPRESENT_HEADER=n.from([r.SESSIONPRESENT_MASK]),r.CONNACK_HEADER=n.from([r.codes.connack<[0,1].map(o=>[0,1].map(l=>{let u=n.alloc(1);return u.writeUInt8(r.codes[i]<n.from([i])),r.EMPTY={pingreq:n.from([r.codes.pingreq<<4,0]),pingresp:n.from([r.codes.pingresp<<4,0]),disconnect:n.from([r.codes.disconnect<<4,0])},r.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},r.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},r.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},r.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),lP=Te((t,e)=>{we(),ve(),_e();var r=1e3,n=r*60,s=n*60,i=s*24,a=i*7,o=i*365.25;e.exports=function(d,p){p=p||{};var m=typeof d;if(m==="string"&&d.length>0)return l(d);if(m==="number"&&isFinite(d))return p.long?c(d):u(d);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(d))};function l(d){if(d=String(d),!(d.length>100)){var p=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(d);if(p){var m=parseFloat(p[1]),b=(p[2]||"ms").toLowerCase();switch(b){case"years":case"year":case"yrs":case"yr":case"y":return m*o;case"weeks":case"week":case"w":return m*a;case"days":case"day":case"d":return m*i;case"hours":case"hour":case"hrs":case"hr":case"h":return m*s;case"minutes":case"minute":case"mins":case"min":case"m":return m*n;case"seconds":case"second":case"secs":case"sec":case"s":return m*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return m;default:return}}}}function u(d){var p=Math.abs(d);return p>=i?Math.round(d/i)+"d":p>=s?Math.round(d/s)+"h":p>=n?Math.round(d/n)+"m":p>=r?Math.round(d/r)+"s":d+"ms"}function c(d){var p=Math.abs(d);return p>=i?f(d,p,i,"day"):p>=s?f(d,p,s,"hour"):p>=n?f(d,p,n,"minute"):p>=r?f(d,p,r,"second"):d+" ms"}function f(d,p,m,b){var v=p>=m*1.5;return Math.round(d/m)+" "+b+(v?"s":"")}}),uP=Te((t,e)=>{we(),ve(),_e();function r(n){i.debug=i,i.default=i,i.coerce=f,i.disable=l,i.enable=o,i.enabled=u,i.humanize=lP(),i.destroy=d,Object.keys(n).forEach(p=>{i[p]=n[p]}),i.names=[],i.skips=[],i.formatters={};function s(p){let m=0;for(let b=0;b{if(L==="%%")return"%";P++;let U=i.formatters[W];if(typeof U=="function"){let H=y[P];L=U.call(T,H),y.splice(P,1),P--}return L}),i.formatArgs.call(T,y),(T.log||i.log).apply(T,y)}return E.namespace=p,E.useColors=i.useColors(),E.color=i.selectColor(p),E.extend=a,E.destroy=i.destroy,Object.defineProperty(E,"enabled",{enumerable:!0,configurable:!1,get:()=>b!==null?b:(v!==i.namespaces&&(v=i.namespaces,_=i.enabled(p)),_),set:y=>{b=y}}),typeof i.init=="function"&&i.init(E),E}function a(p,m){let b=i(this.namespace+(typeof m>"u"?":":m)+p);return b.log=this.log,b}function o(p){i.save(p),i.namespaces=p,i.names=[],i.skips=[];let m,b=(typeof p=="string"?p:"").split(/[\s,]+/),v=b.length;for(m=0;m"-"+m)].join(",");return i.enable(""),p}function u(p){if(p[p.length-1]==="*")return!0;let m,b;for(m=0,b=i.skips.length;m{we(),ve(),_e(),t.formatArgs=n,t.save=s,t.load=i,t.useColors=r,t.storage=a(),t.destroy=(()=>{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let u="color: "+this.color;l.splice(1,0,u,"color: inherit");let c=0,f=0;l[0].replace(/%[a-zA-Z%]/g,d=>{d!=="%%"&&(c++,d==="%c"&&(f=c))}),l.splice(f,0,u)}t.log=console.debug||console.log||(()=>{});function s(l){try{l?t.storage.setItem("debug",l):t.storage.removeItem("debug")}catch{}}function i(){let l;try{l=t.storage.getItem("debug")}catch{}return!l&&typeof ze<"u"&&"env"in ze&&(l=ze.env.DEBUG),l}function a(){try{return localStorage}catch{}}e.exports=uP()(t);var{formatters:o}=e.exports;o.j=function(l){try{return JSON.stringify(l)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}}),cP=Te((t,e)=>{we(),ve(),_e();var r=oP(),{EventEmitter:n}=(Os(),Ke(Ni)),s=aP(),i=S_(),a=hn()("mqtt-packet:parser"),o=class Gd extends n{constructor(){super(),this.parser=this.constructor.parser}static parser(u){return this instanceof Gd?(this.settings=u||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new Gd().parser(u)}_resetState(){a("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new s,this.error=null,this._list=r(),this._stateCounter=0}parse(u){for(this.error&&this._resetState(),this._list.append(u),a("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,a("parse: state complete. _stateCounter is now: %d",this._stateCounter),a("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return a("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let u=this._list.readUInt8(0),c=u>>i.CMD_SHIFT;this.packet.cmd=i.types[c];let f=u&15,d=i.requiredHeaderFlags[c];return d!=null&&f!==d?this._emitError(new Error(i.requiredHeaderFlagsErrors[c])):(this.packet.retain=(u&i.RETAIN_MASK)!==0,this.packet.qos=u>>i.QOS_SHIFT&i.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(u&i.DUP_MASK)!==0,a("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let u=this._parseVarByteNum(!0);return u&&(this.packet.length=u.value,this._list.consume(u.bytes)),a("_parseLength %d",u.value),!!u}_parsePayload(){a("_parsePayload: payload %O",this._list);let u=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}u=!0}return a("_parsePayload complete result: %s",u),u}_parseConnect(){a("_parseConnect");let u,c,f,d,p={},m=this.packet,b=this._parseString();if(b===null)return this._emitError(new Error("Cannot parse protocolId"));if(b!=="MQTT"&&b!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(m.protocolId=b,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(m.protocolVersion=this._list.readUInt8(this._pos),m.protocolVersion>=128&&(m.bridgeMode=!0,m.protocolVersion=m.protocolVersion-128),m.protocolVersion!==3&&m.protocolVersion!==4&&m.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));p.username=this._list.readUInt8(this._pos)&i.USERNAME_MASK,p.password=this._list.readUInt8(this._pos)&i.PASSWORD_MASK,p.will=this._list.readUInt8(this._pos)&i.WILL_FLAG_MASK;let v=!!(this._list.readUInt8(this._pos)&i.WILL_RETAIN_MASK),_=(this._list.readUInt8(this._pos)&i.WILL_QOS_MASK)>>i.WILL_QOS_SHIFT;if(p.will)m.will={},m.will.retain=v,m.will.qos=_;else{if(v)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(_)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(m.clean=(this._list.readUInt8(this._pos)&i.CLEAN_SESSION_MASK)!==0,this._pos++,m.keepalive=this._parseNum(),m.keepalive===-1)return this._emitError(new Error("Packet too short"));if(m.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(m.properties=y)}let E=this._parseString();if(E===null)return this._emitError(new Error("Packet too short"));if(m.clientId=E,a("_parseConnect: packet.clientId: %s",m.clientId),p.will){if(m.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(m.will.properties=y)}if(u=this._parseString(),u===null)return this._emitError(new Error("Cannot parse will topic"));if(m.will.topic=u,a("_parseConnect: packet.will.topic: %s",m.will.topic),c=this._parseBuffer(),c===null)return this._emitError(new Error("Cannot parse will payload"));m.will.payload=c,a("_parseConnect: packet.will.paylaod: %s",m.will.payload)}if(p.username){if(d=this._parseString(),d===null)return this._emitError(new Error("Cannot parse username"));m.username=d,a("_parseConnect: packet.username: %s",m.username)}if(p.password){if(f=this._parseBuffer(),f===null)return this._emitError(new Error("Cannot parse password"));m.password=f}return this.settings=m,a("_parseConnect: complete"),m}_parseConnack(){a("_parseConnack");let u=this.packet;if(this._list.length<1)return null;let c=this._list.readUInt8(this._pos++);if(c>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(u.sessionPresent=!!(c&i.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?u.reasonCode=this._list.readUInt8(this._pos++):u.reasonCode=0;else{if(this._list.length<2)return null;u.returnCode=this._list.readUInt8(this._pos++)}if(u.returnCode===-1||u.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let f=this._parseProperties();Object.getOwnPropertyNames(f).length&&(u.properties=f)}a("_parseConnack: complete")}_parsePublish(){a("_parsePublish");let u=this.packet;if(u.topic=this._parseString(),u.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(u.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}u.payload=this._list.slice(this._pos,u.length),a("_parsePublish: payload from buffer list: %o",u.payload)}}_parseSubscribe(){a("_parseSubscribe");let u=this.packet,c,f,d,p,m,b,v;if(u.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let _=this._parseProperties();Object.getOwnPropertyNames(_).length&&(u.properties=_)}if(u.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=u.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(f=this._parseByte(),this.settings.protocolVersion===5){if(f&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(f&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(d=f&i.SUBSCRIBE_OPTIONS_QOS_MASK,d>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(b=(f>>i.SUBSCRIBE_OPTIONS_NL_SHIFT&i.SUBSCRIBE_OPTIONS_NL_MASK)!==0,m=(f>>i.SUBSCRIBE_OPTIONS_RAP_SHIFT&i.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,p=f>>i.SUBSCRIBE_OPTIONS_RH_SHIFT&i.SUBSCRIBE_OPTIONS_RH_MASK,p>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));v={topic:c,qos:d},this.settings.protocolVersion===5?(v.nl=b,v.rap=m,v.rh=p):this.settings.bridgeMode&&(v.rh=0,v.rap=!0,v.nl=!0),a("_parseSubscribe: push subscription `%s` to subscription",v),u.subscriptions.push(v)}}}_parseSuback(){a("_parseSuback");let u=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&c!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(c)}}}_parseUnsubscribe(){a("_parseUnsubscribe");let u=this.packet;if(u.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(u.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!i.MQTT5_PUBACK_PUBREC_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!i.MQTT5_PUBREL_PUBCOMP_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}a("_parseConfirmation: packet.reasonCode `%d`",u.reasonCode)}else u.reasonCode=0;if(u.length>3){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}}return!0}_parseDisconnect(){let u=this.packet;if(a("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(u.reasonCode=this._parseByte(),i.MQTT5_DISCONNECT_CODES[u.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):u.reasonCode=0;let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}return a("_parseDisconnect result: true"),!0}_parseAuth(){a("_parseAuth");let u=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(u.reasonCode=this._parseByte(),!i.MQTT5_AUTH_CODES[u.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let c=this._parseProperties();return Object.getOwnPropertyNames(c).length&&(u.properties=c),a("_parseAuth: result: true"),!0}_parseMessageId(){let u=this.packet;return u.messageId=this._parseNum(),u.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(a("_parseMessageId: packet.messageId %d",u.messageId),!0)}_parseString(u){let c=this._parseNum(),f=c+this._pos;if(c===-1||f>this._list.length||f>this.packet.length)return null;let d=this._list.toString("utf8",this._pos,f);return this._pos+=c,a("_parseString: result: %s",d),d}_parseStringPair(){return a("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let u=this._parseNum(),c=u+this._pos;if(u===-1||c>this._list.length||c>this.packet.length)return null;let f=this._list.slice(this._pos,c);return this._pos+=u,a("_parseBuffer: result: %o",f),f}_parseNum(){if(this._list.length-this._pos<2)return-1;let u=this._list.readUInt16BE(this._pos);return this._pos+=2,a("_parseNum: result: %s",u),u}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let u=this._list.readUInt32BE(this._pos);return this._pos+=4,a("_parse4ByteNum: result: %s",u),u}_parseVarByteNum(u){a("_parseVarByteNum");let c=4,f=0,d=1,p=0,m=!1,b,v=this._pos?this._pos:0;for(;f=f&&this._emitError(new Error("Invalid variable byte integer")),v&&(this._pos+=f),m?u?m={bytes:f,value:p}:m=p:m=!1,a("_parseVarByteNum: result: %o",m),m}_parseByte(){let u;return this._pos{we(),ve(),_e();var{Buffer:r}=(vt(),Ke(_t)),n=65536,s={},i=r.isBuffer(r.from([1,2]).subarray(0,1));function a(c){let f=r.allocUnsafe(2);return f.writeUInt8(c>>8,0),f.writeUInt8(c&255,1),f}function o(){for(let c=0;c0&&(f=f|128),p.writeUInt8(f,d++);while(c>0&&d<4);return c>0&&(d=0),i?p.subarray(0,d):p.slice(0,d)}function u(c){let f=r.allocUnsafe(4);return f.writeUInt32BE(c,0),f}e.exports={cache:s,generateCache:o,generateNumber:a,genBufVariableByteInt:l,generate4ByteBuffer:u}}),dP=Te((t,e)=>{we(),ve(),_e(),typeof ze>"u"||!ze.version||ze.version.indexOf("v0.")===0||ze.version.indexOf("v1.")===0&&ze.version.indexOf("v1.8.")!==0?e.exports={nextTick:r}:e.exports=ze;function r(n,s,i,a){if(typeof n!="function")throw new TypeError('"callback" argument must be a function');var o=arguments.length,l,u;switch(o){case 0:case 1:return ze.nextTick(n);case 2:return ze.nextTick(function(){n.call(null,s)});case 3:return ze.nextTick(function(){n.call(null,s,i)});case 4:return ze.nextTick(function(){n.call(null,s,i,a)});default:for(l=new Array(o-1),u=0;u{we(),ve(),_e();var r=S_(),{Buffer:n}=(vt(),Ke(_t)),s=n.allocUnsafe(0),i=n.from([0]),a=fP(),o=dP().nextTick,l=hn()("mqtt-packet:writeToStream"),u=a.cache,c=a.generateNumber,f=a.generateCache,d=a.genBufVariableByteInt,p=a.generate4ByteBuffer,m=te,b=!0;function v(j,D,X){switch(l("generate called"),D.cork&&(D.cork(),o(_,D)),b&&(b=!1,f()),l("generate: packet.cmd: %s",j.cmd),j.cmd){case"connect":return E(j,D);case"connack":return y(j,D,X);case"publish":return T(j,D,X);case"puback":case"pubrec":case"pubrel":case"pubcomp":return x(j,D,X);case"subscribe":return A(j,D,X);case"suback":return P(j,D,X);case"unsubscribe":return L(j,D,X);case"unsuback":return W(j,D,X);case"pingreq":case"pingresp":return U(j,D);case"disconnect":return H(j,D,X);case"auth":return C(j,D,X);default:return D.destroy(new Error("Unknown command")),!1}}Object.defineProperty(v,"cacheNumbers",{get(){return m===te},set(j){j?((!u||Object.keys(u).length===0)&&(b=!0),m=te):(b=!1,m=B)}});function _(j){j.uncork()}function E(j,D,X){let le=j||{},se=le.protocolId||"MQTT",M=le.protocolVersion||4,O=le.will,F=le.clean,R=le.keepalive||0,V=le.clientId||"",q=le.username,oe=le.password,Q=le.properties;F===void 0&&(F=!0);let G=0;if(!se||typeof se!="string"&&!n.isBuffer(se))return D.destroy(new Error("Invalid protocolId")),!1;if(G+=se.length+2,M!==3&&M!==4&&M!==5)return D.destroy(new Error("Invalid protocol version")),!1;if(G+=1,(typeof V=="string"||n.isBuffer(V))&&(V||M>=4)&&(V||F))G+=n.byteLength(V)+2;else{if(M<4)return D.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(F*1===0)return D.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof R!="number"||R<0||R>65535||R%1!==0)return D.destroy(new Error("Invalid keepalive")),!1;G+=2,G+=1;let re,z;if(M===5){if(re=ce(D,Q),!re)return!1;G+=re.length}if(O){if(typeof O!="object")return D.destroy(new Error("Invalid will")),!1;if(!O.topic||typeof O.topic!="string")return D.destroy(new Error("Invalid will topic")),!1;if(G+=n.byteLength(O.topic)+2,G+=2,O.payload)if(O.payload.length>=0)typeof O.payload=="string"?G+=n.byteLength(O.payload):G+=O.payload.length;else return D.destroy(new Error("Invalid will payload")),!1;if(z={},M===5){if(z=ce(D,O.properties),!z)return!1;G+=z.length}}let ie=!1;if(q!=null)if(K(q))ie=!0,G+=n.byteLength(q)+2;else return D.destroy(new Error("Invalid username")),!1;if(oe!=null){if(!ie)return D.destroy(new Error("Username is required to use password")),!1;if(K(oe))G+=ee(oe)+2;else return D.destroy(new Error("Invalid password")),!1}D.write(r.CONNECT_HEADER),N(D,G),Y(D,se),le.bridgeMode&&(M+=128),D.write(M===131?r.VERSION131:M===132?r.VERSION132:M===4?r.VERSION4:M===5?r.VERSION5:r.VERSION3);let he=0;return he|=q!=null?r.USERNAME_MASK:0,he|=oe!=null?r.PASSWORD_MASK:0,he|=O&&O.retain?r.WILL_RETAIN_MASK:0,he|=O&&O.qos?O.qos<0&&m(D,V),Q==null||Q.write(),l("publish: payload: %o",R),D.write(R)}function x(j,D,X){let le=X?X.protocolVersion:4,se=j||{},M=se.cmd||"puback",O=se.messageId,F=se.dup&&M==="pubrel"?r.DUP_MASK:0,R=0,V=se.reasonCode,q=se.properties,oe=le===5?3:2;if(M==="pubrel"&&(R=1),typeof O!="number")return D.destroy(new Error("Invalid messageId")),!1;let Q=null;if(le===5&&typeof q=="object"){if(Q=$(D,q,X,oe),!Q)return!1;oe+=Q.length}return D.write(r.ACKS[M][R][F][0]),oe===3&&(oe+=V!==0?1:-1),N(D,oe),m(D,O),le===5&&oe!==2&&D.write(n.from([V])),Q!==null?Q.write():oe===4&&D.write(n.from([0])),!0}function A(j,D,X){l("subscribe: packet: ");let le=X?X.protocolVersion:4,se=j||{},M=se.dup?r.DUP_MASK:0,O=se.messageId,F=se.subscriptions,R=se.properties,V=0;if(typeof O!="number")return D.destroy(new Error("Invalid messageId")),!1;V+=2;let q=null;if(le===5){if(q=ce(D,R),!q)return!1;V+=q.length}if(typeof F=="object"&&F.length)for(let Q=0;Q2)return D.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}V+=n.byteLength(G)+2+1}else return D.destroy(new Error("Invalid subscriptions")),!1;l("subscribe: writing to stream: %o",r.SUBSCRIBE_HEADER),D.write(r.SUBSCRIBE_HEADER[1][M?1:0][0]),N(D,V),m(D,O),q!==null&&q.write();let oe=!0;for(let Q of F){let G=Q.topic,re=Q.qos,z=+Q.nl,ie=+Q.rap,he=Q.rh,be;J(D,G),be=r.SUBSCRIBE_OPTIONS_QOS[re],le===5&&(be|=z?r.SUBSCRIBE_OPTIONS_NL:0,be|=ie?r.SUBSCRIBE_OPTIONS_RAP:0,be|=he?r.SUBSCRIBE_OPTIONS_RH[he]:0),oe=D.write(n.from([be]))}return oe}function P(j,D,X){let le=X?X.protocolVersion:4,se=j||{},M=se.messageId,O=se.granted,F=se.properties,R=0;if(typeof M!="number")return D.destroy(new Error("Invalid messageId")),!1;if(R+=2,typeof O=="object"&&O.length)for(let q=0;qr.VARBYTEINT_MAX)return j.destroy(new Error(`Invalid variable byte integer: ${D}`)),!1;let X=I[D];return X||(X=d(D),D<16384&&(I[D]=X)),l("writeVarByteInt: writing to stream: %o",X),j.write(X)}function J(j,D){let X=n.byteLength(D);return m(j,X),l("writeString: %s",D),j.write(D,"utf8")}function ne(j,D,X){J(j,D),J(j,X)}function te(j,D){return l("writeNumberCached: number: %d",D),l("writeNumberCached: %o",u[D]),j.write(u[D])}function B(j,D){let X=c(D);return l("writeNumberGenerated: %o",X),j.write(X)}function ae(j,D){let X=p(D);return l("write4ByteNumber: %o",X),j.write(X)}function Y(j,D){typeof D=="string"?J(j,D):D?(m(j,D.length),j.write(D)):m(j,0)}function ce(j,D){if(typeof D!="object"||D.length!=null)return{length:1,write(){me(j,{},0)}};let X=0;function le(se,M){let O=r.propertiesTypes[se],F=0;switch(O){case"byte":{if(typeof M!="boolean")return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=2;break}case"int8":{if(typeof M!="number"||M<0||M>255)return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=2;break}case"binary":{if(M&&M===null)return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=1+n.byteLength(M)+2;break}case"int16":{if(typeof M!="number"||M<0||M>65535)return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=3;break}case"int32":{if(typeof M!="number"||M<0||M>4294967295)return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=5;break}case"var":{if(typeof M!="number"||M<0||M>268435455)return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=1+n.byteLength(d(M));break}case"string":{if(typeof M!="string")return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=3+n.byteLength(M.toString());break}case"pair":{if(typeof M!="object")return j.destroy(new Error(`Invalid ${se}: ${M}`)),!1;F+=Object.getOwnPropertyNames(M).reduce((R,V)=>{let q=M[V];return Array.isArray(q)?R+=q.reduce((oe,Q)=>(oe+=3+n.byteLength(V.toString())+2+n.byteLength(Q.toString()),oe),0):R+=3+n.byteLength(V.toString())+2+n.byteLength(M[V].toString()),R},0);break}default:return j.destroy(new Error(`Invalid property ${se}: ${M}`)),!1}return F}if(D)for(let se in D){let M=0,O=0,F=D[se];if(Array.isArray(F))for(let R=0;RM;){let F=se.shift();if(F&&D[F])delete D[F],O=ce(j,D);else return!1}return O}function ue(j,D,X){switch(r.propertiesTypes[D]){case"byte":{j.write(n.from([r.properties[D]])),j.write(n.from([+X]));break}case"int8":{j.write(n.from([r.properties[D]])),j.write(n.from([X]));break}case"binary":{j.write(n.from([r.properties[D]])),Y(j,X);break}case"int16":{j.write(n.from([r.properties[D]])),m(j,X);break}case"int32":{j.write(n.from([r.properties[D]])),ae(j,X);break}case"var":{j.write(n.from([r.properties[D]])),N(j,X);break}case"string":{j.write(n.from([r.properties[D]])),J(j,X);break}case"pair":{Object.getOwnPropertyNames(X).forEach(le=>{let se=X[le];Array.isArray(se)?se.forEach(M=>{j.write(n.from([r.properties[D]])),ne(j,le.toString(),M.toString())}):(j.write(n.from([r.properties[D]])),ne(j,le.toString(),se.toString()))});break}default:return j.destroy(new Error(`Invalid property ${D} value: ${X}`)),!1}}function me(j,D,X){N(j,X);for(let le in D)if(Object.prototype.hasOwnProperty.call(D,le)&&D[le]!==null){let se=D[le];if(Array.isArray(se))for(let M=0;M{we(),ve(),_e();var r=T_(),{EventEmitter:n}=(Os(),Ke(Ni)),{Buffer:s}=(vt(),Ke(_t));function i(o,l){let u=new a;return r(o,u,l),u.concat()}var a=class extends n{constructor(){super(),this._array=new Array(20),this._i=0}write(o){return this._array[this._i++]=o,!0}concat(){let o=0,l=new Array(this._array.length),u=this._array,c=0,f;for(f=0;f{we(),ve(),_e(),t.parser=cP().parser,t.generate=hP(),t.writeToStream=T_()}),x_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=class{constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let r=this.nextId++;return this.nextId===65536&&(this.nextId=1),r}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(r){return!0}deallocate(r){}clear(){}};t.default=e}),gP=Te((t,e)=>{we(),ve(),_e(),e.exports=n;function r(i){return i instanceof Il?Il.from(i):new i.constructor(i.buffer.slice(),i.byteOffset,i.length)}function n(i){if(i=i||{},i.circles)return s(i);return i.proto?l:o;function a(u,c){for(var f=Object.keys(u),d=new Array(f.length),p=0;p{we(),ve(),_e(),e.exports=gP()()}),bP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.validateTopics=t.validateTopic=void 0;function e(n){let s=n.split("/");for(let i=0;i{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=Di(),r={objectMode:!0},n={clean:!0},s=class{constructor(i){this.options=i||{},this.options=Object.assign(Object.assign({},n),i),this._inflights=new Map}put(i,a){return this._inflights.set(i.messageId,i),a&&a(),this}createStream(){let i=new e.Readable(r),a=[],o=!1,l=0;return this._inflights.forEach((u,c)=>{a.push(u)}),i._read=()=>{!o&&l{if(!o)return o=!0,setTimeout(()=>{i.emit("close")},0),i},i}del(i,a){let o=this._inflights.get(i.messageId);return o?(this._inflights.delete(i.messageId),a(null,o)):a&&a(new Error("missing packet")),this}get(i,a){let o=this._inflights.get(i.messageId);return o?a(null,o):a&&a(new Error("missing packet")),this}close(i){this.options.clean&&(this._inflights=null),i&&i()}};t.default=s}),yP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=[0,16,128,131,135,144,145,151,153],r=(n,s,i)=>{n.log("handlePublish: packet %o",s),i=typeof i<"u"?i:n.noop;let a=s.topic.toString(),o=s.payload,{qos:l}=s,{messageId:u}=s,{options:c}=n;if(n.options.protocolVersion===5){let f;if(s.properties&&(f=s.properties.topicAlias),typeof f<"u")if(a.length===0)if(f>0&&f<=65535){let d=n.topicAliasRecv.getTopicByAlias(f);if(d)a=d,n.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",a,f);else{n.log("handlePublish :: unregistered topic alias. alias: %d",f),n.emit("error",new Error("Received unregistered Topic Alias"));return}}else{n.log("handlePublish :: topic alias out of range. alias: %d",f),n.emit("error",new Error("Received Topic Alias is out of range"));return}else if(n.topicAliasRecv.put(a,f))n.log("handlePublish :: registered topic: %s - alias: %d",a,f);else{n.log("handlePublish :: topic alias out of range. alias: %d",f),n.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(n.log("handlePublish: qos %d",l),l){case 2:{c.customHandleAcks(a,o,s,(f,d)=>{if(typeof f=="number"&&(d=f,f=null),f)return n.emit("error",f);if(e.indexOf(d)===-1)return n.emit("error",new Error("Wrong reason code for pubrec"));d?n._sendPacket({cmd:"pubrec",messageId:u,reasonCode:d},i):n.incomingStore.put(s,()=>{n._sendPacket({cmd:"pubrec",messageId:u},i)})});break}case 1:{c.customHandleAcks(a,o,s,(f,d)=>{if(typeof f=="number"&&(d=f,f=null),f)return n.emit("error",f);if(e.indexOf(d)===-1)return n.emit("error",new Error("Wrong reason code for puback"));d||n.emit("message",a,o,s),n.handleMessage(s,p=>{if(p)return i&&i(p);n._sendPacket({cmd:"puback",messageId:u,reasonCode:d},i)})});break}case 0:n.emit("message",a,o,s),n.handleMessage(s,i);break;default:n.log("handlePublish: unknown QoS. Doing nothing.");break}};t.default=r}),wP=Te((t,e)=>{e.exports={version:"5.10.3"}}),Ps=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.MQTTJS_VERSION=t.nextTick=t.applyMixin=t.ErrorWithReasonCode=void 0;var e=class C_ extends Error{constructor(s,i){super(s),this.code=i,Object.setPrototypeOf(this,C_.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};t.ErrorWithReasonCode=e;function r(n,s,i=!1){var a;let o=[s];for(;;){let l=o[0],u=Object.getPrototypeOf(l);if(u!=null&&u.prototype)o.unshift(u);else break}for(let l of o)for(let u of Object.getOwnPropertyNames(l.prototype))(i||u!=="constructor")&&Object.defineProperty(n.prototype,u,(a=Object.getOwnPropertyDescriptor(l.prototype,u))!==null&&a!==void 0?a:Object.create(null))}t.applyMixin=r,t.nextTick=typeof(ze==null?void 0:ze.nextTick)=="function"?ze.nextTick:n=>{setTimeout(n,0)},t.MQTTJS_VERSION=wP().version}),au=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=void 0;var e=Ps();t.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var r=(n,s)=>{let{messageId:i}=s,a=s.cmd,o=null,l=n.outgoing[i]?n.outgoing[i].cb:null,u=null;if(!l){n.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(n.log("_handleAck :: packet type",a),a){case"pubcomp":case"puback":{let c=s.reasonCode;c&&c>0&&c!==16?(u=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[c]}`,c),n._removeOutgoingAndStoreMessage(i,()=>{l(u,s)})):n._removeOutgoingAndStoreMessage(i,l);break}case"pubrec":{o={cmd:"pubrel",qos:2,messageId:i};let c=s.reasonCode;c&&c>0&&c!==16?(u=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[c]}`,c),n._removeOutgoingAndStoreMessage(i,()=>{l(u,s)})):n._sendPacket(o);break}case"suback":{delete n.outgoing[i],n.messageIdProvider.deallocate(i);let c=s.granted;for(let f=0;f{delete n._resubscribeTopics[m]})}}delete n.messageIdToTopic[i],n._invokeStoreProcessingQueue(),l(u,s);break}case"unsuback":{delete n.outgoing[i],n.messageIdProvider.deallocate(i),n._invokeStoreProcessingQueue(),l(null,s);break}default:n.emit("error",new Error("unrecognized packet type"))}n.disconnecting&&Object.keys(n.outgoing).length===0&&n.emit("outgoingEmpty")};t.default=r}),_P=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=Ps(),r=au(),n=(s,i)=>{let{options:a}=s,o=a.protocolVersion,l=o===5?i.reasonCode:i.returnCode;if(o!==5){let u=new e.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${o}`,l);s.emit("error",u);return}s.handleAuth(i,(u,c)=>{if(u){s.emit("error",u);return}if(l===24)s.reconnecting=!1,s._sendPacket(c);else{let f=new e.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[l]}`,l);s.emit("error",f)}})};t.default=n}),vP=Te(t=>{var p,m,b,v,_,E,y,T,x,A,P,L,W,U,H,C,I,N,J,ne,te,B,ae,Y,ce,$,Kd,me,ee,K,j,I_,X,le,se,Tn,xn,Xd,Ka,Xa,Ze,Qd,fo,G;we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=void 0;var e=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,r=new Set,n=typeof ze=="object"&&ze?ze:{},s=(re,z,ie,he)=>{typeof n.emitWarning=="function"?n.emitWarning(re,z,ie,he):console.error(`[${ie}] ${z}: ${re}`)},i=globalThis.AbortController,a=globalThis.AbortSignal;if(typeof i>"u"){a=class{constructor(){nt(this,"onabort");nt(this,"_onabort",[]);nt(this,"reason");nt(this,"aborted",!1)}addEventListener(ie,he){this._onabort.push(he)}},i=class{constructor(){nt(this,"signal",new a);z()}abort(ie){var he,be;if(!this.signal.aborted){this.signal.reason=ie,this.signal.aborted=!0;for(let S of this.signal._onabort)S(ie);(be=(he=this.signal).onabort)==null||be.call(he,ie)}}};let re=((p=n.env)==null?void 0:p.LRU_CACHE_IGNORE_AC_WARNING)!=="1",z=()=>{re&&(re=!1,s("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",z))}}var o=re=>!r.has(re),l=re=>re&&re===Math.floor(re)&&re>0&&isFinite(re),u=re=>l(re)?re<=Math.pow(2,8)?Uint8Array:re<=Math.pow(2,16)?Uint16Array:re<=Math.pow(2,32)?Uint32Array:re<=Number.MAX_SAFE_INTEGER?c:null:null,c=class extends Array{constructor(re){super(re),this.fill(0)}},f=(m=class{constructor(z,ie){nt(this,"heap");nt(this,"length");if(!ge(m,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new ie(z),this.length=0}static create(z){let ie=u(z);if(!ie)return[];Ne(m,b,!0);let he=new m(z,ie);return Ne(m,b,!1),he}push(z){this.heap[this.length++]=z}pop(){return this.heap[--this.length]}},b=new WeakMap,Ue(m,b,!1),m),d=(G=class{constructor(z){Ue(this,$);Ue(this,v);Ue(this,_);Ue(this,E);Ue(this,y);Ue(this,T);nt(this,"ttl");nt(this,"ttlResolution");nt(this,"ttlAutopurge");nt(this,"updateAgeOnGet");nt(this,"updateAgeOnHas");nt(this,"allowStale");nt(this,"noDisposeOnSet");nt(this,"noUpdateTTL");nt(this,"maxEntrySize");nt(this,"sizeCalculation");nt(this,"noDeleteOnFetchRejection");nt(this,"noDeleteOnStaleGet");nt(this,"allowStaleOnFetchAbort");nt(this,"allowStaleOnFetchRejection");nt(this,"ignoreFetchAbort");Ue(this,x);Ue(this,A);Ue(this,P);Ue(this,L);Ue(this,W);Ue(this,U);Ue(this,H);Ue(this,C);Ue(this,I);Ue(this,N);Ue(this,J);Ue(this,ne);Ue(this,te);Ue(this,B);Ue(this,ae);Ue(this,Y);Ue(this,ce);Ue(this,me,()=>{});Ue(this,ee,()=>{});Ue(this,K,()=>{});Ue(this,j,()=>!1);Ue(this,X,z=>{});Ue(this,le,(z,ie,he)=>{});Ue(this,se,(z,ie,he,be)=>{if(he||be)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});let{max:ie=0,ttl:he,ttlResolution:be=1,ttlAutopurge:S,updateAgeOnGet:g,updateAgeOnHas:h,allowStale:w,dispose:k,disposeAfter:Z,noDisposeOnSet:de,noUpdateTTL:ye,maxSize:Ae=0,maxEntrySize:Me=0,sizeCalculation:xe,fetchMethod:Pe,noDeleteOnFetchRejection:Oe,noDeleteOnStaleGet:Ve,allowStaleOnFetchRejection:ut,allowStaleOnFetchAbort:Je,ignoreFetchAbort:at}=z;if(ie!==0&&!l(ie))throw new TypeError("max option must be a nonnegative integer");let mt=ie?u(ie):Array;if(!mt)throw new Error("invalid max value: "+ie);if(Ne(this,v,ie),Ne(this,_,Ae),this.maxEntrySize=Me||ge(this,_),this.sizeCalculation=xe,this.sizeCalculation){if(!ge(this,_)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(Pe!==void 0&&typeof Pe!="function")throw new TypeError("fetchMethod must be a function if specified");if(Ne(this,T,Pe),Ne(this,Y,!!Pe),Ne(this,P,new Map),Ne(this,L,new Array(ie).fill(void 0)),Ne(this,W,new Array(ie).fill(void 0)),Ne(this,U,new mt(ie)),Ne(this,H,new mt(ie)),Ne(this,C,0),Ne(this,I,0),Ne(this,N,f.create(ie)),Ne(this,x,0),Ne(this,A,0),typeof k=="function"&&Ne(this,E,k),typeof Z=="function"?(Ne(this,y,Z),Ne(this,J,[])):(Ne(this,y,void 0),Ne(this,J,void 0)),Ne(this,ae,!!ge(this,E)),Ne(this,ce,!!ge(this,y)),this.noDisposeOnSet=!!de,this.noUpdateTTL=!!ye,this.noDeleteOnFetchRejection=!!Oe,this.allowStaleOnFetchRejection=!!ut,this.allowStaleOnFetchAbort=!!Je,this.ignoreFetchAbort=!!at,this.maxEntrySize!==0){if(ge(this,_)!==0&&!l(ge(this,_)))throw new TypeError("maxSize must be a positive integer if specified");if(!l(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Re(this,$,I_).call(this)}if(this.allowStale=!!w,this.noDeleteOnStaleGet=!!Ve,this.updateAgeOnGet=!!g,this.updateAgeOnHas=!!h,this.ttlResolution=l(be)||be===0?be:1,this.ttlAutopurge=!!S,this.ttl=he||0,this.ttl){if(!l(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Re(this,$,Kd).call(this)}if(ge(this,v)===0&&this.ttl===0&&ge(this,_)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!ge(this,v)&&!ge(this,_)){let ct="LRU_CACHE_UNBOUNDED";o(ct)&&(r.add(ct),s("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",ct,G))}}static unsafeExposeInternals(z){return{starts:ge(z,te),ttls:ge(z,B),sizes:ge(z,ne),keyMap:ge(z,P),keyList:ge(z,L),valList:ge(z,W),next:ge(z,U),prev:ge(z,H),get head(){return ge(z,C)},get tail(){return ge(z,I)},free:ge(z,N),isBackgroundFetch:ie=>{var he;return Re(he=z,$,Ze).call(he,ie)},backgroundFetch:(ie,he,be,S)=>{var g;return Re(g=z,$,Xa).call(g,ie,he,be,S)},moveToTail:ie=>{var he;return Re(he=z,$,fo).call(he,ie)},indexes:ie=>{var he;return Re(he=z,$,Tn).call(he,ie)},rindexes:ie=>{var he;return Re(he=z,$,xn).call(he,ie)},isStale:ie=>{var he;return ge(he=z,j).call(he,ie)}}}get max(){return ge(this,v)}get maxSize(){return ge(this,_)}get calculatedSize(){return ge(this,A)}get size(){return ge(this,x)}get fetchMethod(){return ge(this,T)}get dispose(){return ge(this,E)}get disposeAfter(){return ge(this,y)}getRemainingTTL(z){return ge(this,P).has(z)?1/0:0}*entries(){for(let z of Re(this,$,Tn).call(this))ge(this,W)[z]!==void 0&&ge(this,L)[z]!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield[ge(this,L)[z],ge(this,W)[z]])}*rentries(){for(let z of Re(this,$,xn).call(this))ge(this,W)[z]!==void 0&&ge(this,L)[z]!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield[ge(this,L)[z],ge(this,W)[z]])}*keys(){for(let z of Re(this,$,Tn).call(this)){let ie=ge(this,L)[z];ie!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield ie)}}*rkeys(){for(let z of Re(this,$,xn).call(this)){let ie=ge(this,L)[z];ie!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield ie)}}*values(){for(let z of Re(this,$,Tn).call(this))ge(this,W)[z]!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield ge(this,W)[z])}*rvalues(){for(let z of Re(this,$,xn).call(this))ge(this,W)[z]!==void 0&&!Re(this,$,Ze).call(this,ge(this,W)[z])&&(yield ge(this,W)[z])}[Symbol.iterator](){return this.entries()}find(z,ie={}){for(let he of Re(this,$,Tn).call(this)){let be=ge(this,W)[he],S=Re(this,$,Ze).call(this,be)?be.__staleWhileFetching:be;if(S!==void 0&&z(S,ge(this,L)[he],this))return this.get(ge(this,L)[he],ie)}}forEach(z,ie=this){for(let he of Re(this,$,Tn).call(this)){let be=ge(this,W)[he],S=Re(this,$,Ze).call(this,be)?be.__staleWhileFetching:be;S!==void 0&&z.call(ie,S,ge(this,L)[he],this)}}rforEach(z,ie=this){for(let he of Re(this,$,xn).call(this)){let be=ge(this,W)[he],S=Re(this,$,Ze).call(this,be)?be.__staleWhileFetching:be;S!==void 0&&z.call(ie,S,ge(this,L)[he],this)}}purgeStale(){let z=!1;for(let ie of Re(this,$,xn).call(this,{allowStale:!0}))ge(this,j).call(this,ie)&&(this.delete(ge(this,L)[ie]),z=!0);return z}dump(){let z=[];for(let ie of Re(this,$,Tn).call(this,{allowStale:!0})){let he=ge(this,L)[ie],be=ge(this,W)[ie],S=Re(this,$,Ze).call(this,be)?be.__staleWhileFetching:be;if(S===void 0||he===void 0)continue;let g={value:S};if(ge(this,B)&&ge(this,te)){g.ttl=ge(this,B)[ie];let h=e.now()-ge(this,te)[ie];g.start=Math.floor(Date.now()-h)}ge(this,ne)&&(g.size=ge(this,ne)[ie]),z.unshift([he,g])}return z}load(z){this.clear();for(let[ie,he]of z){if(he.start){let be=Date.now()-he.start;he.start=e.now()-be}this.set(ie,he.value,he)}}set(z,ie,he={}){var ye,Ae,Me,xe,Pe;if(ie===void 0)return this.delete(z),this;let{ttl:be=this.ttl,start:S,noDisposeOnSet:g=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:w}=he,{noUpdateTTL:k=this.noUpdateTTL}=he,Z=ge(this,se).call(this,z,ie,he.size||0,h);if(this.maxEntrySize&&Z>this.maxEntrySize)return w&&(w.set="miss",w.maxEntrySizeExceeded=!0),this.delete(z),this;let de=ge(this,x)===0?void 0:ge(this,P).get(z);if(de===void 0)de=ge(this,x)===0?ge(this,I):ge(this,N).length!==0?ge(this,N).pop():ge(this,x)===ge(this,v)?Re(this,$,Ka).call(this,!1):ge(this,x),ge(this,L)[de]=z,ge(this,W)[de]=ie,ge(this,P).set(z,de),ge(this,U)[ge(this,I)]=de,ge(this,H)[de]=ge(this,I),Ne(this,I,de),ea(this,x)._++,ge(this,le).call(this,de,Z,w),w&&(w.set="add"),k=!1;else{Re(this,$,fo).call(this,de);let Oe=ge(this,W)[de];if(ie!==Oe){if(ge(this,Y)&&Re(this,$,Ze).call(this,Oe)){Oe.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:Ve}=Oe;Ve!==void 0&&!g&&(ge(this,ae)&&((ye=ge(this,E))==null||ye.call(this,Ve,z,"set")),ge(this,ce)&&((Ae=ge(this,J))==null||Ae.push([Ve,z,"set"])))}else g||(ge(this,ae)&&((Me=ge(this,E))==null||Me.call(this,Oe,z,"set")),ge(this,ce)&&((xe=ge(this,J))==null||xe.push([Oe,z,"set"])));if(ge(this,X).call(this,de),ge(this,le).call(this,de,Z,w),ge(this,W)[de]=ie,w){w.set="replace";let Ve=Oe&&Re(this,$,Ze).call(this,Oe)?Oe.__staleWhileFetching:Oe;Ve!==void 0&&(w.oldValue=Ve)}}else w&&(w.set="update")}if(be!==0&&!ge(this,B)&&Re(this,$,Kd).call(this),ge(this,B)&&(k||ge(this,K).call(this,de,be,S),w&&ge(this,ee).call(this,w,de)),!g&&ge(this,ce)&&ge(this,J)){let Oe=ge(this,J),Ve;for(;Ve=Oe==null?void 0:Oe.shift();)(Pe=ge(this,y))==null||Pe.call(this,...Ve)}return this}pop(){var z;try{for(;ge(this,x);){let ie=ge(this,W)[ge(this,C)];if(Re(this,$,Ka).call(this,!0),Re(this,$,Ze).call(this,ie)){if(ie.__staleWhileFetching)return ie.__staleWhileFetching}else if(ie!==void 0)return ie}}finally{if(ge(this,ce)&&ge(this,J)){let ie=ge(this,J),he;for(;he=ie==null?void 0:ie.shift();)(z=ge(this,y))==null||z.call(this,...he)}}}has(z,ie={}){let{updateAgeOnHas:he=this.updateAgeOnHas,status:be}=ie,S=ge(this,P).get(z);if(S!==void 0){let g=ge(this,W)[S];if(Re(this,$,Ze).call(this,g)&&g.__staleWhileFetching===void 0)return!1;if(ge(this,j).call(this,S))be&&(be.has="stale",ge(this,ee).call(this,be,S));else return he&&ge(this,me).call(this,S),be&&(be.has="hit",ge(this,ee).call(this,be,S)),!0}else be&&(be.has="miss");return!1}peek(z,ie={}){let{allowStale:he=this.allowStale}=ie,be=ge(this,P).get(z);if(be!==void 0&&(he||!ge(this,j).call(this,be))){let S=ge(this,W)[be];return Re(this,$,Ze).call(this,S)?S.__staleWhileFetching:S}}async fetch(z,ie={}){let{allowStale:he=this.allowStale,updateAgeOnGet:be=this.updateAgeOnGet,noDeleteOnStaleGet:S=this.noDeleteOnStaleGet,ttl:g=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:w=0,sizeCalculation:k=this.sizeCalculation,noUpdateTTL:Z=this.noUpdateTTL,noDeleteOnFetchRejection:de=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:ye=this.allowStaleOnFetchRejection,ignoreFetchAbort:Ae=this.ignoreFetchAbort,allowStaleOnFetchAbort:Me=this.allowStaleOnFetchAbort,context:xe,forceRefresh:Pe=!1,status:Oe,signal:Ve}=ie;if(!ge(this,Y))return Oe&&(Oe.fetch="get"),this.get(z,{allowStale:he,updateAgeOnGet:be,noDeleteOnStaleGet:S,status:Oe});let ut={allowStale:he,updateAgeOnGet:be,noDeleteOnStaleGet:S,ttl:g,noDisposeOnSet:h,size:w,sizeCalculation:k,noUpdateTTL:Z,noDeleteOnFetchRejection:de,allowStaleOnFetchRejection:ye,allowStaleOnFetchAbort:Me,ignoreFetchAbort:Ae,status:Oe,signal:Ve},Je=ge(this,P).get(z);if(Je===void 0){Oe&&(Oe.fetch="miss");let at=Re(this,$,Xa).call(this,z,Je,ut,xe);return at.__returned=at}else{let at=ge(this,W)[Je];if(Re(this,$,Ze).call(this,at)){let Fs=he&&at.__staleWhileFetching!==void 0;return Oe&&(Oe.fetch="inflight",Fs&&(Oe.returnedStale=!0)),Fs?at.__staleWhileFetching:at.__returned=at}let mt=ge(this,j).call(this,Je);if(!Pe&&!mt)return Oe&&(Oe.fetch="hit"),Re(this,$,fo).call(this,Je),be&&ge(this,me).call(this,Je),Oe&&ge(this,ee).call(this,Oe,Je),at;let ct=Re(this,$,Xa).call(this,z,Je,ut,xe),Wi=ct.__staleWhileFetching!==void 0&&he;return Oe&&(Oe.fetch=mt?"stale":"refresh",Wi&&mt&&(Oe.returnedStale=!0)),Wi?ct.__staleWhileFetching:ct.__returned=ct}}get(z,ie={}){let{allowStale:he=this.allowStale,updateAgeOnGet:be=this.updateAgeOnGet,noDeleteOnStaleGet:S=this.noDeleteOnStaleGet,status:g}=ie,h=ge(this,P).get(z);if(h!==void 0){let w=ge(this,W)[h],k=Re(this,$,Ze).call(this,w);return g&&ge(this,ee).call(this,g,h),ge(this,j).call(this,h)?(g&&(g.get="stale"),k?(g&&he&&w.__staleWhileFetching!==void 0&&(g.returnedStale=!0),he?w.__staleWhileFetching:void 0):(S||this.delete(z),g&&he&&(g.returnedStale=!0),he?w:void 0)):(g&&(g.get="hit"),k?w.__staleWhileFetching:(Re(this,$,fo).call(this,h),be&&ge(this,me).call(this,h),w))}else g&&(g.get="miss")}delete(z){var he,be,S,g;let ie=!1;if(ge(this,x)!==0){let h=ge(this,P).get(z);if(h!==void 0)if(ie=!0,ge(this,x)===1)this.clear();else{ge(this,X).call(this,h);let w=ge(this,W)[h];Re(this,$,Ze).call(this,w)?w.__abortController.abort(new Error("deleted")):(ge(this,ae)||ge(this,ce))&&(ge(this,ae)&&((he=ge(this,E))==null||he.call(this,w,z,"delete")),ge(this,ce)&&((be=ge(this,J))==null||be.push([w,z,"delete"]))),ge(this,P).delete(z),ge(this,L)[h]=void 0,ge(this,W)[h]=void 0,h===ge(this,I)?Ne(this,I,ge(this,H)[h]):h===ge(this,C)?Ne(this,C,ge(this,U)[h]):(ge(this,U)[ge(this,H)[h]]=ge(this,U)[h],ge(this,H)[ge(this,U)[h]]=ge(this,H)[h]),ea(this,x)._--,ge(this,N).push(h)}}if(ge(this,ce)&&((S=ge(this,J))!=null&&S.length)){let h=ge(this,J),w;for(;w=h==null?void 0:h.shift();)(g=ge(this,y))==null||g.call(this,...w)}return ie}clear(){var z,ie,he;for(let be of Re(this,$,xn).call(this,{allowStale:!0})){let S=ge(this,W)[be];if(Re(this,$,Ze).call(this,S))S.__abortController.abort(new Error("deleted"));else{let g=ge(this,L)[be];ge(this,ae)&&((z=ge(this,E))==null||z.call(this,S,g,"delete")),ge(this,ce)&&((ie=ge(this,J))==null||ie.push([S,g,"delete"]))}}if(ge(this,P).clear(),ge(this,W).fill(void 0),ge(this,L).fill(void 0),ge(this,B)&&ge(this,te)&&(ge(this,B).fill(0),ge(this,te).fill(0)),ge(this,ne)&&ge(this,ne).fill(0),Ne(this,C,0),Ne(this,I,0),ge(this,N).length=0,Ne(this,A,0),Ne(this,x,0),ge(this,ce)&&ge(this,J)){let be=ge(this,J),S;for(;S=be==null?void 0:be.shift();)(he=ge(this,y))==null||he.call(this,...S)}}},v=new WeakMap,_=new WeakMap,E=new WeakMap,y=new WeakMap,T=new WeakMap,x=new WeakMap,A=new WeakMap,P=new WeakMap,L=new WeakMap,W=new WeakMap,U=new WeakMap,H=new WeakMap,C=new WeakMap,I=new WeakMap,N=new WeakMap,J=new WeakMap,ne=new WeakMap,te=new WeakMap,B=new WeakMap,ae=new WeakMap,Y=new WeakMap,ce=new WeakMap,$=new WeakSet,Kd=function(){let z=new c(ge(this,v)),ie=new c(ge(this,v));Ne(this,B,z),Ne(this,te,ie),Ne(this,K,(S,g,h=e.now())=>{if(ie[S]=g!==0?h:0,z[S]=g,g!==0&&this.ttlAutopurge){let w=setTimeout(()=>{ge(this,j).call(this,S)&&this.delete(ge(this,L)[S])},g+1);w.unref&&w.unref()}}),Ne(this,me,S=>{ie[S]=z[S]!==0?e.now():0}),Ne(this,ee,(S,g)=>{if(z[g]){let h=z[g],w=ie[g];S.ttl=h,S.start=w,S.now=he||be();let k=S.now-w;S.remainingTTL=h-k}});let he=0,be=()=>{let S=e.now();if(this.ttlResolution>0){he=S;let g=setTimeout(()=>he=0,this.ttlResolution);g.unref&&g.unref()}return S};this.getRemainingTTL=S=>{let g=ge(this,P).get(S);if(g===void 0)return 0;let h=z[g],w=ie[g];if(h===0||w===0)return 1/0;let k=(he||be())-w;return h-k},Ne(this,j,S=>z[S]!==0&&ie[S]!==0&&(he||be())-ie[S]>z[S])},me=new WeakMap,ee=new WeakMap,K=new WeakMap,j=new WeakMap,I_=function(){let z=new c(ge(this,v));Ne(this,A,0),Ne(this,ne,z),Ne(this,X,ie=>{Ne(this,A,ge(this,A)-z[ie]),z[ie]=0}),Ne(this,se,(ie,he,be,S)=>{if(Re(this,$,Ze).call(this,he))return 0;if(!l(be))if(S){if(typeof S!="function")throw new TypeError("sizeCalculation must be a function");if(be=S(he,ie),!l(be))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return be}),Ne(this,le,(ie,he,be)=>{if(z[ie]=he,ge(this,_)){let S=ge(this,_)-z[ie];for(;ge(this,A)>S;)Re(this,$,Ka).call(this,!0)}Ne(this,A,ge(this,A)+z[ie]),be&&(be.entrySize=he,be.totalCalculatedSize=ge(this,A))})},X=new WeakMap,le=new WeakMap,se=new WeakMap,Tn=function*({allowStale:z=this.allowStale}={}){if(ge(this,x))for(let ie=ge(this,I);!(!Re(this,$,Xd).call(this,ie)||((z||!ge(this,j).call(this,ie))&&(yield ie),ie===ge(this,C)));)ie=ge(this,H)[ie]},xn=function*({allowStale:z=this.allowStale}={}){if(ge(this,x))for(let ie=ge(this,C);!(!Re(this,$,Xd).call(this,ie)||((z||!ge(this,j).call(this,ie))&&(yield ie),ie===ge(this,I)));)ie=ge(this,U)[ie]},Xd=function(z){return z!==void 0&&ge(this,P).get(ge(this,L)[z])===z},Ka=function(z){var S,g;let ie=ge(this,C),he=ge(this,L)[ie],be=ge(this,W)[ie];return ge(this,Y)&&Re(this,$,Ze).call(this,be)?be.__abortController.abort(new Error("evicted")):(ge(this,ae)||ge(this,ce))&&(ge(this,ae)&&((S=ge(this,E))==null||S.call(this,be,he,"evict")),ge(this,ce)&&((g=ge(this,J))==null||g.push([be,he,"evict"]))),ge(this,X).call(this,ie),z&&(ge(this,L)[ie]=void 0,ge(this,W)[ie]=void 0,ge(this,N).push(ie)),ge(this,x)===1?(Ne(this,C,Ne(this,I,0)),ge(this,N).length=0):Ne(this,C,ge(this,U)[ie]),ge(this,P).delete(he),ea(this,x)._--,ie},Xa=function(z,ie,he,be){let S=ie===void 0?void 0:ge(this,W)[ie];if(Re(this,$,Ze).call(this,S))return S;let g=new i,{signal:h}=he;h==null||h.addEventListener("abort",()=>g.abort(h.reason),{signal:g.signal});let w={signal:g.signal,options:he,context:be},k=(xe,Pe=!1)=>{let{aborted:Oe}=g.signal,Ve=he.ignoreFetchAbort&&xe!==void 0;if(he.status&&(Oe&&!Pe?(he.status.fetchAborted=!0,he.status.fetchError=g.signal.reason,Ve&&(he.status.fetchAbortIgnored=!0)):he.status.fetchResolved=!0),Oe&&!Ve&&!Pe)return de(g.signal.reason);let ut=Ae;return ge(this,W)[ie]===Ae&&(xe===void 0?ut.__staleWhileFetching?ge(this,W)[ie]=ut.__staleWhileFetching:this.delete(z):(he.status&&(he.status.fetchUpdated=!0),this.set(z,xe,w.options))),xe},Z=xe=>(he.status&&(he.status.fetchRejected=!0,he.status.fetchError=xe),de(xe)),de=xe=>{let{aborted:Pe}=g.signal,Oe=Pe&&he.allowStaleOnFetchAbort,Ve=Oe||he.allowStaleOnFetchRejection,ut=Ve||he.noDeleteOnFetchRejection,Je=Ae;if(ge(this,W)[ie]===Ae&&(!ut||Je.__staleWhileFetching===void 0?this.delete(z):Oe||(ge(this,W)[ie]=Je.__staleWhileFetching)),Ve)return he.status&&Je.__staleWhileFetching!==void 0&&(he.status.returnedStale=!0),Je.__staleWhileFetching;if(Je.__returned===Je)throw xe},ye=(xe,Pe)=>{var Ve;let Oe=(Ve=ge(this,T))==null?void 0:Ve.call(this,z,S,w);Oe&&Oe instanceof Promise&&Oe.then(ut=>xe(ut===void 0?void 0:ut),Pe),g.signal.addEventListener("abort",()=>{(!he.ignoreFetchAbort||he.allowStaleOnFetchAbort)&&(xe(void 0),he.allowStaleOnFetchAbort&&(xe=ut=>k(ut,!0)))})};he.status&&(he.status.fetchDispatched=!0);let Ae=new Promise(ye).then(k,Z),Me=Object.assign(Ae,{__abortController:g,__staleWhileFetching:S,__returned:void 0});return ie===void 0?(this.set(z,Me,{...w.options,status:void 0}),ie=ge(this,P).get(z)):ge(this,W)[ie]=Me,Me},Ze=function(z){if(!ge(this,Y))return!1;let ie=z;return!!ie&&ie instanceof Promise&&ie.hasOwnProperty("__staleWhileFetching")&&ie.__abortController instanceof i},Qd=function(z,ie){ge(this,H)[ie]=z,ge(this,U)[z]=ie},fo=function(z){z!==ge(this,I)&&(z===ge(this,C)?Ne(this,C,ge(this,U)[z]):Re(this,$,Qd).call(this,ge(this,H)[z],ge(this,U)[z]),Re(this,$,Qd).call(this,ge(this,I),z),Ne(this,I,z))},G);t.LRUCache=d}),yn=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.ContainerIterator=t.Container=t.Base=void 0;var e=class{constructor(s=0){this.iteratorType=s}equals(s){return this.o===s.o}};t.ContainerIterator=e;var r=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};t.Base=r;var n=class extends r{};t.Container=n}),EP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yn(),r=class extends e.Base{constructor(s=[]){super(),this.S=[];let i=this;s.forEach(function(a){i.push(a)})}clear(){this.i=0,this.S=[]}push(s){return this.S.push(s),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},n=r;t.default=n}),SP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yn(),r=class extends e.Base{constructor(s=[]){super(),this.j=0,this.q=[];let i=this;s.forEach(function(a){i.push(a)})}clear(){this.q=[],this.i=this.j=0}push(s){let i=this.q.length;if(this.j/i>.5&&this.j+this.i>=i&&i>4096){let a=this.i;for(let o=0;o{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yn(),r=class extends e.Base{constructor(s=[],i=function(o,l){return o>l?-1:o>1;for(let l=this.i-1>>1;l>=0;--l)this.k(l,o)}m(s){let i=this.C[s];for(;s>0;){let a=s-1>>1,o=this.C[a];if(this.v(o,i)<=0)break;this.C[s]=o,s=a}this.C[s]=i}k(s,i){let a=this.C[s];for(;s0&&(o=l,u=this.C[l]),this.v(u,a)>=0)break;this.C[s]=u,s=o}this.C[s]=a}clear(){this.i=0,this.C.length=0}push(s){this.C.push(s),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let s=this.C[0],i=this.C.pop();return this.i-=1,this.i&&(this.C[0]=i,this.k(0,this.i>>1)),s}top(){return this.C[0]}find(s){return this.C.indexOf(s)>=0}remove(s){let i=this.C.indexOf(s);return i<0?!1:(i===0?this.pop():i===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(i,1,this.C.pop()),this.i-=1,this.m(i),this.k(i,this.i>>1)),!0)}updateItem(s){let i=this.C.indexOf(s);return i<0?!1:(this.m(i),this.k(i,this.i>>1),!0)}toArray(){return[...this.C]}},n=r;t.default=n}),mp=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yn(),r=class extends e.Container{},n=r;t.default=n}),wn=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.throwIteratorAccessError=e;function e(){throw new RangeError("Iterator access denied!")}}),M_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.RandomIterator=void 0;var e=yn(),r=wn(),n=class extends e.ContainerIterator{constructor(s,i){super(i),this.o=s,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,r.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,r.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,r.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,r.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(s){this.container.setElementByPos(this.o,s)}};t.RandomIterator=n}),xP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=n(mp()),r=M_();function n(o){return o&&o.t?o:{default:o}}var s=class O_ extends r.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new O_(this.o,this.container,this.iteratorType)}},i=class extends e.default{constructor(o=[],l=!0){if(super(),Array.isArray(o))this.J=l?[...o]:o,this.i=o.length;else{this.J=[];let u=this;o.forEach(function(c){u.pushBack(c)})}}clear(){this.i=0,this.J.length=0}begin(){return new s(0,this)}end(){return new s(this.i,this)}rBegin(){return new s(this.i-1,this,1)}rEnd(){return new s(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;return this.J[o]}eraseElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;return this.J.splice(o,1),this.i-=1,this.i}eraseElementByValue(o){let l=0;for(let u=0;uthis.i-1)throw new RangeError;this.J[o]=l}insert(o,l,u=1){if(o<0||o>this.i)throw new RangeError;return this.J.splice(o,0,...new Array(u).fill(l)),this.i+=u,this.i}find(o){for(let l=0;l{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(mp()),r=yn(),n=wn();function s(l){return l&&l.t?l:{default:l}}var i=class P_ extends r.ContainerIterator{constructor(u,c,f,d){super(d),this.o=u,this.h=c,this.container=f,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.l}set pointer(u){this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.l=u}copy(){return new P_(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let u=this;l.forEach(function(c){u.pushBack(c)})}V(l){let{L:u,B:c}=l;u.B=c,c.L=u,l===this.p&&(this.p=c),l===this._&&(this._=u),this.i-=1}G(l,u){let c=u.B,f={l,L:u,B:c};u.B=f,c.L=f,u===this.h&&(this.p=f),c===this.h&&(this._=f),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new i(this.p,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this._,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return u.l}eraseElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return this.V(u),this.i}eraseElementByValue(l){let u=this.p;for(;u!==this.h;)u.l===l&&this.V(u),u=u.B;return this.i}eraseElementByIterator(l){let u=l.o;return u===this.h&&(0,n.throwIteratorAccessError)(),l=l.next(),this.V(u),l}pushBack(l){return this.G(l,this._),this.i}popBack(){if(this.i===0)return;let l=this._.l;return this.V(this._),l}pushFront(l){return this.G(l,this.h),this.i}popFront(){if(this.i===0)return;let l=this.p.l;return this.V(this.p),l}setElementByPos(l,u){if(l<0||l>this.i-1)throw new RangeError;let c=this.p;for(;l--;)c=c.B;c.l=u}insert(l,u,c=1){if(l<0||l>this.i)throw new RangeError;if(c<=0)return this.i;if(l===0)for(;c--;)this.pushFront(u);else if(l===this.i)for(;c--;)this.pushBack(u);else{let f=this.p;for(let p=1;p{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=n(mp()),r=M_();function n(o){return o&&o.t?o:{default:o}}var s=class k_ extends r.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new k_(this.o,this.container,this.iteratorType)}},i=class extends e.default{constructor(o=[],l=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let u=(()=>{if(typeof o.length=="number")return o.length;if(typeof o.size=="number")return o.size;if(typeof o.size=="function")return o.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=l,this.P=Math.max(Math.ceil(u/this.F),1);for(let d=0;d>1)-(c>>1),this.D=this.N=this.F-u%this.F>>1;let f=this;o.forEach(function(d){f.pushBack(d)})}T(){let o=[],l=Math.max(this.P>>1,1);for(let u=0;u>1}begin(){return new s(0,this)}end(){return new s(this.i,this)}rBegin(){return new s(this.i-1,this,1)}rEnd(){return new s(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(o){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,o}pushFront(o){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=o,this.i}popFront(){if(this.i===0)return;let o=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:l,curNodePointerIndex:u}=this.O(o);return this.A[l][u]}setElementByPos(o,l){if(o<0||o>this.i-1)throw new RangeError;let{curNodeBucketIndex:u,curNodePointerIndex:c}=this.O(o);this.A[u][c]=l}insert(o,l,u=1){if(o<0||o>this.i)throw new RangeError;if(o===0)for(;u--;)this.pushFront(l);else if(o===this.i)for(;u--;)this.pushBack(l);else{let c=[];for(let f=o;fthis.i-1)throw new RangeError;if(o===0)this.popFront();else if(o===this.i-1)this.popBack();else{let l=[];for(let c=o+1;co;)this.popBack();return this.i}sort(o){let l=[];for(let u=0;u{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.TreeNodeEnableIndex=t.TreeNode=void 0;var e=class{constructor(n,s){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=n,this.l=s}L(){let n=this;if(n.ee===1&&n.tt.tt===n)n=n.W;else if(n.U)for(n=n.U;n.W;)n=n.W;else{let s=n.tt;for(;s.U===n;)n=s,s=n.tt;n=s}return n}B(){let n=this;if(n.W){for(n=n.W;n.U;)n=n.U;return n}else{let s=n.tt;for(;s.W===n;)n=s,s=n.tt;return n.W!==s?s:n}}te(){let n=this.tt,s=this.W,i=s.U;return n.tt===this?n.tt=s:n.U===this?n.U=s:n.W=s,s.tt=n,s.U=this,this.tt=s,this.W=i,i&&(i.tt=this),s}se(){let n=this.tt,s=this.U,i=s.W;return n.tt===this?n.tt=s:n.U===this?n.U=s:n.W=s,s.tt=n,s.W=this,this.tt=s,this.U=i,i&&(i.tt=this),s}};t.TreeNode=e;var r=class extends e{constructor(){super(...arguments),this.rt=1}te(){let n=super.te();return this.ie(),n.ie(),n}se(){let n=super.se();return this.ie(),n.ie(),n}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};t.TreeNodeEnableIndex=r}),R_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=IP(),r=yn(),n=wn(),s=class extends r.Container{constructor(a=function(l,u){return lu?1:0},o=!1){super(),this.Y=void 0,this.v=a,o?(this.re=e.TreeNodeEnableIndex,this.M=function(l,u,c){let f=this.ne(l,u,c);if(f){let d=f.tt;for(;d!==this.h;)d.rt+=1,d=d.tt;let p=this.he(f);if(p){let{parentNode:m,grandParent:b,curNode:v}=p;m.ie(),b.ie(),v.ie()}}return this.i},this.V=function(l){let u=this.fe(l);for(;u!==this.h;)u.rt-=1,u=u.tt}):(this.re=e.TreeNode,this.M=function(l,u,c){let f=this.ne(l,u,c);return f&&this.he(f),this.i},this.V=this.fe),this.h=new this.re}X(a,o){let l=this.h;for(;a;){let u=this.v(a.u,o);if(u<0)a=a.W;else if(u>0)l=a,a=a.U;else return a}return l}Z(a,o){let l=this.h;for(;a;)this.v(a.u,o)<=0?a=a.W:(l=a,a=a.U);return l}$(a,o){let l=this.h;for(;a;){let u=this.v(a.u,o);if(u<0)l=a,a=a.W;else if(u>0)a=a.U;else return a}return l}rr(a,o){let l=this.h;for(;a;)this.v(a.u,o)<0?(l=a,a=a.W):a=a.U;return l}ue(a){for(;;){let o=a.tt;if(o===this.h)return;if(a.ee===1){a.ee=0;return}if(a===o.U){let l=o.W;if(l.ee===1)l.ee=0,o.ee=1,o===this.Y?this.Y=o.te():o.te();else if(l.W&&l.W.ee===1){l.ee=o.ee,o.ee=0,l.W.ee=0,o===this.Y?this.Y=o.te():o.te();return}else l.U&&l.U.ee===1?(l.ee=1,l.U.ee=0,l.se()):(l.ee=1,a=o)}else{let l=o.U;if(l.ee===1)l.ee=0,o.ee=1,o===this.Y?this.Y=o.se():o.se();else if(l.U&&l.U.ee===1){l.ee=o.ee,o.ee=0,l.U.ee=0,o===this.Y?this.Y=o.se():o.se();return}else l.W&&l.W.ee===1?(l.ee=1,l.W.ee=0,l.te()):(l.ee=1,a=o)}}}fe(a){if(this.i===1)return this.clear(),this.h;let o=a;for(;o.U||o.W;){if(o.W)for(o=o.W;o.U;)o=o.U;else o=o.U;[a.u,o.u]=[o.u,a.u],[a.l,o.l]=[o.l,a.l],a=o}this.h.U===o?this.h.U=o.tt:this.h.W===o&&(this.h.W=o.tt),this.ue(o);let l=o.tt;return o===l.U?l.U=void 0:l.W=void 0,this.i-=1,this.Y.ee=0,l}oe(a,o){return a===void 0?!1:this.oe(a.U,o)||o(a)?!0:this.oe(a.W,o)}he(a){for(;;){let o=a.tt;if(o.ee===0)return;let l=o.tt;if(o===l.U){let u=l.W;if(u&&u.ee===1){if(u.ee=o.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===o.W){if(a.ee=0,a.U&&(a.U.tt=o),a.W&&(a.W.tt=l),o.W=a.U,l.U=a.W,a.U=o,a.W=l,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,o.tt=a,l.tt=a,l.ee=1,{parentNode:o,grandParent:l,curNode:a}}else o.ee=0,l===this.Y?this.Y=l.se():l.se(),l.ee=1}else{let u=l.U;if(u&&u.ee===1){if(u.ee=o.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===o.U){if(a.ee=0,a.U&&(a.U.tt=l),a.W&&(a.W.tt=o),l.W=a.U,o.U=a.W,a.U=l,a.W=o,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,o.tt=a,l.tt=a,l.ee=1,{parentNode:o,grandParent:l,curNode:a}}else o.ee=0,l===this.Y?this.Y=l.te():l.te(),l.ee=1}return}}ne(a,o,l){if(this.Y===void 0){this.i+=1,this.Y=new this.re(a,o),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let u,c=this.h.U,f=this.v(c.u,a);if(f===0){c.l=o;return}else if(f>0)c.U=new this.re(a,o),c.U.tt=c,u=c.U,this.h.U=u;else{let d=this.h.W,p=this.v(d.u,a);if(p===0){d.l=o;return}else if(p<0)d.W=new this.re(a,o),d.W.tt=d,u=d.W,this.h.W=u;else{if(l!==void 0){let m=l.o;if(m!==this.h){let b=this.v(m.u,a);if(b===0){m.l=o;return}else if(b>0){let v=m.L(),_=this.v(v.u,a);if(_===0){v.l=o;return}else _<0&&(u=new this.re(a,o),v.W===void 0?(v.W=u,u.tt=v):(m.U=u,u.tt=m))}}}if(u===void 0)for(u=this.Y;;){let m=this.v(u.u,a);if(m>0){if(u.U===void 0){u.U=new this.re(a,o),u.U.tt=u,u=u.U;break}u=u.U}else if(m<0){if(u.W===void 0){u.W=new this.re(a,o),u.W.tt=u,u=u.W;break}u=u.W}else{u.l=o;return}}}}return this.i+=1,u}I(a,o){for(;a;){let l=this.v(a.u,o);if(l<0)a=a.W;else if(l>0)a=a.U;else return a}return a||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(a,o){let l=a.o;if(l===this.h&&(0,n.throwIteratorAccessError)(),this.i===1)return l.u=o,!0;if(l===this.h.U)return this.v(l.B().u,o)>0?(l.u=o,!0):!1;if(l===this.h.W)return this.v(l.L().u,o)<0?(l.u=o,!0):!1;let u=l.L().u;if(this.v(u,o)>=0)return!1;let c=l.B().u;return this.v(c,o)<=0?!1:(l.u=o,!0)}eraseElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o=0,l=this;return this.oe(this.Y,function(u){return a===o?(l.V(u),!0):(o+=1,!1)}),this.i}eraseElementByKey(a){if(this.i===0)return!1;let o=this.I(this.Y,a);return o===this.h?!1:(this.V(o),!0)}eraseElementByIterator(a){let o=a.o;o===this.h&&(0,n.throwIteratorAccessError)();let l=o.W===void 0;return a.iteratorType===0?l&&a.next():(!l||o.U===void 0)&&a.next(),this.V(o),a}forEach(a){let o=0;for(let l of this)a(l,o++,this)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o,l=0;for(let u of this){if(l===a){o=u;break}l+=1}return o}getHeight(){if(this.i===0)return 0;let a=function(o){return o?Math.max(a(o.U),a(o.W))+1:0};return a(this.Y)}},i=s;t.default=i}),L_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yn(),r=wn(),n=class extends e.ContainerIterator{constructor(i,a,o){super(o),this.o=i,this.h=a,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let i=this.o,a=this.h.tt;if(i===this.h)return a?a.rt-1:0;let o=0;for(i.U&&(o+=i.U.rt);i!==a;){let l=i.tt;i===l.W&&(o+=1,l.U&&(o+=l.U.rt)),i=l}return o}},s=n;t.default=s}),MP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(R_()),r=s(L_()),n=wn();function s(l){return l&&l.t?l:{default:l}}var i=class N_ extends r.default{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.u}copy(){return new N_(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[],u,c){super(u,c);let f=this;l.forEach(function(d){f.insert(d)})}*K(l){l!==void 0&&(yield*this.K(l.U),yield l.u,yield*this.K(l.W))}begin(){return new i(this.h.U||this.h,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this.h.W||this.h,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(l,u){return this.M(l,void 0,u)}find(l){let u=this.I(this.Y,l);return new i(u,this.h,this)}lowerBound(l){let u=this.X(this.Y,l);return new i(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new i(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new i(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new i(u,this.h,this)}union(l){let u=this;return l.forEach(function(c){u.insert(c)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},o=a;t.default=o}),OP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=s(R_()),r=s(L_()),n=wn();function s(l){return l&&l.t?l:{default:l}}var i=class D_ extends r.default{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,f){if(f==="0")return u.o.u;if(f==="1")return u.o.l},set(c,f,d){if(f!=="1")throw new TypeError("props must be 1");return u.o.l=d,!0}})}copy(){return new D_(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.default{constructor(l=[],u,c){super(u,c);let f=this;l.forEach(function(d){f.setElement(d[0],d[1])})}*K(l){l!==void 0&&(yield*this.K(l.U),yield[l.u,l.l],yield*this.K(l.W))}begin(){return new i(this.h.U||this.h,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this.h.W||this.h,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){if(this.i===0)return;let l=this.h.U;return[l.u,l.l]}back(){if(this.i===0)return;let l=this.h.W;return[l.u,l.l]}lowerBound(l){let u=this.X(this.Y,l);return new i(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new i(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new i(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new i(u,this.h,this)}setElement(l,u,c){return this.M(l,u,c)}find(l){let u=this.I(this.Y,l);return new i(u,this.h,this)}getElementByKey(l){return this.I(this.Y,l).l}union(l){let u=this;return l.forEach(function(c){u.setElement(c[0],c[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},o=a;t.default=o}),B_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=e;function e(r){let n=typeof r;return n==="object"&&r!==null||n==="function"}}),$_=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.HashContainerIterator=t.HashContainer=void 0;var e=yn(),r=s(B_()),n=wn();function s(o){return o&&o.t?o:{default:o}}var i=class extends e.ContainerIterator{constructor(o,l,u){super(u),this.o=o,this.h=l,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L,this})}};t.HashContainerIterator=i;var a=class extends e.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(o){let{L:l,B:u}=o;l.B=u,u.L=l,o===this.p&&(this.p=u),o===this._&&(this._=l),this.i-=1}M(o,l,u){u===void 0&&(u=(0,r.default)(o));let c;if(u){let f=o[this.HASH_TAG];if(f!==void 0)return this.H[f].l=l,this.i;Object.defineProperty(o,this.HASH_TAG,{value:this.H.length,configurable:!0}),c={u:o,l,L:this._,B:this.h},this.H.push(c)}else{let f=this.g[o];if(f)return f.l=l,this.i;c={u:o,l,L:this._,B:this.h},this.g[o]=c}return this.i===0?(this.p=c,this.h.B=c):this._.B=c,this._=c,this.h.L=c,++this.i}I(o,l){if(l===void 0&&(l=(0,r.default)(o)),l){let u=o[this.HASH_TAG];return u===void 0?this.h:this.H[u]}else return this.g[o]||this.h}clear(){let o=this.HASH_TAG;this.H.forEach(function(l){delete l.u[o]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(o,l){let u;if(l===void 0&&(l=(0,r.default)(o)),l){let c=o[this.HASH_TAG];if(c===void 0)return!1;delete o[this.HASH_TAG],u=this.H[c],delete this.H[c]}else{if(u=this.g[o],u===void 0)return!1;delete this.g[o]}return this.V(u),!0}eraseElementByIterator(o){let l=o.o;return l===this.h&&(0,n.throwIteratorAccessError)(),this.V(l),o.next()}eraseElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;let l=this.p;for(;o--;)l=l.B;return this.V(l),this.i}};t.HashContainer=a}),PP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=$_(),r=wn(),n=class F_ extends e.HashContainerIterator{constructor(o,l,u,c){super(o,l,c),this.container=u}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.u}copy(){return new F_(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.HashContainer{constructor(a=[]){super();let o=this;a.forEach(function(l){o.insert(l)})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(a,o){return this.M(a,void 0,o)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let o=this.p;for(;a--;)o=o.B;return o.u}find(a,o){let l=this.I(a,o);return new n(l,this.h,this)}forEach(a){let o=0,l=this.p;for(;l!==this.h;)a(l.u,o++,this),l=l.B}[Symbol.iterator](){return(function*(){let a=this.p;for(;a!==this.h;)yield a.u,a=a.B}).bind(this)()}},i=s;t.default=i}),kP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=$_(),r=s(B_()),n=wn();function s(l){return l&&l.t?l:{default:l}}var i=class U_ extends e.HashContainerIterator{constructor(u,c,f,d){super(u,c,d),this.container=f}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,f){if(f==="0")return u.o.u;if(f==="1")return u.o.l},set(c,f,d){if(f!=="1")throw new TypeError("props must be 1");return u.o.l=d,!0}})}copy(){return new U_(this.o,this.h,this.container,this.iteratorType)}},a=class extends e.HashContainer{constructor(l=[]){super();let u=this;l.forEach(function(c){u.setElement(c[0],c[1])})}begin(){return new i(this.p,this.h,this)}end(){return new i(this.h,this.h,this)}rBegin(){return new i(this._,this.h,this,1)}rEnd(){return new i(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(l,u,c){return this.M(l,u,c)}getElementByKey(l,u){if(u===void 0&&(u=(0,r.default)(l)),u){let f=l[this.HASH_TAG];return f!==void 0?this.H[f].l:void 0}let c=this.g[l];return c?c.l:void 0}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return[u.u,u.l]}find(l,u){let c=this.I(l,u);return new i(c,this.h,this)}forEach(l){let u=0,c=this.p;for(;c!==this.h;)l([c.u,c.l],u++,this),c=c.B}[Symbol.iterator](){return(function*(){let l=this.p;for(;l!==this.h;)yield[l.u,l.l],l=l.B}).bind(this)()}},o=a;t.default=o}),RP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"t",{value:!0}),Object.defineProperty(t,"Deque",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"HashMap",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"HashSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"LinkList",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"OrderedMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"OrderedSet",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"PriorityQueue",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"Queue",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(t,"Vector",{enumerable:!0,get:function(){return s.default}});var e=f(EP()),r=f(SP()),n=f(TP()),s=f(xP()),i=f(AP()),a=f(CP()),o=f(MP()),l=f(OP()),u=f(PP()),c=f(kP());function f(d){return d&&d.t?d:{default:d}}}),LP=Te((t,e)=>{we(),ve(),_e();var r=RP().OrderedSet,n=hn()("number-allocator:trace"),s=hn()("number-allocator:error");function i(o,l){this.low=o,this.high=l}i.prototype.equals=function(o){return this.low===o.low&&this.high===o.high},i.prototype.compare=function(o){return this.lowu.compare(c)),n("Create"),this.clear()}a.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},a.prototype.alloc=function(){if(this.ss.size()===0)return n("alloc():empty"),null;let o=this.ss.begin(),l=o.pointer.low,u=o.pointer.high,c=l;return c+1<=u?this.ss.updateKeyByIterator(o,new i(l+1,u)):this.ss.eraseElementByPos(0),n("alloc():"+c),c},a.prototype.use=function(o){let l=new i(o,o),u=this.ss.lowerBound(l);if(!u.equals(this.ss.end())){let c=u.pointer.low,f=u.pointer.high;return u.pointer.equals(l)?(this.ss.eraseElementByIterator(u),n("use():"+o),!0):c>o?!1:c===o?(this.ss.updateKeyByIterator(u,new i(c+1,f)),n("use():"+o),!0):f===o?(this.ss.updateKeyByIterator(u,new i(c,f-1)),n("use():"+o),!0):(this.ss.updateKeyByIterator(u,new i(o+1,f)),this.ss.insert(new i(c,o-1)),n("use():"+o),!0)}return n("use():failed"),!1},a.prototype.free=function(o){if(othis.max){s("free():"+o+" is out of range");return}let l=new i(o,o),u=this.ss.upperBound(l);if(u.equals(this.ss.end())){if(u.equals(this.ss.begin())){this.ss.insert(l);return}u.pre();let c=u.pointer.high;u.pointer.high+1===o?this.ss.updateKeyByIterator(u,new i(c,o)):this.ss.insert(l)}else if(u.equals(this.ss.begin()))if(o+1===u.pointer.low){let c=u.pointer.high;this.ss.updateKeyByIterator(u,new i(o,c))}else this.ss.insert(l);else{let c=u.pointer.low,f=u.pointer.high;u.pre();let d=u.pointer.low;u.pointer.high+1===o?o+1===c?(this.ss.eraseElementByIterator(u),this.ss.updateKeyByIterator(u,new i(d,f))):this.ss.updateKeyByIterator(u,new i(d,o)):o+1===c?(this.ss.eraseElementByIterator(u.next()),this.ss.insert(new i(o,f))):this.ss.insert(l)}n("free():"+o)},a.prototype.clear=function(){n("clear()"),this.ss.clear(),this.ss.insert(new i(this.min,this.max))},a.prototype.intervalCount=function(){return this.ss.size()},a.prototype.dump=function(){console.log("length:"+this.ss.size());for(let o of this.ss)console.log(o)},e.exports=a}),j_=Te((t,e)=>{we(),ve(),_e();var r=LP();e.exports.NumberAllocator=r}),NP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=vP(),r=j_(),n=class{constructor(s){s>0&&(this.aliasToTopic=new e.LRUCache({max:s}),this.topicToAlias={},this.numberAllocator=new r.NumberAllocator(1,s),this.max=s,this.length=0)}put(s,i){if(i===0||i>this.max)return!1;let a=this.aliasToTopic.get(i);return a&&delete this.topicToAlias[a],this.aliasToTopic.set(i,s),this.topicToAlias[s]=i,this.numberAllocator.use(i),this.length=this.aliasToTopic.size,!0}getTopicByAlias(s){return this.aliasToTopic.get(s)}getAliasByTopic(s){let i=this.topicToAlias[s];return typeof i<"u"&&this.aliasToTopic.get(i),i}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};t.default=n}),DP=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0});var r=au(),n=e(NP()),s=Ps(),i=(a,o)=>{a.log("_handleConnack");let{options:l}=a,u=l.protocolVersion===5?o.reasonCode:o.returnCode;if(clearTimeout(a.connackTimer),delete a.topicAliasSend,o.properties){if(o.properties.topicAliasMaximum){if(o.properties.topicAliasMaximum>65535){a.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}o.properties.topicAliasMaximum>0&&(a.topicAliasSend=new n.default(o.properties.topicAliasMaximum))}o.properties.serverKeepAlive&&l.keepalive&&(l.keepalive=o.properties.serverKeepAlive),o.properties.maximumPacketSize&&(l.properties||(l.properties={}),l.properties.maximumPacketSize=o.properties.maximumPacketSize)}if(u===0)a.reconnecting=!1,a._onConnect(o);else if(u>0){let c=new s.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[u]}`,u);a.emit("error",c),a.options.reconnectOnConnackError&&a._cleanUp(!0)}};t.default=i}),BP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=(r,n,s)=>{r.log("handling pubrel packet");let i=typeof s<"u"?s:r.noop,{messageId:a}=n,o={cmd:"pubcomp",messageId:a};r.incomingStore.get(n,(l,u)=>{l?r._sendPacket(o,i):(r.emit("message",u.topic,u.payload,u),r.handleMessage(u,c=>{if(c)return i(c);r.incomingStore.del(u,r.noop),r._sendPacket(o,i)}))})};t.default=e}),$P=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(yP()),n=e(_P()),s=e(DP()),i=e(au()),a=e(BP()),o=(l,u,c)=>{let{options:f}=l;if(f.protocolVersion===5&&f.properties&&f.properties.maximumPacketSize&&f.properties.maximumPacketSize{we(),ve(),_e();var e=t&&t.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypedEventEmitter=void 0;var r=e((Os(),Ke(Ni))),n=Ps(),s=class{};t.TypedEventEmitter=s,(0,n.applyMixin)(s,r.default)}),lu=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.isReactNativeBrowser=t.isWebWorker=void 0;var e=()=>{var i;return typeof window<"u"?typeof navigator<"u"&&((i=navigator.userAgent)===null||i===void 0?void 0:i.toLowerCase().indexOf(" electron/"))>-1&&ze!=null&&ze.versions?!Object.prototype.hasOwnProperty.call(ze.versions,"electron"):typeof window.document<"u":!1},r=()=>{var i,a;return!!(typeof self=="object"&&!((a=(i=self==null?void 0:self.constructor)===null||i===void 0?void 0:i.name)===null||a===void 0)&&a.includes("WorkerGlobalScope"))},n=()=>typeof navigator<"u"&&navigator.product==="ReactNative",s=e()||r()||n();t.isWebWorker=r(),t.isReactNativeBrowser=n(),t.default=s}),UP=Te((t,e)=>{we(),ve(),_e(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t):typeof define=="function"&&define.amd?define(["exports"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.fastUniqueNumbers={}))}(t,function(r){var n=function(p){return function(m){var b=p(m);return m.add(b),b}},s=function(p){return function(m,b){return p.set(m,b),b}},i=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,a=536870912,o=a*2,l=function(p,m){return function(b){var v=m.get(b),_=v===void 0?b.size:vi)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;b.has(_);)_=Math.floor(Math.random()*i);return p(b,_)}},u=new WeakMap,c=s(u),f=l(c,u),d=n(f);r.addUniqueNumber=d,r.generateUniqueNumber=f})}),jP=Te((t,e)=>{we(),ve(),_e(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t,UP()):typeof define=="function"&&define.amd?define(["exports","fast-unique-numbers"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.workerTimersBroker={},r.fastUniqueNumbers))}(t,function(r,n){var s=function(o){return o.method!==void 0&&o.method==="call"},i=function(o){return o.error===null&&typeof o.id=="number"},a=function(o){var l=new Map([[0,function(){}]]),u=new Map([[0,function(){}]]),c=new Map,f=new Worker(o);f.addEventListener("message",function(v){var _=v.data;if(s(_)){var E=_.params,y=E.timerId,T=E.timerType;if(T==="interval"){var x=l.get(y);if(typeof x=="number"){var A=c.get(x);if(A===void 0||A.timerId!==y||A.timerType!==T)throw new Error("The timer is in an undefined state.")}else if(typeof x<"u")x();else throw new Error("The timer is in an undefined state.")}else if(T==="timeout"){var P=u.get(y);if(typeof P=="number"){var L=c.get(P);if(L===void 0||L.timerId!==y||L.timerType!==T)throw new Error("The timer is in an undefined state.")}else if(typeof P<"u")P(),u.delete(y);else throw new Error("The timer is in an undefined state.")}}else if(i(_)){var W=_.id,U=c.get(W);if(U===void 0)throw new Error("The timer is in an undefined state.");var H=U.timerId,C=U.timerType;c.delete(W),C==="interval"?l.delete(H):u.delete(H)}else{var I=_.error.message;throw new Error(I)}});var d=function(v){var _=n.generateUniqueNumber(c);c.set(_,{timerId:v,timerType:"interval"}),l.set(v,_),f.postMessage({id:_,method:"clear",params:{timerId:v,timerType:"interval"}})},p=function(v){var _=n.generateUniqueNumber(c);c.set(_,{timerId:v,timerType:"timeout"}),u.set(v,_),f.postMessage({id:_,method:"clear",params:{timerId:v,timerType:"timeout"}})},m=function(v){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,E=n.generateUniqueNumber(l);return l.set(E,function(){v(),typeof l.get(E)=="function"&&f.postMessage({id:null,method:"set",params:{delay:_,now:performance.now(),timerId:E,timerType:"interval"}})}),f.postMessage({id:null,method:"set",params:{delay:_,now:performance.now(),timerId:E,timerType:"interval"}}),E},b=function(v){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,E=n.generateUniqueNumber(u);return u.set(E,v),f.postMessage({id:null,method:"set",params:{delay:_,now:performance.now(),timerId:E,timerType:"timeout"}}),E};return{clearInterval:d,clearTimeout:p,setInterval:m,setTimeout:b}};r.load=a})}),WP=Te((t,e)=>{we(),ve(),_e(),function(r,n){typeof t=="object"&&typeof e<"u"?n(t,jP()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.workerTimers={},r.workerTimersBroker))}(t,function(r,n){var s=function(f,d){var p=null;return function(){if(p!==null)return p;var m=new Blob([d],{type:"application/javascript; charset=utf-8"}),b=URL.createObjectURL(m);return p=f(b),setTimeout(function(){return URL.revokeObjectURL(b)}),p}},i=`(()=>{var e={472:(e,t,r)=>{var o,i;void 0===(i="function"==typeof(o=function(){"use strict";var e=new Map,t=new Map,r=function(t){var r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)},o=function(e){var r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)},i=function(e,t){var r,o=performance.now();return{expected:o+(r=e-Math.max(0,o-t)),remainingDelay:r}},n=function e(t,r,o,i){var n=performance.now();n>o?postMessage({id:null,method:"call",params:{timerId:r,timerType:i}}):t.set(r,setTimeout(e,o-n,t,r,o,i))},a=function(t,r,o){var a=i(t,o),s=a.expected,d=a.remainingDelay;e.set(r,setTimeout(n,d,e,r,s,"interval"))},s=function(e,r,o){var a=i(e,o),s=a.expected,d=a.remainingDelay;t.set(r,setTimeout(n,d,t,r,s,"timeout"))};addEventListener("message",(function(e){var t=e.data;try{if("clear"===t.method){var i=t.id,n=t.params,d=n.timerId,c=n.timerType;if("interval"===c)r(d),postMessage({error:null,id:i});else{if("timeout"!==c)throw new Error('The given type "'.concat(c,'" is not supported'));o(d),postMessage({error:null,id:i})}}else{if("set"!==t.method)throw new Error('The given method "'.concat(t.method,'" is not supported'));var u=t.params,l=u.delay,p=u.now,m=u.timerId,v=u.timerType;if("interval"===v)a(l,m,p);else{if("timeout"!==v)throw new Error('The given type "'.concat(v,'" is not supported'));s(l,m,p)}}}catch(e){postMessage({error:{message:e.message},id:t.id,result:null})}}))})?o.call(t,r,t,e):o)||(e.exports=i)}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,a=s(n.load,i),o=function(f){return a().clearInterval(f)},l=function(f){return a().clearTimeout(f)},u=function(){var f;return(f=a()).setInterval.apply(f,arguments)},c=function(){var f;return(f=a()).setTimeout.apply(f,arguments)};r.clearInterval=o,r.clearTimeout=l,r.setInterval=u,r.setTimeout=c})}),HP=Te(t=>{we(),ve(),_e();var e=t&&t.__createBinding||(Object.create?function(u,c,f,d){d===void 0&&(d=f);var p=Object.getOwnPropertyDescriptor(c,f);(!p||("get"in p?!c.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return c[f]}}),Object.defineProperty(u,d,p)}:function(u,c,f,d){d===void 0&&(d=f),u[d]=c[f]}),r=t&&t.__setModuleDefault||(Object.create?function(u,c){Object.defineProperty(u,"default",{enumerable:!0,value:c})}:function(u,c){u.default=c}),n=t&&t.__importStar||function(u){if(u&&u.__esModule)return u;var c={};if(u!=null)for(var f in u)f!=="default"&&Object.prototype.hasOwnProperty.call(u,f)&&e(c,u,f);return r(c,u),c};Object.defineProperty(t,"__esModule",{value:!0});var s=n(lu()),i=WP(),a={set:i.setInterval,clear:i.clearInterval},o={set:(u,c)=>setInterval(u,c),clear:u=>clearInterval(u)},l=u=>{switch(u){case"native":return o;case"worker":return a;case"auto":default:return s.default&&!s.isWebWorker&&!s.isReactNativeBrowser?a:o}};t.default=l}),W_=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(HP()),n=class{get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(s,i){this.destroyed=!1,this.client=s,this.timer=typeof i=="object"&&"set"in i&&"clear"in i?i:(0,r.default)(i),this.setKeepalive(s.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(s){if(s*=1e3,isNaN(s)||s<=0||s>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${s}`);this._keepalive=s,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${s}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let s=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+s,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};t.default=n}),Jd=Te(t=>{we(),ve(),_e();var e=t&&t.__createBinding||(Object.create?function(x,A,P,L){L===void 0&&(L=P);var W=Object.getOwnPropertyDescriptor(A,P);(!W||("get"in W?!A.__esModule:W.writable||W.configurable))&&(W={enumerable:!0,get:function(){return A[P]}}),Object.defineProperty(x,L,W)}:function(x,A,P,L){L===void 0&&(L=P),x[L]=A[P]}),r=t&&t.__setModuleDefault||(Object.create?function(x,A){Object.defineProperty(x,"default",{enumerable:!0,value:A})}:function(x,A){x.default=A}),n=t&&t.__importStar||function(x){if(x&&x.__esModule)return x;var A={};if(x!=null)for(var P in x)P!=="default"&&Object.prototype.hasOwnProperty.call(x,P)&&e(A,x,P);return r(A,x),A},s=t&&t.__importDefault||function(x){return x&&x.__esModule?x:{default:x}};Object.defineProperty(t,"__esModule",{value:!0});var i=s(kO()),a=s(pP()),o=s(x_()),l=Di(),u=s(mP()),c=n(bP()),f=s(hn()),d=s(A_()),p=s($P()),m=Ps(),b=FP(),v=s(W_()),_=n(lu()),E=globalThis.setImmediate||((...x)=>{let A=x.shift();(0,m.nextTick)(()=>{A(...x)})}),y={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,writeCache:!0,timerVariant:"auto"},T=class Zd extends b.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(A,P){super(),this.options=P||{};for(let L in y)typeof this.options[L]>"u"?this.options[L]=y[L]:this.options[L]=P[L];this.log=this.options.log||(0,f.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",Zd.VERSION),_.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",_.default?"browser":"node"),this.log("MqttClient :: options.protocol",P.protocol),this.log("MqttClient :: options.protocolVersion",P.protocolVersion),this.log("MqttClient :: options.username",P.username),this.log("MqttClient :: options.keepalive",P.keepalive),this.log("MqttClient :: options.reconnectPeriod",P.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",P.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",P.properties?P.properties.topicAliasMaximum:void 0),this.options.clientId=typeof P.clientId=="string"?P.clientId:Zd.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=P.protocolVersion===5&&P.customHandleAcks?P.customHandleAcks:(...L)=>{L[3](null,0)},this.options.writeCache||(a.default.writeToStream.cacheNumbers=!1),this.streamBuilder=A,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new o.default:this.options.messageIdProvider,this.outgoingStore=P.outgoingStore||new d.default,this.incomingStore=P.incomingStore||new d.default,this.queueQoSZero=P.queueQoSZero===void 0?!0:P.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,P.properties&&P.properties.topicAliasMaximum>0&&(P.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new i.default(P.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:L}=this,W=()=>{let U=L.shift();this.log("deliver :: entry %o",U);let H=null;if(!U){this._resubscribe();return}H=U.packet,this.log("deliver :: call _sendPacket for %o",H);let C=!0;H.messageId&&H.messageId!==0&&(this.messageIdProvider.register(H.messageId)||(C=!1)),C?this._sendPacket(H,I=>{U.cb&&U.cb(I),W()}):(this.log("messageId: %d has already used. The message is skipped and removed.",H.messageId),W())};this.log("connect :: sending queued packets"),W()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(A,P){P()}handleMessage(A,P){P()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var A;let P=new l.Writable,L=a.default.parser(this.options),W=null,U=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new d.default,this.outgoingStore=this.options.outgoingStore||new d.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),L.on("packet",J=>{this.log("parser :: on packet push to packets array."),U.push(J)});let H=()=>{this.log("work :: getting next packet in queue");let J=U.shift();if(J)this.log("work :: packet pulled from queue"),(0,p.default)(this,J,C);else{this.log("work :: no packets in queue");let ne=W;W=null,this.log("work :: done flag is %s",!!ne),ne&&ne()}},C=()=>{if(U.length)(0,m.nextTick)(H);else{let J=W;W=null,J()}};P._write=(J,ne,te)=>{W=te,this.log("writable stream :: parsing buffer"),L.parse(J),H()};let I=J=>{this.log("streamErrorHandler :: error",J.message),J.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",J)):this.noop(J)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(P),this.stream.on("error",I),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let N={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(N.will=Object.assign(Object.assign({},this.options.will),{payload:(A=this.options.will)===null||A===void 0?void 0:A.payload})),this.topicAliasRecv&&(N.properties||(N.properties={}),this.topicAliasRecv&&(N.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(N),L.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let J=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(J)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(A,P,L,W){this.log("publish :: message `%s` to topic `%s`",P,A);let{options:U}=this;typeof L=="function"&&(W=L,L=null),L=L||{},L=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),L);let{qos:H,retain:C,dup:I,properties:N,cbStorePut:J}=L;if(this._checkDisconnecting(W))return this;let ne=()=>{let te=0;if((H===1||H===2)&&(te=this._nextId(),te===null))return this.log("No messageId left"),!1;let B={cmd:"publish",topic:A,payload:P,qos:H,retain:C,messageId:te,dup:I};switch(U.protocolVersion===5&&(B.properties=N),this.log("publish :: qos",H),H){case 1:case 2:this.outgoing[B.messageId]={volatile:!1,cb:W||this.noop},this.log("MqttClient:publish: packet cmd: %s",B.cmd),this._sendPacket(B,void 0,J);break;default:this.log("MqttClient:publish: packet cmd: %s",B.cmd),this._sendPacket(B,W,J);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:L.cbStorePut,callback:W}),this}publishAsync(A,P,L){return new Promise((W,U)=>{this.publish(A,P,L,(H,C)=>{H?U(H):W(C)})})}subscribe(A,P,L){let W=this.options.protocolVersion;typeof P=="function"&&(L=P),L=L||this.noop;let U=!1,H=[];typeof A=="string"?(A=[A],H=A):Array.isArray(A)?H=A:typeof A=="object"&&(U=A.resubscribe,delete A.resubscribe,H=Object.keys(A));let C=c.validateTopics(H);if(C!==null)return E(L,new Error(`Invalid topic ${C}`)),this;if(this._checkDisconnecting(L))return this.log("subscribe: discconecting true"),this;let I={qos:0};W===5&&(I.nl=!1,I.rap=!1,I.rh=0),P=Object.assign(Object.assign({},I),P);let N=P.properties,J=[],ne=(B,ae)=>{if(ae=ae||P,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,B)||this._resubscribeTopics[B].qos{this.log("subscribe: array topic %s",B),ne(B)}):Object.keys(A).forEach(B=>{this.log("subscribe: object topic %s, %o",B,A[B]),ne(B,A[B])}),!J.length)return L(null,[]),this;let te=()=>{let B=this._nextId();if(B===null)return this.log("No messageId left"),!1;let ae={cmd:"subscribe",subscriptions:J,messageId:B};if(N&&(ae.properties=N),this.options.resubscribe){this.log("subscribe :: resubscribe true");let Y=[];J.forEach(ce=>{if(this.options.reconnectPeriod>0){let $={qos:ce.qos};W===5&&($.nl=ce.nl||!1,$.rap=ce.rap||!1,$.rh=ce.rh||0,$.properties=ce.properties),this._resubscribeTopics[ce.topic]=$,Y.push(ce.topic)}}),this.messageIdToTopic[ae.messageId]=Y}return this.outgoing[ae.messageId]={volatile:!0,cb(Y,ce){if(!Y){let{granted:$}=ce;for(let ue=0;ue<$.length;ue+=1)J[ue].qos=$[ue]}L(Y,J,ce)}},this.log("subscribe :: call _sendPacket"),this._sendPacket(ae),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!te())&&this._storeProcessingQueue.push({invoke:te,callback:L}),this}subscribeAsync(A,P){return new Promise((L,W)=>{this.subscribe(A,P,(U,H)=>{U?W(U):L(H)})})}unsubscribe(A,P,L){typeof A=="string"&&(A=[A]),typeof P=="function"&&(L=P),L=L||this.noop;let W=c.validateTopics(A);if(W!==null)return E(L,new Error(`Invalid topic ${W}`)),this;if(this._checkDisconnecting(L))return this;let U=()=>{let H=this._nextId();if(H===null)return this.log("No messageId left"),!1;let C={cmd:"unsubscribe",messageId:H,unsubscriptions:[]};return typeof A=="string"?C.unsubscriptions=[A]:Array.isArray(A)&&(C.unsubscriptions=A),this.options.resubscribe&&C.unsubscriptions.forEach(I=>{delete this._resubscribeTopics[I]}),typeof P=="object"&&P.properties&&(C.properties=P.properties),this.outgoing[C.messageId]={volatile:!0,cb:L},this.log("unsubscribe: call _sendPacket"),this._sendPacket(C),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!U())&&this._storeProcessingQueue.push({invoke:U,callback:L}),this}unsubscribeAsync(A,P){return new Promise((L,W)=>{this.unsubscribe(A,P,(U,H)=>{U?W(U):L(H)})})}end(A,P,L){this.log("end :: (%s)",this.options.clientId),(A==null||typeof A!="boolean")&&(L=L||P,P=A,A=!1),typeof P!="object"&&(L=L||P,P=null),this.log("end :: cb? %s",!!L),(!L||typeof L!="function")&&(L=this.noop);let W=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(H=>{this.outgoingStore.close(C=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),L){let I=H||C;this.log("end :: closeStores: invoking callback with args"),L(I)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},U=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,A),this._cleanUp(A,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,m.nextTick)(W)},P)};return this.disconnecting?(L(),this):(this._clearReconnect(),this.disconnecting=!0,!A&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,U,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),U()),this)}endAsync(A,P){return new Promise((L,W)=>{this.end(A,P,U=>{U?W(U):L()})})}removeOutgoingMessage(A){if(this.outgoing[A]){let{cb:P}=this.outgoing[A];this._removeOutgoingAndStoreMessage(A,()=>{P(new Error("Message removed"))})}return this}reconnect(A){this.log("client reconnect");let P=()=>{A?(this.options.incomingStore=A.incomingStore,this.options.outgoingStore=A.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new d.default,this.outgoingStore=this.options.outgoingStore||new d.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=P:P(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(A=>{this.outgoing[A].volatile&&typeof this.outgoing[A].cb=="function"&&(this.outgoing[A].cb(new Error("Connection closed")),delete this.outgoing[A])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(A=>{typeof this.outgoing[A].cb=="function"&&(this.outgoing[A].cb(new Error("Connection closed")),delete this.outgoing[A])}))}_removeTopicAliasAndRecoverTopicName(A){let P;A.properties&&(P=A.properties.topicAlias);let L=A.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",P,L),L.length===0){if(typeof P>"u")return new Error("Unregistered Topic Alias");if(L=this.topicAliasSend.getTopicByAlias(P),typeof L>"u")return new Error("Unregistered Topic Alias");A.topic=L}P&&delete A.properties.topicAlias}_checkDisconnecting(A){return this.disconnecting&&(A&&A!==this.noop?A(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(A,P,L={}){if(P&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",P)),this.log("_cleanUp :: forced? %s",A),A)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let W=Object.assign({cmd:"disconnect"},L);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(W,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),E(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),P&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",P),P())}_storeAndSend(A,P,L){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",A.cmd);let W=A,U;if(W.cmd==="publish"&&(W=(0,u.default)(A),U=this._removeTopicAliasAndRecoverTopicName(W),U))return P&&P(U);this.outgoingStore.put(W,H=>{if(H)return P&&P(H);L(),this._writePacket(A,P)})}_applyTopicAlias(A){if(this.options.protocolVersion===5&&A.cmd==="publish"){let P;A.properties&&(P=A.properties.topicAlias);let L=A.topic.toString();if(this.topicAliasSend)if(P){if(L.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",L,P),!this.topicAliasSend.put(L,P)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",L,P),new Error("Sending Topic Alias out of range")}else L.length!==0&&(this.options.autoAssignTopicAlias?(P=this.topicAliasSend.getAliasByTopic(L),P?(A.topic="",A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:P}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",L,P)):(P=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(L,P),A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:P}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",L,P))):this.options.autoUseTopicAlias&&(P=this.topicAliasSend.getAliasByTopic(L),P&&(A.topic="",A.properties=Object.assign(Object.assign({},A.properties),{topicAlias:P}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",L,P))));else if(P)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",L,P),new Error("Sending Topic Alias out of range")}}_noop(A){this.log("noop ::",A)}_writePacket(A,P){this.log("_writePacket :: packet: %O",A),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",A),this.log("_writePacket :: writing to stream");let L=a.default.writeToStream(A,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",L),!L&&P&&P!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",P)):P&&(this.log("_writePacket :: invoking cb"),P())}_sendPacket(A,P,L,W){this.log("_sendPacket :: (%s) :: start",this.options.clientId),L=L||this.noop,P=P||this.noop;let U=this._applyTopicAlias(A);if(U){P(U);return}if(!this.connected){if(A.cmd==="auth"){this._writePacket(A,P);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(A,P,L);return}if(W){this._writePacket(A,P);return}switch(A.cmd){case"publish":break;case"pubrel":this._storeAndSend(A,P,L);return;default:this._writePacket(A,P);return}switch(A.qos){case 2:case 1:this._storeAndSend(A,P,L);break;case 0:default:this._writePacket(A,P);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(A,P,L){this.log("_storePacket :: packet: %o",A),this.log("_storePacket :: cb? %s",!!P),L=L||this.noop;let W=A;if(W.cmd==="publish"){W=(0,u.default)(A);let H=this._removeTopicAliasAndRecoverTopicName(W);if(H)return P&&P(H)}let U=W.qos||0;U===0&&this.queueQoSZero||W.cmd!=="publish"?this.queue.push({packet:W,cb:P}):U>0?(P=this.outgoing[W.messageId]?this.outgoing[W.messageId].cb:null,this.outgoingStore.put(W,H=>{if(H)return P&&P(H);L()})):P&&P(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new v.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(A=!1){this.keepaliveManager&&this.options.keepalive&&(A||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let A=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&A.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let P=0;P{let L=this.outgoingStore.createStream(),W=()=>{L.destroy(),L=null,this._flushStoreProcessingQueue(),U()},U=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",W),L.on("error",C=>{U(),this._flushStoreProcessingQueue(),this.removeListener("close",W),this.emit("error",C)});let H=()=>{if(!L)return;let C=L.read(1),I;if(!C){L.once("readable",H);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[C.messageId]){H();return}!this.disconnecting&&!this.reconnectTimer?(I=this.outgoing[C.messageId]?this.outgoing[C.messageId].cb:null,this.outgoing[C.messageId]={volatile:!1,cb(N,J){I&&I(N,J),H()}},this._packetIdsDuringStoreProcessing[C.messageId]=!0,this.messageIdProvider.register(C.messageId)?this._sendPacket(C,void 0,void 0,!0):this.log("messageId: %d has already used.",C.messageId)):L.destroy&&L.destroy()};L.on("end",()=>{let C=!0;for(let I in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[I]){C=!1;break}this.removeListener("close",W),C?(U(),this._invokeAllStoreProcessingQueue(),this.emit("connect",A)):P()}),H()};P()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let A=this._storeProcessingQueue[0];if(A&&A.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let A of this._storeProcessingQueue)A.cbStorePut&&A.cbStorePut(new Error("Connection closed")),A.callback&&A.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(A,P){delete this.outgoing[A],this.outgoingStore.del({messageId:A},(L,W)=>{P(L,W),this.messageIdProvider.deallocate(A),this._invokeStoreProcessingQueue()})}};T.VERSION=m.MQTTJS_VERSION,t.default=T}),zP=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=j_(),r=class{constructor(){this.numberAllocator=new e.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(n){return this.numberAllocator.use(n)}deallocate(n){this.numberAllocator.free(n)}clear(){this.numberAllocator.clear()}};t.default=r});function ri(t){throw new RangeError(z_[t])}function Lm(t,e){let r=t.split("@"),n="";r.length>1&&(n=r[0]+"@",t=r[1]);let s=function(i,a){let o=[],l=i.length;for(;l--;)o[l]=a(i[l]);return o}((t=t.replace(H_,".")).split("."),e).join(".");return n+s}function Nm(t){let e=[],r=0,n=t.length;for(;r=55296&&s<=56319&&r{we(),ve(),_e(),Dm=/^xn--/,Bm=/[^\0-\x7E]/,H_=/[\x2E\u3002\uFF0E\uFF61]/g,z_={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},dr=Math.floor,da=String.fromCharCode,Zu=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},ec=function(t,e,r){let n=0;for(t=r?dr(t/700):t>>1,t+=dr(t/e);t>455;n+=36)t=dr(t/35);return dr(n+36*t/(t+38))},tc=function(t){let e=[],r=t.length,n=0,s=128,i=72,a=t.lastIndexOf("-");a<0&&(a=0);for(let l=0;l=128&&ri("not-basic"),e.push(t.charCodeAt(l));for(let l=a>0?a+1:0;l=r&&ri("invalid-input");let p=(o=t.charCodeAt(l++))-48<10?o-22:o-65<26?o-65:o-97<26?o-97:36;(p>=36||p>dr((2147483647-n)/f))&&ri("overflow"),n+=p*f;let m=d<=i?1:d>=i+26?26:d-i;if(pdr(2147483647/b)&&ri("overflow"),f*=b}let c=e.length+1;i=ec(n-u,c,u==0),dr(n/c)>2147483647-s&&ri("overflow"),s+=dr(n/c),n%=c,e.splice(n++,0,s)}var o;return String.fromCodePoint(...e)},rc=function(t){let e=[],r=(t=Nm(t)).length,n=128,s=0,i=72;for(let l of t)l<128&&e.push(da(l));let a=e.length,o=a;for(a&&e.push("-");o=n&&cdr((2147483647-s)/u)&&ri("overflow"),s+=(l-n)*u,n=l;for(let c of t)if(c2147483647&&ri("overflow"),c==n){let f=s;for(let d=36;;d+=36){let p=d<=i?1:d>=i+26?26:d-i;if(fString.fromCodePoint(...t)},decode:tc,encode:rc,toASCII:function(t){return Lm(t,function(e){return Bm.test(e)?"xn--"+rc(e):e})},toUnicode:function(t){return Lm(t,function(e){return Dm.test(e)?tc(e.slice(4).toLowerCase()):e})}},An.decode,An.encode,An.toASCII,An.toUnicode,An.ucs2,An.version});function qP(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var $m,Vi,Fm,Ar,YP=wt(()=>{we(),ve(),_e(),$m=function(t,e,r,n){e=e||"&",r=r||"=";var s={};if(typeof t!="string"||t.length===0)return s;var i=/\+/g;t=t.split(e);var a=1e3;n&&typeof n.maxKeys=="number"&&(a=n.maxKeys);var o=t.length;a>0&&o>a&&(o=a);for(var l=0;l=0?(u=p.substr(0,m),c=p.substr(m+1)):(u=p,c=""),f=decodeURIComponent(u),d=decodeURIComponent(c),qP(s,f)?Array.isArray(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s},Vi=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},Fm=function(t,e,r,n){return e=e||"&",r=r||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map(function(s){var i=encodeURIComponent(Vi(s))+r;return Array.isArray(t[s])?t[s].map(function(a){return i+encodeURIComponent(Vi(a))}).join(e):i+encodeURIComponent(Vi(t[s]))}).join(e):n?encodeURIComponent(Vi(n))+r+encodeURIComponent(Vi(t)):""},Ar={},Ar.decode=Ar.parse=$m,Ar.encode=Ar.stringify=Fm,Ar.decode,Ar.encode,Ar.parse,Ar.stringify});function eh(){throw new Error("setTimeout has not been defined")}function th(){throw new Error("clearTimeout has not been defined")}function V_(t){if(Vr===setTimeout)return setTimeout(t,0);if((Vr===eh||!Vr)&&setTimeout)return Vr=setTimeout,setTimeout(t,0);try{return Vr(t,0)}catch{try{return Vr.call(null,t,0)}catch{return Vr.call(this||wi,t,0)}}}function GP(){_i&&di&&(_i=!1,di.length?Or=di.concat(Or):Eo=-1,Or.length&&q_())}function q_(){if(!_i){var t=V_(GP);_i=!0;for(var e=Or.length;e;){for(di=Or,Or=[];++Eo{we(),ve(),_e(),wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:Si,ot=jm={},function(){try{Vr=typeof setTimeout=="function"?setTimeout:eh}catch{Vr=eh}try{qr=typeof clearTimeout=="function"?clearTimeout:th}catch{qr=th}}(),Or=[],_i=!1,Eo=-1,ot.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r1)for(var _=1;_{we(),ve(),_e(),Qa={},rh=!1,oi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:Si,et=XP(),et.platform="browser",et.addListener,et.argv,et.binding,et.browser,et.chdir,et.cwd,et.emit,et.env,et.listeners,et.nextTick,et.off,et.on,et.once,et.prependListener,et.prependOnceListener,et.removeAllListeners,et.removeListener,et.title,et.umask,et.version,et.versions});function QP(){if(nh)return Ja;nh=!0;var t=et;function e(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function r(i,a){for(var o="",l=0,u=-1,c=0,f,d=0;d<=i.length;++d){if(d2){var p=o.lastIndexOf("/");if(p!==o.length-1){p===-1?(o="",l=0):(o=o.slice(0,p),l=o.length-1-o.lastIndexOf("/")),u=d,c=0;continue}}else if(o.length===2||o.length===1){o="",l=0,u=d,c=0;continue}}a&&(o.length>0?o+="/..":o="..",l=2)}else o.length>0?o+="/"+i.slice(u+1,d):o=i.slice(u+1,d),l=d-u-1;u=d,c=0}else f===46&&c!==-1?++c:c=-1}return o}function n(i,a){var o=a.dir||a.root,l=a.base||(a.name||"")+(a.ext||"");return o?o===a.root?o+l:o+i+l:l}var s={resolve:function(){for(var i="",a=!1,o,l=arguments.length-1;l>=-1&&!a;l--){var u;l>=0?u=arguments[l]:(o===void 0&&(o=t.cwd()),u=o),e(u),u.length!==0&&(i=u+"/"+i,a=u.charCodeAt(0)===47)}return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(i){if(e(i),i.length===0)return".";var a=i.charCodeAt(0)===47,o=i.charCodeAt(i.length-1)===47;return i=r(i,!a),i.length===0&&!a&&(i="."),i.length>0&&o&&(i+="/"),a?"/"+i:i},isAbsolute:function(i){return e(i),i.length>0&&i.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var i,a=0;a0&&(i===void 0?i=o:i+="/"+o)}return i===void 0?".":s.normalize(i)},relative:function(i,a){if(e(i),e(a),i===a||(i=s.resolve(i),a=s.resolve(a),i===a))return"";for(var o=1;op){if(a.charCodeAt(c+b)===47)return a.slice(c+b+1);if(b===0)return a.slice(c+b)}else u>p&&(i.charCodeAt(o+b)===47?m=b:b===0&&(m=0));break}var v=i.charCodeAt(o+b),_=a.charCodeAt(c+b);if(v!==_)break;v===47&&(m=b)}var E="";for(b=o+m+1;b<=l;++b)(b===l||i.charCodeAt(b)===47)&&(E.length===0?E+="..":E+="/..");return E.length>0?E+a.slice(c+m):(c+=m,a.charCodeAt(c)===47&&++c,a.slice(c))},_makeLong:function(i){return i},dirname:function(i){if(e(i),i.length===0)return".";for(var a=i.charCodeAt(0),o=a===47,l=-1,u=!0,c=i.length-1;c>=1;--c)if(a=i.charCodeAt(c),a===47){if(!u){l=c;break}}else u=!1;return l===-1?o?"/":".":o&&l===1?"//":i.slice(0,l)},basename:function(i,a){if(a!==void 0&&typeof a!="string")throw new TypeError('"ext" argument must be a string');e(i);var o=0,l=-1,u=!0,c;if(a!==void 0&&a.length>0&&a.length<=i.length){if(a.length===i.length&&a===i)return"";var f=a.length-1,d=-1;for(c=i.length-1;c>=0;--c){var p=i.charCodeAt(c);if(p===47){if(!u){o=c+1;break}}else d===-1&&(u=!1,d=c+1),f>=0&&(p===a.charCodeAt(f)?--f===-1&&(l=c):(f=-1,l=d))}return o===l?l=d:l===-1&&(l=i.length),i.slice(o,l)}else{for(c=i.length-1;c>=0;--c)if(i.charCodeAt(c)===47){if(!u){o=c+1;break}}else l===-1&&(u=!1,l=c+1);return l===-1?"":i.slice(o,l)}},extname:function(i){e(i);for(var a=-1,o=0,l=-1,u=!0,c=0,f=i.length-1;f>=0;--f){var d=i.charCodeAt(f);if(d===47){if(!u){o=f+1;break}continue}l===-1&&(u=!1,l=f+1),d===46?a===-1?a=f:c!==1&&(c=1):a!==-1&&(c=-1)}return a===-1||l===-1||c===0||c===1&&a===l-1&&a===o+1?"":i.slice(a,l)},format:function(i){if(i===null||typeof i!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return n("/",i)},parse:function(i){e(i);var a={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return a;var o=i.charCodeAt(0),l=o===47,u;l?(a.root="/",u=1):u=0;for(var c=-1,f=0,d=-1,p=!0,m=i.length-1,b=0;m>=u;--m){if(o=i.charCodeAt(m),o===47){if(!p){f=m+1;break}continue}d===-1&&(p=!1,d=m+1),o===46?c===-1?c=m:b!==1&&(b=1):c!==-1&&(b=-1)}return c===-1||d===-1||b===0||b===1&&c===d-1&&c===f+1?d!==-1&&(f===0&&l?a.base=a.name=i.slice(1,d):a.base=a.name=i.slice(f,d)):(f===0&&l?(a.name=i.slice(1,c),a.base=i.slice(1,d)):(a.name=i.slice(f,c),a.base=i.slice(f,d)),a.ext=i.slice(c,d)),f>0?a.dir=i.slice(0,f-1):l&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};return s.posix=s,Ja=s,Ja}var Ja,nh,ih,JP=wt(()=>{we(),ve(),_e(),Y_(),Ja={},nh=!1,ih=QP()}),G_={};Ri(G_,{URL:()=>dv,Url:()=>av,default:()=>qe,fileURLToPath:()=>K_,format:()=>lv,parse:()=>fv,pathToFileURL:()=>X_,resolve:()=>uv,resolveObject:()=>cv});function rr(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function Js(t,e,r){if(t&&pr.isObject(t)&&t instanceof rr)return t;var n=new rr;return n.parse(t,e,r),n}function ZP(){if(sh)return Za;sh=!0;var t=it;function e(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function r(i,a){for(var o="",l=0,u=-1,c=0,f,d=0;d<=i.length;++d){if(d2){var p=o.lastIndexOf("/");if(p!==o.length-1){p===-1?(o="",l=0):(o=o.slice(0,p),l=o.length-1-o.lastIndexOf("/")),u=d,c=0;continue}}else if(o.length===2||o.length===1){o="",l=0,u=d,c=0;continue}}a&&(o.length>0?o+="/..":o="..",l=2)}else o.length>0?o+="/"+i.slice(u+1,d):o=i.slice(u+1,d),l=d-u-1;u=d,c=0}else f===46&&c!==-1?++c:c=-1}return o}function n(i,a){var o=a.dir||a.root,l=a.base||(a.name||"")+(a.ext||"");return o?o===a.root?o+l:o+i+l:l}var s={resolve:function(){for(var i="",a=!1,o,l=arguments.length-1;l>=-1&&!a;l--){var u;l>=0?u=arguments[l]:(o===void 0&&(o=t.cwd()),u=o),e(u),u.length!==0&&(i=u+"/"+i,a=u.charCodeAt(0)===47)}return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(i){if(e(i),i.length===0)return".";var a=i.charCodeAt(0)===47,o=i.charCodeAt(i.length-1)===47;return i=r(i,!a),i.length===0&&!a&&(i="."),i.length>0&&o&&(i+="/"),a?"/"+i:i},isAbsolute:function(i){return e(i),i.length>0&&i.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var i,a=0;a0&&(i===void 0?i=o:i+="/"+o)}return i===void 0?".":s.normalize(i)},relative:function(i,a){if(e(i),e(a),i===a||(i=s.resolve(i),a=s.resolve(a),i===a))return"";for(var o=1;op){if(a.charCodeAt(c+b)===47)return a.slice(c+b+1);if(b===0)return a.slice(c+b)}else u>p&&(i.charCodeAt(o+b)===47?m=b:b===0&&(m=0));break}var v=i.charCodeAt(o+b),_=a.charCodeAt(c+b);if(v!==_)break;v===47&&(m=b)}var E="";for(b=o+m+1;b<=l;++b)(b===l||i.charCodeAt(b)===47)&&(E.length===0?E+="..":E+="/..");return E.length>0?E+a.slice(c+m):(c+=m,a.charCodeAt(c)===47&&++c,a.slice(c))},_makeLong:function(i){return i},dirname:function(i){if(e(i),i.length===0)return".";for(var a=i.charCodeAt(0),o=a===47,l=-1,u=!0,c=i.length-1;c>=1;--c)if(a=i.charCodeAt(c),a===47){if(!u){l=c;break}}else u=!1;return l===-1?o?"/":".":o&&l===1?"//":i.slice(0,l)},basename:function(i,a){if(a!==void 0&&typeof a!="string")throw new TypeError('"ext" argument must be a string');e(i);var o=0,l=-1,u=!0,c;if(a!==void 0&&a.length>0&&a.length<=i.length){if(a.length===i.length&&a===i)return"";var f=a.length-1,d=-1;for(c=i.length-1;c>=0;--c){var p=i.charCodeAt(c);if(p===47){if(!u){o=c+1;break}}else d===-1&&(u=!1,d=c+1),f>=0&&(p===a.charCodeAt(f)?--f===-1&&(l=c):(f=-1,l=d))}return o===l?l=d:l===-1&&(l=i.length),i.slice(o,l)}else{for(c=i.length-1;c>=0;--c)if(i.charCodeAt(c)===47){if(!u){o=c+1;break}}else l===-1&&(u=!1,l=c+1);return l===-1?"":i.slice(o,l)}},extname:function(i){e(i);for(var a=-1,o=0,l=-1,u=!0,c=0,f=i.length-1;f>=0;--f){var d=i.charCodeAt(f);if(d===47){if(!u){o=f+1;break}continue}l===-1&&(u=!1,l=f+1),d===46?a===-1?a=f:c!==1&&(c=1):a!==-1&&(c=-1)}return a===-1||l===-1||c===0||c===1&&a===l-1&&a===o+1?"":i.slice(a,l)},format:function(i){if(i===null||typeof i!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return n("/",i)},parse:function(i){e(i);var a={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return a;var o=i.charCodeAt(0),l=o===47,u;l?(a.root="/",u=1):u=0;for(var c=-1,f=0,d=-1,p=!0,m=i.length-1,b=0;m>=u;--m){if(o=i.charCodeAt(m),o===47){if(!p){f=m+1;break}continue}d===-1&&(p=!1,d=m+1),o===46?c===-1?c=m:b!==1&&(b=1):c!==-1&&(b=-1)}return c===-1||d===-1||b===0||b===1&&c===d-1&&c===f+1?d!==-1&&(f===0&&l?a.base=a.name=i.slice(1,d):a.base=a.name=i.slice(f,d)):(f===0&&l?(a.name=i.slice(1,c),a.base=i.slice(1,d)):(a.name=i.slice(f,c),a.base=i.slice(f,d)),a.ext=i.slice(c,d)),f>0?a.dir=i.slice(0,f-1):l&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};return s.posix=s,Za=s,Za}function ek(t){if(typeof t=="string")t=new URL(t);else if(!(t instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(t.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return Pl?tk(t):rk(t)}function tk(t){let e=t.hostname,r=t.pathname;for(let n=0;nev||s!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return r.slice(1)}}function rk(t){if(t.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let e=t.pathname;for(let r=0;rmv||s!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return r.slice(1)}}function sk(t){if(t.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let e=t.pathname;for(let r=0;r{we(),ve(),_e(),VP(),YP(),KP(),JP(),Y_(),qe={},Wm=An,pr={isString:function(t){return typeof t=="string"},isObject:function(t){return typeof t=="object"&&t!==null},isNull:function(t){return t===null},isNullOrUndefined:function(t){return t==null}},qe.parse=Js,qe.resolve=function(t,e){return Js(t,!1,!0).resolve(e)},qe.resolveObject=function(t,e){return t?Js(t,!1,!0).resolveObject(e):e},qe.format=function(t){return pr.isString(t)&&(t=Js(t)),t instanceof rr?t.format():rr.prototype.format.call(t)},qe.Url=rr,Hm=/^([a-z0-9.+-]+:)/i,zm=/:[0-9]*$/,Vm=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,qm=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),ha=["'"].concat(qm),nc=["%","/","?",";","#"].concat(ha),ic=["/","?","#"],sc=/^[+a-z0-9A-Z_-]{0,63}$/,Ym=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Gm={javascript:!0,"javascript:":!0},pa={javascript:!0,"javascript:":!0},ni={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},ga=Ar,rr.prototype.parse=function(t,e,r){if(!pr.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),s=n!==-1&&n127?T+="x":T+=y[x];if(!T.match(sc)){var P=_.slice(0,m),L=_.slice(m+1),W=y.match(Ym);W&&(P.push(W[1]),L.unshift(W[2])),L.length&&(a="/"+L.join(".")+a),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),v||(this.hostname=Wm.toASCII(this.hostname));var U=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+U,this.href+=this.host,v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),a[0]!=="/"&&(a="/"+a))}if(!Gm[u])for(m=0,E=ha.length;m0)&&r.host.split("@"))&&(r.auth=W.shift(),r.host=r.hostname=W.shift())),r.search=t.search,r.query=t.query,pr.isNull(r.pathname)&&pr.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var x=y.slice(-1)[0],A=(r.host||t.host||y.length>1)&&(x==="."||x==="..")||x==="",P=0,L=y.length;L>=0;L--)(x=y[L])==="."?y.splice(L,1):x===".."?(y.splice(L,1),P++):P&&(y.splice(L,1),P--);if(!_&&!E)for(;P--;P)y.unshift("..");!_||y[0]===""||y[0]&&y[0].charAt(0)==="/"||y.unshift(""),A&&y.join("/").substr(-1)!=="/"&&y.push("");var W,U=y[0]===""||y[0]&&y[0].charAt(0)==="/";return T&&(r.hostname=r.host=U?"":y.length?y.shift():"",(W=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=W.shift(),r.host=r.hostname=W.shift())),(_=_||r.host&&y.length)&&!U&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),pr.isNull(r.pathname)&&pr.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},rr.prototype.parseHost=function(){var t=this.host,e=zm.exec(t);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},qe.Url,qe.format,qe.resolve,qe.resolveObject,Za={},sh=!1,oh=ZP(),Km=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,qe.URL=typeof URL<"u"?URL:null,qe.pathToFileURL=nk,qe.fileURLToPath=ek,qe.Url,qe.format,qe.resolve,qe.resolveObject,qe.URL,Q_=92,J_=47,Z_=97,ev=122,Pl=Km==="win32",tv=/\//g,rv=/%/g,nv=/\\/g,iv=/\n/g,sv=/\r/g,ov=/\t/g,Xm=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,qe.URL=typeof URL<"u"?URL:null,qe.pathToFileURL=X_,qe.fileURLToPath=K_,av=qe.Url,lv=qe.format,uv=qe.resolve,cv=qe.resolveObject,fv=qe.parse,dv=qe.URL,hv=92,pv=47,gv=97,mv=122,kl=Xm==="win32",bv=/\//g,yv=/%/g,wv=/\\/g,_v=/\n/g,vv=/\r/g,Ev=/\t/g}),ak=Te((t,e)=>{we(),ve(),_e(),e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),bp=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0}),t.BufferedDuplex=t.writev=void 0;var e=Di(),r=(vt(),Ke(_t));function n(i,a){let o=new Array(i.length);for(let l=0;l{this.destroyed||this.push(l)})}_read(i){this.proxy.read(i)}_write(i,a,o){this.isSocketOpen?this.writeToProxy(i,a,o):this.writeQueue.push({chunk:i,encoding:a,cb:o})}_final(i){this.writeQueue=[],this.proxy.end(i)}_destroy(i,a){this.writeQueue=[],this.proxy.destroy(),a(i)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(i,a,o){this.proxy.write(i,a)===!1?this.proxy.once("drain",o):o()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:i,encoding:a,cb:o}=this.writeQueue.shift();this.writeToProxy(i,a,o)}}};t.BufferedDuplex=s}),ma=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(t,"__esModule",{value:!0}),t.streamBuilder=t.browserStreamBuilder=void 0;var r=(vt(),Ke(_t)),n=e(ak()),s=e(hn()),i=Di(),a=e(lu()),o=bp(),l=(0,s.default)("mqttjs:ws"),u=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function c(_,E){let y=`${_.protocol}://${_.hostname}:${_.port}${_.path}`;return typeof _.transformWsUrl=="function"&&(y=_.transformWsUrl(y,_,E)),y}function f(_){let E=_;return _.port||(_.protocol==="wss"?E.port=443:E.port=80),_.path||(E.path="/"),_.wsOptions||(E.wsOptions={}),!a.default&&!_.forceNativeWebSocket&&_.protocol==="wss"&&u.forEach(y=>{Object.prototype.hasOwnProperty.call(_,y)&&!Object.prototype.hasOwnProperty.call(_.wsOptions,y)&&(E.wsOptions[y]=_[y])}),E}function d(_){let E=f(_);if(E.hostname||(E.hostname=E.host),!E.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let y=new URL(document.URL);E.hostname=y.hostname,E.port||(E.port=Number(y.port))}return E.objectMode===void 0&&(E.objectMode=!(E.binary===!0||E.binary===void 0)),E}function p(_,E,y){l("createWebSocket"),l(`protocol: ${y.protocolId} ${y.protocolVersion}`);let T=y.protocolId==="MQIsdp"&&y.protocolVersion===3?"mqttv3.1":"mqtt";l(`creating new Websocket for url: ${E} and protocol: ${T}`);let x;return y.createWebsocket?x=y.createWebsocket(E,[T],y):x=new n.default(E,[T],y.wsOptions),x}function m(_,E){let y=E.protocolId==="MQIsdp"&&E.protocolVersion===3?"mqttv3.1":"mqtt",T=c(E,_),x;return E.createWebsocket?x=E.createWebsocket(T,[y],E):x=new WebSocket(T,[y]),x.binaryType="arraybuffer",x}var b=(_,E)=>{l("streamBuilder");let y=f(E);y.hostname=y.hostname||y.host||"localhost";let T=c(y,_),x=p(_,T,y),A=n.default.createWebSocketStream(x,y.wsOptions);return A.url=T,x.on("close",()=>{A.destroy()}),A};t.streamBuilder=b;var v=(_,E)=>{l("browserStreamBuilder");let y,T=d(E).browserBufferSize||1024*512,x=E.browserBufferTimeout||1e3,A=!E.objectMode,P=m(_,E),L=U(E,J,ne);E.objectMode||(L._writev=o.writev.bind(L)),L.on("close",()=>{P.close()});let W=typeof P.addEventListener<"u";P.readyState===P.OPEN?(y=L,y.socket=P):(y=new o.BufferedDuplex(E,L,P),W?P.addEventListener("open",H):P.onopen=H),W?(P.addEventListener("close",C),P.addEventListener("error",I),P.addEventListener("message",N)):(P.onclose=C,P.onerror=I,P.onmessage=N);function U(te,B,ae){let Y=new i.Transform({objectMode:te.objectMode});return Y._write=B,Y._flush=ae,Y}function H(){l("WebSocket onOpen"),y instanceof o.BufferedDuplex&&y.socketReady()}function C(te){l("WebSocket onClose",te),y.end(),y.destroy()}function I(te){l("WebSocket onError",te);let B=new Error("WebSocket error");B.event=te,y.destroy(B)}async function N(te){let{data:B}=te;B instanceof ArrayBuffer?B=r.Buffer.from(B):B instanceof Blob?B=r.Buffer.from(await new Response(B).arrayBuffer()):B=r.Buffer.from(B,"utf8"),L&&!L.destroyed&&L.push(B)}function J(te,B,ae){if(P.bufferedAmount>T){setTimeout(J,x,te,B,ae);return}A&&typeof te=="string"&&(te=r.Buffer.from(te,"utf8"));try{P.send(te)}catch(Y){return ae(Y)}ae()}function ne(te){P.close(),te()}return y};t.browserStreamBuilder=v}),yp={};Ri(yp,{Server:()=>tt,Socket:()=>tt,Stream:()=>tt,_createServerHandle:()=>tt,_normalizeArgs:()=>tt,_setSimultaneousAccepts:()=>tt,connect:()=>tt,createConnection:()=>tt,createServer:()=>tt,default:()=>Sv,isIP:()=>tt,isIPv4:()=>tt,isIPv6:()=>tt});function tt(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}var Sv,Tv=wt(()=>{we(),ve(),_e(),Sv={_createServerHandle:tt,_normalizeArgs:tt,_setSimultaneousAccepts:tt,connect:tt,createConnection:tt,createServer:tt,isIP:tt,isIPv4:tt,isIPv6:tt,Server:tt,Socket:tt,Stream:tt}}),Qm=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((Tv(),Ke(yp))),n=e(hn()),s=(0,n.default)("mqttjs:tcp"),i=(a,o)=>{o.port=o.port||1883,o.hostname=o.hostname||o.host||"localhost";let{port:l,path:u}=o,c=o.hostname;return s("port %d and host %s",l,c),r.default.createConnection({port:l,host:c,path:u})};t.default=i}),xv={};Ri(xv,{default:()=>Av});var Av,lk=wt(()=>{we(),ve(),_e(),Av={}}),Jm=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((lk(),Ke(xv))),n=e((Tv(),Ke(yp))),s=e(hn()),i=(0,s.default)("mqttjs:tls"),a=(o,l)=>{l.port=l.port||8883,l.host=l.hostname||l.host||"localhost",n.default.isIP(l.host)===0&&(l.servername=l.host),l.rejectUnauthorized=l.rejectUnauthorized!==!1,delete l.path,i("port %d host %s rejectUnauthorized %b",l.port,l.host,l.rejectUnauthorized);let u=r.default.connect(l);u.on("secureConnect",()=>{l.rejectUnauthorized&&!u.authorized?u.emit("error",new Error("TLS not authorized")):u.removeListener("error",c)});function c(f){l.rejectUnauthorized&&o.emit("error",f),u.end()}return u.on("error",c),u};t.default=a}),Zm=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=(vt(),Ke(_t)),r=Di(),n=bp(),s,i,a;function o(){let d=new r.Transform;return d._write=(p,m,b)=>{s.send({data:p.buffer,success(){b()},fail(v){b(new Error(v))}})},d._flush=p=>{s.close({success(){p()}})},d}function l(d){d.hostname||(d.hostname="localhost"),d.path||(d.path="/"),d.wsOptions||(d.wsOptions={})}function u(d,p){let m=d.protocol==="wxs"?"wss":"ws",b=`${m}://${d.hostname}${d.path}`;return d.port&&d.port!==80&&d.port!==443&&(b=`${m}://${d.hostname}:${d.port}${d.path}`),typeof d.transformWsUrl=="function"&&(b=d.transformWsUrl(b,d,p)),b}function c(){s.onOpen(()=>{a.socketReady()}),s.onMessage(d=>{let{data:p}=d;p instanceof ArrayBuffer?p=e.Buffer.from(p):p=e.Buffer.from(p,"utf8"),i.push(p)}),s.onClose(()=>{a.emit("close"),a.end(),a.destroy()}),s.onError(d=>{let p=new Error(d.errMsg);a.destroy(p)})}var f=(d,p)=>{if(p.hostname=p.hostname||p.host,!p.hostname)throw new Error("Could not determine host. Specify host manually.");let m=p.protocolId==="MQIsdp"&&p.protocolVersion===3?"mqttv3.1":"mqtt";l(p);let b=u(p,d);s=wx.connectSocket({url:b,protocols:[m]}),i=o(),a=new n.BufferedDuplex(p,i,s),a._destroy=(_,E)=>{s.close({success(){E&&E(_)}})};let v=a.destroy;return a.destroy=(_,E)=>(a.destroy=v,setTimeout(()=>{s.close({fail(){a._destroy(_,E)}})},0),a),c(),a};t.default=f}),eb=Te(t=>{we(),ve(),_e(),Object.defineProperty(t,"__esModule",{value:!0});var e=(vt(),Ke(_t)),r=Di(),n=bp(),s,i,a,o=!1;function l(){let p=new r.Transform;return p._write=(m,b,v)=>{s.sendSocketMessage({data:m.buffer,success(){v()},fail(){v(new Error)}})},p._flush=m=>{s.closeSocket({success(){m()}})},p}function u(p){p.hostname||(p.hostname="localhost"),p.path||(p.path="/"),p.wsOptions||(p.wsOptions={})}function c(p,m){let b=p.protocol==="alis"?"wss":"ws",v=`${b}://${p.hostname}${p.path}`;return p.port&&p.port!==80&&p.port!==443&&(v=`${b}://${p.hostname}:${p.port}${p.path}`),typeof p.transformWsUrl=="function"&&(v=p.transformWsUrl(v,p,m)),v}function f(){o||(o=!0,s.onSocketOpen(()=>{a.socketReady()}),s.onSocketMessage(p=>{if(typeof p.data=="string"){let m=e.Buffer.from(p.data,"base64");i.push(m)}else{let m=new FileReader;m.addEventListener("load",()=>{let b=m.result;b instanceof ArrayBuffer?b=e.Buffer.from(b):b=e.Buffer.from(b,"utf8"),i.push(b)}),m.readAsArrayBuffer(p.data)}}),s.onSocketClose(()=>{a.end(),a.destroy()}),s.onSocketError(p=>{a.destroy(p)}))}var d=(p,m)=>{if(m.hostname=m.hostname||m.host,!m.hostname)throw new Error("Could not determine host. Specify host manually.");let b=m.protocolId==="MQIsdp"&&m.protocolVersion===3?"mqttv3.1":"mqtt";u(m);let v=c(m,p);return s=m.my,s.connectSocket({url:v,protocols:b}),i=l(),a=new n.BufferedDuplex(m,i,s),f(),a};t.default=d}),uk=Te(t=>{we(),ve(),_e();var e=t&&t.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.connectAsync=void 0;var r=e(hn()),n=e((ok(),Ke(G_))),s=e(Jd()),i=e(lu());typeof(ze==null?void 0:ze.nextTick)!="function"&&(ze.nextTick=setImmediate);var a=(0,r.default)("mqttjs"),o=null;function l(f){let d;f.auth&&(d=f.auth.match(/^(.+):(.+)$/),d?(f.username=d[1],f.password=d[2]):f.username=f.auth)}function u(f,d){var p,m,b,v;if(a("connecting to an MQTT broker..."),typeof f=="object"&&!d&&(d=f,f=""),d=d||{},f&&typeof f=="string"){let y=n.default.parse(f,!0),T={};if(y.port!=null&&(T.port=Number(y.port)),T.host=y.hostname,T.query=y.query,T.auth=y.auth,T.protocol=y.protocol,T.path=y.path,T.protocol=(p=T.protocol)===null||p===void 0?void 0:p.replace(/:$/,""),d=Object.assign(Object.assign({},T),d),!d.protocol)throw new Error("Missing protocol")}if(d.unixSocket=d.unixSocket||((m=d.protocol)===null||m===void 0?void 0:m.includes("+unix")),d.unixSocket?d.protocol=d.protocol.replace("+unix",""):!(!((b=d.protocol)===null||b===void 0)&&b.startsWith("ws"))&&!(!((v=d.protocol)===null||v===void 0)&&v.startsWith("wx"))&&delete d.path,l(d),d.query&&typeof d.query.clientId=="string"&&(d.clientId=d.query.clientId),d.cert&&d.key)if(d.protocol){if(["mqtts","wss","wxs","alis"].indexOf(d.protocol)===-1)switch(d.protocol){case"mqtt":d.protocol="mqtts";break;case"ws":d.protocol="wss";break;case"wx":d.protocol="wxs";break;case"ali":d.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${d.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(o||(o={},!i.default&&!d.forceNativeWebSocket?(o.ws=ma().streamBuilder,o.wss=ma().streamBuilder,o.mqtt=Qm().default,o.tcp=Qm().default,o.ssl=Jm().default,o.tls=o.ssl,o.mqtts=Jm().default):(o.ws=ma().browserStreamBuilder,o.wss=ma().browserStreamBuilder,o.wx=Zm().default,o.wxs=Zm().default,o.ali=eb().default,o.alis=eb().default)),!o[d.protocol]){let y=["mqtts","wss"].indexOf(d.protocol)!==-1;d.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((T,x)=>y&&x%2===0?!1:typeof o[T]=="function")[0]}if(d.clean===!1&&!d.clientId)throw new Error("Missing clientId for unclean clients");d.protocol&&(d.defaultProtocol=d.protocol);function _(y){return d.servers&&((!y._reconnectCount||y._reconnectCount===d.servers.length)&&(y._reconnectCount=0),d.host=d.servers[y._reconnectCount].host,d.port=d.servers[y._reconnectCount].port,d.protocol=d.servers[y._reconnectCount].protocol?d.servers[y._reconnectCount].protocol:d.defaultProtocol,d.hostname=d.host,y._reconnectCount++),a("calling streambuilder for",d.protocol),o[d.protocol](y,d)}let E=new s.default(_,d);return E.on("error",()=>{}),E}function c(f,d,p=!0){return new Promise((m,b)=>{let v=u(f,d),_={connect:y=>{E(),m(v)},end:()=>{E(),m(v)},error:y=>{E(),v.end(),b(y)}};p===!1&&(_.close=()=>{_.error(new Error("Couldn't connect to server"))});function E(){Object.keys(_).forEach(y=>{v.off(y,_[y])})}Object.keys(_).forEach(y=>{v.on(y,_[y])})})}t.connectAsync=c,t.default=u}),tb=Te(t=>{we(),ve(),_e();var e=t&&t.__createBinding||(Object.create?function(p,m,b,v){v===void 0&&(v=b);var _=Object.getOwnPropertyDescriptor(m,b);(!_||("get"in _?!m.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return m[b]}}),Object.defineProperty(p,v,_)}:function(p,m,b,v){v===void 0&&(v=b),p[v]=m[b]}),r=t&&t.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,"default",{enumerable:!0,value:m})}:function(p,m){p.default=m}),n=t&&t.__importStar||function(p){if(p&&p.__esModule)return p;var m={};if(p!=null)for(var b in p)b!=="default"&&Object.prototype.hasOwnProperty.call(p,b)&&e(m,p,b);return r(m,p),m},s=t&&t.__exportStar||function(p,m){for(var b in p)b!=="default"&&!Object.prototype.hasOwnProperty.call(m,b)&&e(m,p,b)},i=t&&t.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=t.KeepaliveManager=t.UniqueMessageIdProvider=t.DefaultMessageIdProvider=t.Store=t.MqttClient=t.connectAsync=t.connect=t.Client=void 0;var a=i(Jd());t.MqttClient=a.default;var o=i(x_());t.DefaultMessageIdProvider=o.default;var l=i(zP());t.UniqueMessageIdProvider=l.default;var u=i(A_());t.Store=u.default;var c=n(uk());t.connect=c.default,Object.defineProperty(t,"connectAsync",{enumerable:!0,get:function(){return c.connectAsync}});var f=i(W_());t.KeepaliveManager=f.default,t.Client=a.default,s(Jd(),t),s(Ps(),t);var d=au();Object.defineProperty(t,"ReasonCodes",{enumerable:!0,get:function(){return d.ReasonCodes}})}),ck=Te(t=>{we(),ve(),_e();var e=t&&t.__createBinding||(Object.create?function(a,o,l,u){u===void 0&&(u=l);var c=Object.getOwnPropertyDescriptor(o,l);(!c||("get"in c?!o.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(a,u,c)}:function(a,o,l,u){u===void 0&&(u=l),a[u]=o[l]}),r=t&&t.__setModuleDefault||(Object.create?function(a,o){Object.defineProperty(a,"default",{enumerable:!0,value:o})}:function(a,o){a.default=o}),n=t&&t.__importStar||function(a){if(a&&a.__esModule)return a;var o={};if(a!=null)for(var l in a)l!=="default"&&Object.prototype.hasOwnProperty.call(a,l)&&e(o,a,l);return r(o,a),o},s=t&&t.__exportStar||function(a,o){for(var l in a)l!=="default"&&!Object.prototype.hasOwnProperty.call(o,l)&&e(o,a,l)};Object.defineProperty(t,"__esModule",{value:!0});var i=n(tb());t.default=i,s(tb(),t)});const BF=ck();/*! Bundled license information: - -@jspm/core/nodelibs/browser/buffer.js: - (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) -*/var Zs={},eo={exports:{}},oc={exports:{}},ac={exports:{}},lc={},to={},rb;function fk(){if(rb)return to;rb=1,to.byteLength=o,to.toByteArray=u,to.fromByteArray=d;for(var t=[],e=[],r=typeof Uint8Array<"u"?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,i=n.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var b=p.indexOf("=");b===-1&&(b=m);var v=b===m?0:4-b%4;return[b,v]}function o(p){var m=a(p),b=m[0],v=m[1];return(b+v)*3/4-v}function l(p,m,b){return(m+b)*3/4-b}function u(p){var m,b=a(p),v=b[0],_=b[1],E=new r(l(p,v,_)),y=0,T=_>0?v-4:v,x;for(x=0;x>16&255,E[y++]=m>>8&255,E[y++]=m&255;return _===2&&(m=e[p.charCodeAt(x)]<<2|e[p.charCodeAt(x+1)]>>4,E[y++]=m&255),_===1&&(m=e[p.charCodeAt(x)]<<10|e[p.charCodeAt(x+1)]<<4|e[p.charCodeAt(x+2)]>>2,E[y++]=m>>8&255,E[y++]=m&255),E}function c(p){return t[p>>18&63]+t[p>>12&63]+t[p>>6&63]+t[p&63]}function f(p,m,b){for(var v,_=[],E=m;ET?T:y+E));return v===1?(m=p[b-1],_.push(t[m>>2]+t[m<<4&63]+"==")):v===2&&(m=(p[b-2]<<8)+p[b-1],_.push(t[m>>10]+t[m>>4&63]+t[m<<2&63]+"=")),_.join("")}return to}var ba={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var nb;function dk(){return nb||(nb=1,ba.read=function(t,e,r,n,s){var i,a,o=s*8-n-1,l=(1<>1,c=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-c)-1,p>>=-c,c+=o;c>0;i=i*256+t[e+f],f+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+t[e+f],f+=d,c-=8);if(i===0)i=1-u;else{if(i===l)return a?NaN:(p?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-u}return(p?-1:1)*a*Math.pow(2,i-n)},ba.write=function(t,e,r,n,s,i){var a,o,l,u=i*8-s-1,c=(1<>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,m=n?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(e*l-1)*Math.pow(2,s),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),a=0));s>=8;t[r+p]=o&255,p+=m,o/=256,s-=8);for(a=a<0;t[r+p]=a&255,p+=m,a/=256,u-=8);t[r+p-m]|=b*128}),ba}/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var ib;function er(){return ib||(ib=1,function(t){const e=fk(),r=dk(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=o,t.SlowBuffer=E,t.INSPECT_MAX_BYTES=50;const s=2147483647;t.kMaxLength=s,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const g=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(g,h),g.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(g){if(g>s)throw new RangeError('The value "'+g+'" is invalid for option "size"');const h=new Uint8Array(g);return Object.setPrototypeOf(h,o.prototype),h}function o(g,h,w){if(typeof g=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(g)}return l(g,h,w)}o.poolSize=8192;function l(g,h,w){if(typeof g=="string")return d(g,h);if(ArrayBuffer.isView(g))return m(g);if(g==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof g);if(z(g,ArrayBuffer)||g&&z(g.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(z(g,SharedArrayBuffer)||g&&z(g.buffer,SharedArrayBuffer)))return b(g,h,w);if(typeof g=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=g.valueOf&&g.valueOf();if(k!=null&&k!==g)return o.from(k,h,w);const Z=v(g);if(Z)return Z;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof g[Symbol.toPrimitive]=="function")return o.from(g[Symbol.toPrimitive]("string"),h,w);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof g)}o.from=function(g,h,w){return l(g,h,w)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function u(g){if(typeof g!="number")throw new TypeError('"size" argument must be of type number');if(g<0)throw new RangeError('The value "'+g+'" is invalid for option "size"')}function c(g,h,w){return u(g),g<=0?a(g):h!==void 0?typeof w=="string"?a(g).fill(h,w):a(g).fill(h):a(g)}o.alloc=function(g,h,w){return c(g,h,w)};function f(g){return u(g),a(g<0?0:_(g)|0)}o.allocUnsafe=function(g){return f(g)},o.allocUnsafeSlow=function(g){return f(g)};function d(g,h){if((typeof h!="string"||h==="")&&(h="utf8"),!o.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const w=y(g,h)|0;let k=a(w);const Z=k.write(g,h);return Z!==w&&(k=k.slice(0,Z)),k}function p(g){const h=g.length<0?0:_(g.length)|0,w=a(h);for(let k=0;k=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return g|0}function E(g){return+g!=g&&(g=0),o.alloc(+g)}o.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==o.prototype},o.compare=function(h,w){if(z(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),z(w,Uint8Array)&&(w=o.from(w,w.offset,w.byteLength)),!o.isBuffer(h)||!o.isBuffer(w))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===w)return 0;let k=h.length,Z=w.length;for(let de=0,ye=Math.min(k,Z);deZ.length?(o.isBuffer(ye)||(ye=o.from(ye)),ye.copy(Z,de)):Uint8Array.prototype.set.call(Z,ye,de);else if(o.isBuffer(ye))ye.copy(Z,de);else throw new TypeError('"list" argument must be an Array of Buffers');de+=ye.length}return Z};function y(g,h){if(o.isBuffer(g))return g.length;if(ArrayBuffer.isView(g)||z(g,ArrayBuffer))return g.byteLength;if(typeof g!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof g);const w=g.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&w===0)return 0;let Z=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return w;case"utf8":case"utf-8":return q(g).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w*2;case"hex":return w>>>1;case"base64":return G(g).length;default:if(Z)return k?-1:q(g).length;h=(""+h).toLowerCase(),Z=!0}}o.byteLength=y;function T(g,h,w){let k=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((w===void 0||w>this.length)&&(w=this.length),w<=0)||(w>>>=0,h>>>=0,w<=h))return"";for(g||(g="utf8");;)switch(g){case"hex":return ae(this,h,w);case"utf8":case"utf-8":return N(this,h,w);case"ascii":return te(this,h,w);case"latin1":case"binary":return B(this,h,w);case"base64":return I(this,h,w);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Y(this,h,w);default:if(k)throw new TypeError("Unknown encoding: "+g);g=(g+"").toLowerCase(),k=!0}}o.prototype._isBuffer=!0;function x(g,h,w){const k=g[h];g[h]=g[w],g[w]=k}o.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let w=0;ww&&(h+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(h,w,k,Z,de){if(z(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(w===void 0&&(w=0),k===void 0&&(k=h?h.length:0),Z===void 0&&(Z=0),de===void 0&&(de=this.length),w<0||k>h.length||Z<0||de>this.length)throw new RangeError("out of range index");if(Z>=de&&w>=k)return 0;if(Z>=de)return-1;if(w>=k)return 1;if(w>>>=0,k>>>=0,Z>>>=0,de>>>=0,this===h)return 0;let ye=de-Z,Ae=k-w;const Me=Math.min(ye,Ae),xe=this.slice(Z,de),Pe=h.slice(w,k);for(let Oe=0;Oe2147483647?w=2147483647:w<-2147483648&&(w=-2147483648),w=+w,ie(w)&&(w=Z?0:g.length-1),w<0&&(w=g.length+w),w>=g.length){if(Z)return-1;w=g.length-1}else if(w<0)if(Z)w=0;else return-1;if(typeof h=="string"&&(h=o.from(h,k)),o.isBuffer(h))return h.length===0?-1:P(g,h,w,k,Z);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?Z?Uint8Array.prototype.indexOf.call(g,h,w):Uint8Array.prototype.lastIndexOf.call(g,h,w):P(g,[h],w,k,Z);throw new TypeError("val must be string, number or Buffer")}function P(g,h,w,k,Z){let de=1,ye=g.length,Ae=h.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(g.length<2||h.length<2)return-1;de=2,ye/=2,Ae/=2,w/=2}function Me(Pe,Oe){return de===1?Pe[Oe]:Pe.readUInt16BE(Oe*de)}let xe;if(Z){let Pe=-1;for(xe=w;xeye&&(w=ye-Ae),xe=w;xe>=0;xe--){let Pe=!0;for(let Oe=0;OeZ&&(k=Z)):k=Z;const de=h.length;k>de/2&&(k=de/2);let ye;for(ye=0;ye>>0,isFinite(k)?(k=k>>>0,Z===void 0&&(Z="utf8")):(Z=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const de=this.length-w;if((k===void 0||k>de)&&(k=de),h.length>0&&(k<0||w<0)||w>this.length)throw new RangeError("Attempt to write outside buffer bounds");Z||(Z="utf8");let ye=!1;for(;;)switch(Z){case"hex":return L(this,h,w,k);case"utf8":case"utf-8":return W(this,h,w,k);case"ascii":case"latin1":case"binary":return U(this,h,w,k);case"base64":return H(this,h,w,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,h,w,k);default:if(ye)throw new TypeError("Unknown encoding: "+Z);Z=(""+Z).toLowerCase(),ye=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(g,h,w){return h===0&&w===g.length?e.fromByteArray(g):e.fromByteArray(g.slice(h,w))}function N(g,h,w){w=Math.min(g.length,w);const k=[];let Z=h;for(;Z239?4:de>223?3:de>191?2:1;if(Z+Ae<=w){let Me,xe,Pe,Oe;switch(Ae){case 1:de<128&&(ye=de);break;case 2:Me=g[Z+1],(Me&192)===128&&(Oe=(de&31)<<6|Me&63,Oe>127&&(ye=Oe));break;case 3:Me=g[Z+1],xe=g[Z+2],(Me&192)===128&&(xe&192)===128&&(Oe=(de&15)<<12|(Me&63)<<6|xe&63,Oe>2047&&(Oe<55296||Oe>57343)&&(ye=Oe));break;case 4:Me=g[Z+1],xe=g[Z+2],Pe=g[Z+3],(Me&192)===128&&(xe&192)===128&&(Pe&192)===128&&(Oe=(de&15)<<18|(Me&63)<<12|(xe&63)<<6|Pe&63,Oe>65535&&Oe<1114112&&(ye=Oe))}}ye===null?(ye=65533,Ae=1):ye>65535&&(ye-=65536,k.push(ye>>>10&1023|55296),ye=56320|ye&1023),k.push(ye),Z+=Ae}return ne(k)}const J=4096;function ne(g){const h=g.length;if(h<=J)return String.fromCharCode.apply(String,g);let w="",k=0;for(;kk)&&(w=k);let Z="";for(let de=h;dek&&(h=k),w<0?(w+=k,w<0&&(w=0)):w>k&&(w=k),ww)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(h,w,k){h=h>>>0,w=w>>>0,k||ce(h,w,this.length);let Z=this[h],de=1,ye=0;for(;++ye>>0,w=w>>>0,k||ce(h,w,this.length);let Z=this[h+--w],de=1;for(;w>0&&(de*=256);)Z+=this[h+--w]*de;return Z},o.prototype.readUint8=o.prototype.readUInt8=function(h,w){return h=h>>>0,w||ce(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,w){return h=h>>>0,w||ce(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,w){return h=h>>>0,w||ce(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,w){return h=h>>>0,w||ce(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,w){return h=h>>>0,w||ce(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=be(function(h){h=h>>>0,O(h,"offset");const w=this[h],k=this[h+7];(w===void 0||k===void 0)&&F(h,this.length-8);const Z=w+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,de=this[++h]+this[++h]*2**8+this[++h]*2**16+k*2**24;return BigInt(Z)+(BigInt(de)<>>0,O(h,"offset");const w=this[h],k=this[h+7];(w===void 0||k===void 0)&&F(h,this.length-8);const Z=w*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],de=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+k;return(BigInt(Z)<>>0,w=w>>>0,k||ce(h,w,this.length);let Z=this[h],de=1,ye=0;for(;++ye=de&&(Z-=Math.pow(2,8*w)),Z},o.prototype.readIntBE=function(h,w,k){h=h>>>0,w=w>>>0,k||ce(h,w,this.length);let Z=w,de=1,ye=this[h+--Z];for(;Z>0&&(de*=256);)ye+=this[h+--Z]*de;return de*=128,ye>=de&&(ye-=Math.pow(2,8*w)),ye},o.prototype.readInt8=function(h,w){return h=h>>>0,w||ce(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},o.prototype.readInt16LE=function(h,w){h=h>>>0,w||ce(h,2,this.length);const k=this[h]|this[h+1]<<8;return k&32768?k|4294901760:k},o.prototype.readInt16BE=function(h,w){h=h>>>0,w||ce(h,2,this.length);const k=this[h+1]|this[h]<<8;return k&32768?k|4294901760:k},o.prototype.readInt32LE=function(h,w){return h=h>>>0,w||ce(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,w){return h=h>>>0,w||ce(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=be(function(h){h=h>>>0,O(h,"offset");const w=this[h],k=this[h+7];(w===void 0||k===void 0)&&F(h,this.length-8);const Z=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(k<<24);return(BigInt(Z)<>>0,O(h,"offset");const w=this[h],k=this[h+7];(w===void 0||k===void 0)&&F(h,this.length-8);const Z=(w<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(Z)<>>0,w||ce(h,4,this.length),r.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,w){return h=h>>>0,w||ce(h,4,this.length),r.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,w){return h=h>>>0,w||ce(h,8,this.length),r.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,w){return h=h>>>0,w||ce(h,8,this.length),r.read(this,h,!1,52,8)};function $(g,h,w,k,Z,de){if(!o.isBuffer(g))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>Z||hg.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,w,k,Z){if(h=+h,w=w>>>0,k=k>>>0,!Z){const Ae=Math.pow(2,8*k)-1;$(this,h,w,k,Ae,0)}let de=1,ye=0;for(this[w]=h&255;++ye>>0,k=k>>>0,!Z){const Ae=Math.pow(2,8*k)-1;$(this,h,w,k,Ae,0)}let de=k-1,ye=1;for(this[w+de]=h&255;--de>=0&&(ye*=256);)this[w+de]=h/ye&255;return w+k},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,1,255,0),this[w]=h&255,w+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,2,65535,0),this[w]=h&255,this[w+1]=h>>>8,w+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,2,65535,0),this[w]=h>>>8,this[w+1]=h&255,w+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,4,4294967295,0),this[w+3]=h>>>24,this[w+2]=h>>>16,this[w+1]=h>>>8,this[w]=h&255,w+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,4,4294967295,0),this[w]=h>>>24,this[w+1]=h>>>16,this[w+2]=h>>>8,this[w+3]=h&255,w+4};function ue(g,h,w,k,Z){M(h,k,Z,g,w,7);let de=Number(h&BigInt(4294967295));g[w++]=de,de=de>>8,g[w++]=de,de=de>>8,g[w++]=de,de=de>>8,g[w++]=de;let ye=Number(h>>BigInt(32)&BigInt(4294967295));return g[w++]=ye,ye=ye>>8,g[w++]=ye,ye=ye>>8,g[w++]=ye,ye=ye>>8,g[w++]=ye,w}function me(g,h,w,k,Z){M(h,k,Z,g,w,7);let de=Number(h&BigInt(4294967295));g[w+7]=de,de=de>>8,g[w+6]=de,de=de>>8,g[w+5]=de,de=de>>8,g[w+4]=de;let ye=Number(h>>BigInt(32)&BigInt(4294967295));return g[w+3]=ye,ye=ye>>8,g[w+2]=ye,ye=ye>>8,g[w+1]=ye,ye=ye>>8,g[w]=ye,w+8}o.prototype.writeBigUInt64LE=be(function(h,w=0){return ue(this,h,w,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=be(function(h,w=0){return me(this,h,w,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,w,k,Z){if(h=+h,w=w>>>0,!Z){const Me=Math.pow(2,8*k-1);$(this,h,w,k,Me-1,-Me)}let de=0,ye=1,Ae=0;for(this[w]=h&255;++de>0)-Ae&255;return w+k},o.prototype.writeIntBE=function(h,w,k,Z){if(h=+h,w=w>>>0,!Z){const Me=Math.pow(2,8*k-1);$(this,h,w,k,Me-1,-Me)}let de=k-1,ye=1,Ae=0;for(this[w+de]=h&255;--de>=0&&(ye*=256);)h<0&&Ae===0&&this[w+de+1]!==0&&(Ae=1),this[w+de]=(h/ye>>0)-Ae&255;return w+k},o.prototype.writeInt8=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,1,127,-128),h<0&&(h=255+h+1),this[w]=h&255,w+1},o.prototype.writeInt16LE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,2,32767,-32768),this[w]=h&255,this[w+1]=h>>>8,w+2},o.prototype.writeInt16BE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,2,32767,-32768),this[w]=h>>>8,this[w+1]=h&255,w+2},o.prototype.writeInt32LE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,4,2147483647,-2147483648),this[w]=h&255,this[w+1]=h>>>8,this[w+2]=h>>>16,this[w+3]=h>>>24,w+4},o.prototype.writeInt32BE=function(h,w,k){return h=+h,w=w>>>0,k||$(this,h,w,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[w]=h>>>24,this[w+1]=h>>>16,this[w+2]=h>>>8,this[w+3]=h&255,w+4},o.prototype.writeBigInt64LE=be(function(h,w=0){return ue(this,h,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=be(function(h,w=0){return me(this,h,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ee(g,h,w,k,Z,de){if(w+k>g.length)throw new RangeError("Index out of range");if(w<0)throw new RangeError("Index out of range")}function K(g,h,w,k,Z){return h=+h,w=w>>>0,Z||ee(g,h,w,4),r.write(g,h,w,k,23,4),w+4}o.prototype.writeFloatLE=function(h,w,k){return K(this,h,w,!0,k)},o.prototype.writeFloatBE=function(h,w,k){return K(this,h,w,!1,k)};function j(g,h,w,k,Z){return h=+h,w=w>>>0,Z||ee(g,h,w,8),r.write(g,h,w,k,52,8),w+8}o.prototype.writeDoubleLE=function(h,w,k){return j(this,h,w,!0,k)},o.prototype.writeDoubleBE=function(h,w,k){return j(this,h,w,!1,k)},o.prototype.copy=function(h,w,k,Z){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(k||(k=0),!Z&&Z!==0&&(Z=this.length),w>=h.length&&(w=h.length),w||(w=0),Z>0&&Z=this.length)throw new RangeError("Index out of range");if(Z<0)throw new RangeError("sourceEnd out of bounds");Z>this.length&&(Z=this.length),h.length-w>>0,k=k===void 0?this.length:k>>>0,h||(h=0);let de;if(typeof h=="number")for(de=w;de2**32?Z=le(String(w)):typeof w=="bigint"&&(Z=String(w),(w>BigInt(2)**BigInt(32)||w<-(BigInt(2)**BigInt(32)))&&(Z=le(Z)),Z+="n"),k+=` It must be ${h}. Received ${Z}`,k},RangeError);function le(g){let h="",w=g.length;const k=g[0]==="-"?1:0;for(;w>=k+4;w-=3)h=`_${g.slice(w-3,w)}${h}`;return`${g.slice(0,w)}${h}`}function se(g,h,w){O(h,"offset"),(g[h]===void 0||g[h+w]===void 0)&&F(h,g.length-(w+1))}function M(g,h,w,k,Z,de){if(g>w||g= 0${ye} and < 2${ye} ** ${(de+1)*8}${ye}`:Ae=`>= -(2${ye} ** ${(de+1)*8-1}${ye}) and < 2 ** ${(de+1)*8-1}${ye}`,new D.ERR_OUT_OF_RANGE("value",Ae,g)}se(k,Z,de)}function O(g,h){if(typeof g!="number")throw new D.ERR_INVALID_ARG_TYPE(h,"number",g)}function F(g,h,w){throw Math.floor(g)!==g?(O(g,w),new D.ERR_OUT_OF_RANGE("offset","an integer",g)):h<0?new D.ERR_BUFFER_OUT_OF_BOUNDS:new D.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${h}`,g)}const R=/[^+/0-9A-Za-z-_]/g;function V(g){if(g=g.split("=")[0],g=g.trim().replace(R,""),g.length<2)return"";for(;g.length%4!==0;)g=g+"=";return g}function q(g,h){h=h||1/0;let w;const k=g.length;let Z=null;const de=[];for(let ye=0;ye55295&&w<57344){if(!Z){if(w>56319){(h-=3)>-1&&de.push(239,191,189);continue}else if(ye+1===k){(h-=3)>-1&&de.push(239,191,189);continue}Z=w;continue}if(w<56320){(h-=3)>-1&&de.push(239,191,189),Z=w;continue}w=(Z-55296<<10|w-56320)+65536}else Z&&(h-=3)>-1&&de.push(239,191,189);if(Z=null,w<128){if((h-=1)<0)break;de.push(w)}else if(w<2048){if((h-=2)<0)break;de.push(w>>6|192,w&63|128)}else if(w<65536){if((h-=3)<0)break;de.push(w>>12|224,w>>6&63|128,w&63|128)}else if(w<1114112){if((h-=4)<0)break;de.push(w>>18|240,w>>12&63|128,w>>6&63|128,w&63|128)}else throw new Error("Invalid code point")}return de}function oe(g){const h=[];for(let w=0;w>8,Z=w%256,de.push(Z),de.push(k);return de}function G(g){return e.toByteArray(V(g))}function re(g,h,w,k){let Z;for(Z=0;Z=h.length||Z>=g.length);++Z)h[Z+w]=g[Z];return Z}function z(g,h){return g instanceof h||g!=null&&g.constructor!=null&&g.constructor.name!=null&&g.constructor.name===h.name}function ie(g){return g!==g}const he=function(){const g="0123456789abcdef",h=new Array(256);for(let w=0;w<16;++w){const k=w*16;for(let Z=0;Z<16;++Z)h[k+Z]=g[w]+g[Z]}return h}();function be(g){return typeof BigInt>"u"?S:g}function S(){throw new Error("BigInt not supported")}}(lc)),lc}var uc,sb;function st(){if(sb)return uc;sb=1;class t extends Error{constructor(r){if(!Array.isArray(r))throw new TypeError(`Expected input to be an Array, got ${typeof r}`);let n="";for(let s=0;s=y+4;E-=3)_=`_${v.slice(E-3,E)}${_}`;return`${v.slice(0,E)}${_}`}function f(v,_,E){if(typeof _=="function")return u(_.length<=E.length,`Code: ${v}; The provided arguments length (${E.length}) does not match the required ones (${_.length}).`),_(...E);const y=(_.match(/%[dfijoOs]/g)||[]).length;return u(y===E.length,`Code: ${v}; The provided arguments length (${E.length}) does not match the required ones (${y}).`),E.length===0?_:t(_,...E)}function d(v,_,E){E||(E=Error);class y extends E{constructor(...x){super(f(v,_,x))}toString(){return`${this.name} [${v}]: ${this.message}`}}Object.defineProperties(y.prototype,{name:{value:E.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${v}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),y.prototype.code=v,y.prototype[s]=!0,l[v]=y}function p(v){const _=o+v.name;return Object.defineProperty(v,"name",{value:_}),v}function m(v,_){if(v&&_&&v!==_){if(Array.isArray(_.errors))return _.errors.push(v),_;const E=new n([_,v],_.message);return E.code=_.code,E}return v||_}class b extends Error{constructor(_="The operation was aborted",E=void 0){if(E!==void 0&&typeof E!="object")throw new l.ERR_INVALID_ARG_TYPE("options","Object",E);super(_,E),this.code="ABORT_ERR",this.name="AbortError"}}return d("ERR_ASSERTION","%s",Error),d("ERR_INVALID_ARG_TYPE",(v,_,E)=>{u(typeof v=="string","'name' must be a string"),Array.isArray(_)||(_=[_]);let y="The ";v.endsWith(" argument")?y+=`${v} `:y+=`"${v}" ${v.includes(".")?"property":"argument"} `,y+="must be ";const T=[],x=[],A=[];for(const L of _)u(typeof L=="string","All expected entries have to be of type string"),i.includes(L)?T.push(L.toLowerCase()):a.test(L)?x.push(L):(u(L!=="object",'The value "object" should be written as "Object"'),A.push(L));if(x.length>0){const L=T.indexOf("object");L!==-1&&(T.splice(T,L,1),x.push("Object"))}if(T.length>0){switch(T.length){case 1:y+=`of type ${T[0]}`;break;case 2:y+=`one of type ${T[0]} or ${T[1]}`;break;default:{const L=T.pop();y+=`one of type ${T.join(", ")}, or ${L}`}}(x.length>0||A.length>0)&&(y+=" or ")}if(x.length>0){switch(x.length){case 1:y+=`an instance of ${x[0]}`;break;case 2:y+=`an instance of ${x[0]} or ${x[1]}`;break;default:{const L=x.pop();y+=`an instance of ${x.join(", ")}, or ${L}`}}A.length>0&&(y+=" or ")}switch(A.length){case 0:break;case 1:A[0].toLowerCase()!==A[0]&&(y+="an "),y+=`${A[0]}`;break;case 2:y+=`one of ${A[0]} or ${A[1]}`;break;default:{const L=A.pop();y+=`one of ${A.join(", ")}, or ${L}`}}if(E==null)y+=`. Received ${E}`;else if(typeof E=="function"&&E.name)y+=`. Received function ${E.name}`;else if(typeof E=="object"){var P;if((P=E.constructor)!==null&&P!==void 0&&P.name)y+=`. Received an instance of ${E.constructor.name}`;else{const L=e(E,{depth:-1});y+=`. Received ${L}`}}else{let L=e(E,{colors:!1});L.length>25&&(L=`${L.slice(0,25)}...`),y+=`. Received type ${typeof E} (${L})`}return y},TypeError),d("ERR_INVALID_ARG_VALUE",(v,_,E="is invalid")=>{let y=e(_);return y.length>128&&(y=y.slice(0,128)+"..."),`The ${v.includes(".")?"property":"argument"} '${v}' ${E}. Received ${y}`},TypeError),d("ERR_INVALID_RETURN_VALUE",(v,_,E)=>{var y;const T=E!=null&&(y=E.constructor)!==null&&y!==void 0&&y.name?`instance of ${E.constructor.name}`:`type ${typeof E}`;return`Expected ${v} to be returned from the "${_}" function but got ${T}.`},TypeError),d("ERR_MISSING_ARGS",(...v)=>{u(v.length>0,"At least one arg needs to be specified");let _;const E=v.length;switch(v=(Array.isArray(v)?v:[v]).map(y=>`"${y}"`).join(" or "),E){case 1:_+=`The ${v[0]} argument`;break;case 2:_+=`The ${v[0]} and ${v[1]} arguments`;break;default:{const y=v.pop();_+=`The ${v.join(", ")}, and ${y} arguments`}break}return`${_} must be specified`},TypeError),d("ERR_OUT_OF_RANGE",(v,_,E)=>{u(_,'Missing "range" argument');let y;if(Number.isInteger(E)&&Math.abs(E)>2**32)y=c(String(E));else if(typeof E=="bigint"){y=String(E);const T=BigInt(2)**BigInt(32);(E>T||E<-T)&&(y=c(y)),y+="n"}else y=e(E);return`The value of "${v}" is out of range. It must be ${_}. Received ${y}`},RangeError),d("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),d("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),d("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),d("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),d("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),d("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),d("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),d("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),d("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),d("ERR_STREAM_WRITE_AFTER_END","write after end",Error),d("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),dc={AbortError:b,aggregateTwoErrors:p(m),hideStackFrames:p,codes:l},dc}var ro={exports:{}},lb;function Do(){if(lb)return ro.exports;lb=1;const{AbortController:t,AbortSignal:e}=typeof self<"u"?self:typeof window<"u"?window:void 0;return ro.exports=t,ro.exports.AbortSignal=e,ro.exports.default=t,ro.exports}var ya={exports:{}},ub;function ks(){if(ub)return ya.exports;ub=1;var t=typeof Reflect=="object"?Reflect:null,e=t&&typeof t.apply=="function"?t.apply:function(x,A,P){return Function.prototype.apply.call(x,A,P)},r;t&&typeof t.ownKeys=="function"?r=t.ownKeys:Object.getOwnPropertySymbols?r=function(x){return Object.getOwnPropertyNames(x).concat(Object.getOwnPropertySymbols(x))}:r=function(x){return Object.getOwnPropertyNames(x)};function n(T){console&&console.warn&&console.warn(T)}var s=Number.isNaN||function(x){return x!==x};function i(){i.init.call(this)}ya.exports=i,ya.exports.once=_,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var a=10;function o(T){if(typeof T!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof T)}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(T){if(typeof T!="number"||T<0||s(T))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+T+".");a=T}}),i.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(x){if(typeof x!="number"||x<0||s(x))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+x+".");return this._maxListeners=x,this};function l(T){return T._maxListeners===void 0?i.defaultMaxListeners:T._maxListeners}i.prototype.getMaxListeners=function(){return l(this)},i.prototype.emit=function(x){for(var A=[],P=1;P0&&(U=A[0]),U instanceof Error)throw U;var H=new Error("Unhandled error."+(U?" ("+U.message+")":""));throw H.context=U,H}var C=W[x];if(C===void 0)return!1;if(typeof C=="function")e(C,this,A);else for(var I=C.length,N=m(C,I),P=0;P0&&U.length>L&&!U.warned){U.warned=!0;var H=new Error("Possible EventEmitter memory leak detected. "+U.length+" "+String(x)+" listeners added. Use emitter.setMaxListeners() to increase limit");H.name="MaxListenersExceededWarning",H.emitter=T,H.type=x,H.count=U.length,n(H)}return T}i.prototype.addListener=function(x,A){return u(this,x,A,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(x,A){return u(this,x,A,!0)};function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(T,x,A){var P={fired:!1,wrapFn:void 0,target:T,type:x,listener:A},L=c.bind(P);return L.listener=A,P.wrapFn=L,L}i.prototype.once=function(x,A){return o(A),this.on(x,f(this,x,A)),this},i.prototype.prependOnceListener=function(x,A){return o(A),this.prependListener(x,f(this,x,A)),this},i.prototype.removeListener=function(x,A){var P,L,W,U,H;if(o(A),L=this._events,L===void 0)return this;if(P=L[x],P===void 0)return this;if(P===A||P.listener===A)--this._eventsCount===0?this._events=Object.create(null):(delete L[x],L.removeListener&&this.emit("removeListener",x,P.listener||A));else if(typeof P!="function"){for(W=-1,U=P.length-1;U>=0;U--)if(P[U]===A||P[U].listener===A){H=P[U].listener,W=U;break}if(W<0)return this;W===0?P.shift():b(P,W),P.length===1&&(L[x]=P[0]),L.removeListener!==void 0&&this.emit("removeListener",x,H||A)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(x){var A,P,L;if(P=this._events,P===void 0)return this;if(P.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):P[x]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete P[x]),this;if(arguments.length===0){var W=Object.keys(P),U;for(L=0;L=0;L--)this.removeListener(x,A[L]);return this};function d(T,x,A){var P=T._events;if(P===void 0)return[];var L=P[x];return L===void 0?[]:typeof L=="function"?A?[L.listener||L]:[L]:A?v(L):m(L,L.length)}i.prototype.listeners=function(x){return d(this,x,!0)},i.prototype.rawListeners=function(x){return d(this,x,!1)},i.listenerCount=function(T,x){return typeof T.listenerCount=="function"?T.listenerCount(x):p.call(T,x)},i.prototype.listenerCount=p;function p(T){var x=this._events;if(x!==void 0){var A=x[T];if(typeof A=="function")return 1;if(A!==void 0)return A.length}return 0}i.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]};function m(T,x){for(var A=new Array(x),P=0;P{if(b!==void 0&&(b===null||typeof b!="object"||!("aborted"in b)))throw new s(v,"AbortSignal",b)},m=(b,v)=>{if(typeof b!="function")throw new s(v,"Function",b)};t.exports={AggregateError:a,kEmptyObject:Object.freeze({}),once(b){let v=!1;return function(..._){v||(v=!0,b.apply(this,_))}},createDeferredPromise:function(){let b,v;return{promise:new Promise((E,y)=>{b=E,v=y}),resolve:b,reject:v}},promisify(b){return new Promise((v,_)=>{b((E,...y)=>E?_(E):v(...y))})},debuglog(){return function(){}},format:r,inspect:n,types:{isAsyncFunction(b){return b instanceof c},isArrayBufferView(b){return ArrayBuffer.isView(b)}},isBlob:d,deprecate(b,v){return b},addAbortListener:ks().addAbortListener||function(v,_){if(v===void 0)throw new s("signal","AbortSignal",v);p(v,"signal"),m(_,"listener");let E;return v.aborted?queueMicrotask(()=>_()):(v.addEventListener("abort",_,{__proto__:null,once:!0,[i]:!0}),E=()=>{v.removeEventListener("abort",_)}),{__proto__:null,[o](){var y;(y=E)===null||y===void 0||y()}}},AbortSignalAny:l.any||function(v){if(v.length===1)return v[0];const _=new u,E=()=>_.abort();return v.forEach(y=>{p(y,"signals"),y.addEventListener("abort",E,{once:!0})}),_.signal.addEventListener("abort",()=>{v.forEach(y=>y.removeEventListener("abort",E))},{once:!0}),_.signal}},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}(cc)),cc.exports}var wa={},hc,fb;function Yo(){if(fb)return hc;fb=1;const{ArrayIsArray:t,ArrayPrototypeIncludes:e,ArrayPrototypeJoin:r,ArrayPrototypeMap:n,NumberIsInteger:s,NumberIsNaN:i,NumberMAX_SAFE_INTEGER:a,NumberMIN_SAFE_INTEGER:o,NumberParseInt:l,ObjectPrototypeHasOwnProperty:u,RegExpPrototypeExec:c,String:f,StringPrototypeToUpperCase:d,StringPrototypeTrim:p}=st(),{hideStackFrames:m,codes:{ERR_SOCKET_BAD_PORT:b,ERR_INVALID_ARG_TYPE:v,ERR_INVALID_ARG_VALUE:_,ERR_OUT_OF_RANGE:E,ERR_UNKNOWN_SIGNAL:y}}=Nt(),{normalizeEncoding:T}=Ut(),{isAsyncFunction:x,isArrayBufferView:A}=Ut().types,P={};function L(Q){return Q===(Q|0)}function W(Q){return Q===Q>>>0}const U=/^[0-7]+$/,H="must be a 32-bit unsigned integer or an octal string";function C(Q,G,re){if(typeof Q>"u"&&(Q=re),typeof Q=="string"){if(c(U,Q)===null)throw new _(G,Q,H);Q=l(Q,8)}return J(Q,G),Q}const I=m((Q,G,re=o,z=a)=>{if(typeof Q!="number")throw new v(G,"number",Q);if(!s(Q))throw new E(G,"an integer",Q);if(Qz)throw new E(G,`>= ${re} && <= ${z}`,Q)}),N=m((Q,G,re=-2147483648,z=2147483647)=>{if(typeof Q!="number")throw new v(G,"number",Q);if(!s(Q))throw new E(G,"an integer",Q);if(Qz)throw new E(G,`>= ${re} && <= ${z}`,Q)}),J=m((Q,G,re=!1)=>{if(typeof Q!="number")throw new v(G,"number",Q);if(!s(Q))throw new E(G,"an integer",Q);const z=re?1:0,ie=4294967295;if(Qie)throw new E(G,`>= ${z} && <= ${ie}`,Q)});function ne(Q,G){if(typeof Q!="string")throw new v(G,"string",Q)}function te(Q,G,re=void 0,z){if(typeof Q!="number")throw new v(G,"number",Q);if(re!=null&&Qz||(re!=null||z!=null)&&i(Q))throw new E(G,`${re!=null?`>= ${re}`:""}${re!=null&&z!=null?" && ":""}${z!=null?`<= ${z}`:""}`,Q)}const B=m((Q,G,re)=>{if(!e(re,Q)){const ie="must be one of: "+r(n(re,he=>typeof he=="string"?`'${he}'`:f(he)),", ");throw new _(G,Q,ie)}});function ae(Q,G){if(typeof Q!="boolean")throw new v(G,"boolean",Q)}function Y(Q,G,re){return Q==null||!u(Q,G)?re:Q[G]}const ce=m((Q,G,re=null)=>{const z=Y(re,"allowArray",!1),ie=Y(re,"allowFunction",!1);if(!Y(re,"nullable",!1)&&Q===null||!z&&t(Q)||typeof Q!="object"&&(!ie||typeof Q!="function"))throw new v(G,"Object",Q)}),$=m((Q,G)=>{if(Q!=null&&typeof Q!="object"&&typeof Q!="function")throw new v(G,"a dictionary",Q)}),ue=m((Q,G,re=0)=>{if(!t(Q))throw new v(G,"Array",Q);if(Q.length{if(!A(Q))throw new v(G,["Buffer","TypedArray","DataView"],Q)});function X(Q,G){const re=T(G),z=Q.length;if(re==="hex"&&z%2!==0)throw new _("encoding",G,`is invalid for data of length ${z}`)}function le(Q,G="Port",re=!0){if(typeof Q!="number"&&typeof Q!="string"||typeof Q=="string"&&p(Q).length===0||+Q!==+Q>>>0||Q>65535||Q===0&&!re)throw new b(G,Q,re);return Q|0}const se=m((Q,G)=>{if(Q!==void 0&&(Q===null||typeof Q!="object"||!("aborted"in Q)))throw new v(G,"AbortSignal",Q)}),M=m((Q,G)=>{if(typeof Q!="function")throw new v(G,"Function",Q)}),O=m((Q,G)=>{if(typeof Q!="function"||x(Q))throw new v(G,"Function",Q)}),F=m((Q,G)=>{if(Q!==void 0)throw new v(G,"undefined",Q)});function R(Q,G,re){if(!e(re,Q))throw new v(G,`('${r(re,"|")}')`,Q)}const V=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function q(Q,G){if(typeof Q>"u"||!c(V,Q))throw new _(G,Q,'must be an array or string of format "; rel=preload; as=style"')}function oe(Q){if(typeof Q=="string")return q(Q,"hints"),Q;if(t(Q)){const G=Q.length;let re="";if(G===0)return re;for(let z=0;z; rel=preload; as=style"')}return hc={isInt32:L,isUint32:W,parseFileMode:C,validateArray:ue,validateStringArray:me,validateBooleanArray:ee,validateAbortSignalArray:K,validateBoolean:ae,validateBuffer:D,validateDictionary:$,validateEncoding:X,validateFunction:M,validateInt32:N,validateInteger:I,validateNumber:te,validateObject:ce,validateOneOf:B,validatePlainFunction:O,validatePort:le,validateSignalName:j,validateString:ne,validateUint32:J,validateUndefined:F,validateUnion:R,validateAbortSignal:se,validateLinkHeaderValue:oe},hc}var _a={exports:{}},pc={exports:{}},db;function Bi(){if(db)return pc.exports;db=1;var t=pc.exports={},e,r;function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?e=setTimeout:e=n}catch{e=n}try{typeof clearTimeout=="function"?r=clearTimeout:r=s}catch{r=s}})();function i(b){if(e===setTimeout)return setTimeout(b,0);if((e===n||!e)&&setTimeout)return e=setTimeout,setTimeout(b,0);try{return e(b,0)}catch{try{return e.call(null,b,0)}catch{return e.call(this,b,0)}}}function a(b){if(r===clearTimeout)return clearTimeout(b);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(b);try{return r(b)}catch{try{return r.call(null,b)}catch{return r.call(this,b)}}}var o=[],l=!1,u,c=-1;function f(){!l||!u||(l=!1,u.length?o=u.concat(o):c=-1,o.length&&d())}function d(){if(!l){var b=i(f);l=!0;for(var v=o.length;v;){for(u=o,o=[];++c1)for(var _=1;_{};function J(B,ae,Y){var ce,$;if(arguments.length===2?(Y=ae,ae=i):ae==null?ae=i:u(ae,"options"),l(Y,"callback"),o(ae.signal,"options.signal"),Y=a(Y),_(B)||A(B))return ne(B,ae,Y);if(!W(B))throw new n("stream",["ReadableStream","WritableStream","Stream"],B);const ue=(ce=ae.readable)!==null&&ce!==void 0?ce:v(B),me=($=ae.writable)!==null&&$!==void 0?$:x(B),ee=B._writableState,K=B._readableState,j=()=>{B.writable||le()};let D=U(B)&&v(B)===ue&&x(B)===me,X=P(B,!1);const le=()=>{X=!0,B.destroyed&&(D=!1),!(D&&(!B.readable||ue))&&(!ue||se)&&Y.call(B)};let se=E(B,!1);const M=()=>{se=!0,B.destroyed&&(D=!1),!(D&&(!B.writable||me))&&(!me||X)&&Y.call(B)},O=Q=>{Y.call(B,Q)};let F=m(B);const R=()=>{F=!0;const Q=L(B)||y(B);if(Q&&typeof Q!="boolean")return Y.call(B,Q);if(ue&&!se&&v(B,!0)&&!E(B,!1))return Y.call(B,new s);if(me&&!X&&!P(B,!1))return Y.call(B,new s);Y.call(B)},V=()=>{F=!0;const Q=L(B)||y(B);if(Q&&typeof Q!="boolean")return Y.call(B,Q);Y.call(B)},q=()=>{B.req.on("finish",le)};I(B)?(B.on("complete",le),D||B.on("abort",R),B.req?q():B.on("request",q)):me&&!ee&&(B.on("end",j),B.on("close",j)),!D&&typeof B.aborted=="boolean"&&B.on("aborted",R),B.on("end",M),B.on("finish",le),ae.error!==!1&&B.on("error",O),B.on("close",R),F?t.nextTick(R):ee!=null&&ee.errorEmitted||K!=null&&K.errorEmitted?D||t.nextTick(V):(!ue&&(!D||b(B))&&(X||T(B)===!1)||!me&&(!D||T(B))&&(se||b(B)===!1)||K&&B.req&&B.aborted)&&t.nextTick(V);const oe=()=>{Y=N,B.removeListener("aborted",R),B.removeListener("complete",le),B.removeListener("abort",R),B.removeListener("request",q),B.req&&B.req.removeListener("finish",le),B.removeListener("end",j),B.removeListener("close",j),B.removeListener("finish",le),B.removeListener("end",M),B.removeListener("error",O),B.removeListener("close",R)};if(ae.signal&&!F){const Q=()=>{const G=Y;oe(),G.call(B,new e(void 0,{cause:ae.signal.reason}))};if(ae.signal.aborted)t.nextTick(Q);else{C=C||Ut().addAbortListener;const G=C(ae.signal,Q),re=Y;Y=a((...z)=>{G[p](),re.apply(B,z)})}}return oe}function ne(B,ae,Y){let ce=!1,$=N;if(ae.signal)if($=()=>{ce=!0,Y.call(B,new e(void 0,{cause:ae.signal.reason}))},ae.signal.aborted)t.nextTick($);else{C=C||Ut().addAbortListener;const me=C(ae.signal,$),ee=Y;Y=a((...K)=>{me[p](),ee.apply(B,K)})}const ue=(...me)=>{ce||t.nextTick(()=>Y.apply(B,me))};return d(B[H].promise,ue,ue),N}function te(B,ae){var Y;let ce=!1;return ae===null&&(ae=i),(Y=ae)!==null&&Y!==void 0&&Y.cleanup&&(c(ae.cleanup,"cleanup"),ce=ae.cleanup),new f(($,ue)=>{const me=J(B,ae,ee=>{ce&&me(),ee?ue(ee):$()})})}return _a.exports=J,_a.exports.finished=te,_a.exports}var mc,gb;function Rs(){if(gb)return mc;gb=1;const t=Bi(),{aggregateTwoErrors:e,codes:{ERR_MULTIPLE_CALLBACK:r},AbortError:n}=Nt(),{Symbol:s}=st(),{kIsDestroyed:i,isDestroyed:a,isFinished:o,isServerRequest:l}=_n(),u=s("kDestroy"),c=s("kConstruct");function f(U,H,C){U&&(U.stack,H&&!H.errored&&(H.errored=U),C&&!C.errored&&(C.errored=U))}function d(U,H){const C=this._readableState,I=this._writableState,N=I||C;return I!=null&&I.destroyed||C!=null&&C.destroyed?(typeof H=="function"&&H(),this):(f(U,I,C),I&&(I.destroyed=!0),C&&(C.destroyed=!0),N.constructed?p(this,U,H):this.once(u,function(J){p(this,e(J,U),H)}),this)}function p(U,H,C){let I=!1;function N(J){if(I)return;I=!0;const ne=U._readableState,te=U._writableState;f(J,te,ne),te&&(te.closed=!0),ne&&(ne.closed=!0),typeof C=="function"&&C(J),J?t.nextTick(m,U,J):t.nextTick(b,U)}try{U._destroy(H||null,N)}catch(J){N(J)}}function m(U,H){v(U,H),b(U)}function b(U){const H=U._readableState,C=U._writableState;C&&(C.closeEmitted=!0),H&&(H.closeEmitted=!0),(C!=null&&C.emitClose||H!=null&&H.emitClose)&&U.emit("close")}function v(U,H){const C=U._readableState,I=U._writableState;I!=null&&I.errorEmitted||C!=null&&C.errorEmitted||(I&&(I.errorEmitted=!0),C&&(C.errorEmitted=!0),U.emit("error",H))}function _(){const U=this._readableState,H=this._writableState;U&&(U.constructed=!0,U.closed=!1,U.closeEmitted=!1,U.destroyed=!1,U.errored=null,U.errorEmitted=!1,U.reading=!1,U.ended=U.readable===!1,U.endEmitted=U.readable===!1),H&&(H.constructed=!0,H.destroyed=!1,H.closed=!1,H.closeEmitted=!1,H.errored=null,H.errorEmitted=!1,H.finalCalled=!1,H.prefinished=!1,H.ended=H.writable===!1,H.ending=H.writable===!1,H.finished=H.writable===!1)}function E(U,H,C){const I=U._readableState,N=U._writableState;if(N!=null&&N.destroyed||I!=null&&I.destroyed)return this;I!=null&&I.autoDestroy||N!=null&&N.autoDestroy?U.destroy(H):H&&(H.stack,N&&!N.errored&&(N.errored=H),I&&!I.errored&&(I.errored=H),C?t.nextTick(v,U,H):v(U,H))}function y(U,H){if(typeof U._construct!="function")return;const C=U._readableState,I=U._writableState;C&&(C.constructed=!1),I&&(I.constructed=!1),U.once(c,H),!(U.listenerCount(c)>1)&&t.nextTick(T,U)}function T(U){let H=!1;function C(I){if(H){E(U,I??new r);return}H=!0;const N=U._readableState,J=U._writableState,ne=J||N;N&&(N.constructed=!0),J&&(J.constructed=!0),ne.destroyed?U.emit(u,I):I?E(U,I,!0):t.nextTick(x,U)}try{U._construct(I=>{t.nextTick(C,I)})}catch(I){t.nextTick(C,I)}}function x(U){U.emit(c)}function A(U){return(U==null?void 0:U.setHeader)&&typeof U.abort=="function"}function P(U){U.emit("close")}function L(U,H){U.emit("error",H),t.nextTick(P,U)}function W(U,H){!U||a(U)||(!H&&!o(U)&&(H=new n),l(U)?(U.socket=null,U.destroy(H)):A(U)?U.abort():A(U.req)?U.req.abort():typeof U.destroy=="function"?U.destroy(H):typeof U.close=="function"?U.close():H?t.nextTick(L,U,H):t.nextTick(P,U),U.destroyed||(U[i]=!0))}return mc={construct:y,destroyer:W,destroy:d,undestroy:_,errorOrDestroy:E},mc}var bc,mb;function wp(){if(mb)return bc;mb=1;const{ArrayIsArray:t,ObjectSetPrototypeOf:e}=st(),{EventEmitter:r}=ks();function n(i){r.call(this,i)}e(n.prototype,r.prototype),e(n,r),n.prototype.pipe=function(i,a){const o=this;function l(b){i.writable&&i.write(b)===!1&&o.pause&&o.pause()}o.on("data",l);function u(){o.readable&&o.resume&&o.resume()}i.on("drain",u),!i._isStdio&&(!a||a.end!==!1)&&(o.on("end",f),o.on("close",d));let c=!1;function f(){c||(c=!0,i.end())}function d(){c||(c=!0,typeof i.destroy=="function"&&i.destroy())}function p(b){m(),r.listenerCount(this,"error")===0&&this.emit("error",b)}s(o,"error",p),s(i,"error",p);function m(){o.removeListener("data",l),i.removeListener("drain",u),o.removeListener("end",f),o.removeListener("close",d),o.removeListener("error",p),i.removeListener("error",p),o.removeListener("end",m),o.removeListener("close",m),i.removeListener("close",m)}return o.on("end",m),o.on("close",m),i.on("close",m),i.emit("pipe",o),i};function s(i,a,o){if(typeof i.prependListener=="function")return i.prependListener(a,o);!i._events||!i._events[a]?i.on(a,o):t(i._events[a])?i._events[a].unshift(o):i._events[a]=[o,i._events[a]]}return bc={Stream:n,prependListener:s},bc}var yc={exports:{}},bb;function uu(){return bb||(bb=1,function(t){const{SymbolDispose:e}=st(),{AbortError:r,codes:n}=Nt(),{isNodeStream:s,isWebStream:i,kControllerErrorFunction:a}=_n(),o=Wn(),{ERR_INVALID_ARG_TYPE:l}=n;let u;const c=(f,d)=>{if(typeof f!="object"||!("aborted"in f))throw new l(d,"AbortSignal",f)};t.exports.addAbortSignal=function(d,p){if(c(d,"signal"),!s(p)&&!i(p))throw new l("stream",["ReadableStream","WritableStream","Stream"],p);return t.exports.addAbortSignalNoValidate(d,p)},t.exports.addAbortSignalNoValidate=function(f,d){if(typeof f!="object"||!("aborted"in f))return d;const p=s(d)?()=>{d.destroy(new r(void 0,{cause:f.reason}))}:()=>{d[a](new r(void 0,{cause:f.reason}))};if(f.aborted)p();else{u=u||Ut().addAbortListener;const m=u(f,p);o(d,m[e])}return d}}(yc)),yc.exports}var wc,yb;function hk(){if(yb)return wc;yb=1;const{StringPrototypeSlice:t,SymbolIterator:e,TypedArrayPrototypeSet:r,Uint8Array:n}=st(),{Buffer:s}=er(),{inspect:i}=Ut();return wc=class{constructor(){this.head=null,this.tail=null,this.length=0}push(o){const l={data:o,next:null};this.length>0?this.tail.next=l:this.head=l,this.tail=l,++this.length}unshift(o){const l={data:o,next:this.head};this.length===0&&(this.tail=l),this.head=l,++this.length}shift(){if(this.length===0)return;const o=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,o}clear(){this.head=this.tail=null,this.length=0}join(o){if(this.length===0)return"";let l=this.head,u=""+l.data;for(;(l=l.next)!==null;)u+=o+l.data;return u}concat(o){if(this.length===0)return s.alloc(0);const l=s.allocUnsafe(o>>>0);let u=this.head,c=0;for(;u;)r(l,u.data,c),c+=u.data.length,u=u.next;return l}consume(o,l){const u=this.head.data;if(of.length)l+=f,o-=f.length;else{o===f.length?(l+=f,++c,u.next?this.head=u.next:this.head=this.tail=null):(l+=t(f,0,o),this.head=u,u.data=t(f,o));break}++c}while((u=u.next)!==null);return this.length-=c,l}_getBuffer(o){const l=s.allocUnsafe(o),u=o;let c=this.head,f=0;do{const d=c.data;if(o>d.length)r(l,d,u-o),o-=d.length;else{o===d.length?(r(l,d,u-o),++f,c.next?this.head=c.next:this.head=this.tail=null):(r(l,new n(d.buffer,d.byteOffset,o),u-o),this.head=c,c.data=d.slice(o));break}++f}while((c=c.next)!==null);return this.length-=f,l}[Symbol.for("nodejs.util.inspect.custom")](o,l){return i(this,{...l,depth:0,customInspect:!1})}},wc}var _c,wb;function cu(){if(wb)return _c;wb=1;const{MathFloor:t,NumberIsInteger:e}=st(),{validateInteger:r}=Yo(),{ERR_INVALID_ARG_VALUE:n}=Nt().codes;let s=16*1024,i=16;function a(c,f,d){return c.highWaterMark!=null?c.highWaterMark:f?c[d]:null}function o(c){return c?i:s}function l(c,f){r(f,"value",0),c?i=f:s=f}function u(c,f,d,p){const m=a(f,p,d);if(m!=null){if(!e(m)||m<0){const b=p?`options.${d}`:"options.highWaterMark";throw new n(b,m)}return t(m)}return o(c.objectMode)}return _c={getHighWaterMark:u,getDefaultHighWaterMark:o,setDefaultHighWaterMark:l},_c}var vc={},va={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */var _b;function pk(){return _b||(_b=1,function(t,e){var r=er(),n=r.Buffer;function s(a,o){for(var l in a)o[l]=a[l]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(s(r,e),e.Buffer=i);function i(a,o,l){return n(a,o,l)}i.prototype=Object.create(n.prototype),s(n,i),i.from=function(a,o,l){if(typeof a=="number")throw new TypeError("Argument must not be a number");return n(a,o,l)},i.alloc=function(a,o,l){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=n(a);return o!==void 0?typeof l=="string"?u.fill(o,l):u.fill(o):u.fill(0),u},i.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n(a)},i.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(a)}}(va,va.exports)),va.exports}var vb;function gk(){if(vb)return vc;vb=1;var t=pk().Buffer,e=t.isEncoding||function(_){switch(_=""+_,_&&_.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(_){if(!_)return"utf8";for(var E;;)switch(_){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return _;default:if(E)return;_=(""+_).toLowerCase(),E=!0}}function n(_){var E=r(_);if(typeof E!="string"&&(t.isEncoding===e||!e(_)))throw new Error("Unknown encoding: "+_);return E||_}vc.StringDecoder=s;function s(_){this.encoding=n(_);var E;switch(this.encoding){case"utf16le":this.text=f,this.end=d,E=4;break;case"utf8":this.fillLast=l,E=4;break;case"base64":this.text=p,this.end=m,E=3;break;default:this.write=b,this.end=v;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=t.allocUnsafe(E)}s.prototype.write=function(_){if(_.length===0)return"";var E,y;if(this.lastNeed){if(E=this.fillLast(_),E===void 0)return"";y=this.lastNeed,this.lastNeed=0}else y=0;return y<_.length?E?E+this.text(_,y):this.text(_,y):E||""},s.prototype.end=c,s.prototype.text=u,s.prototype.fillLast=function(_){if(this.lastNeed<=_.length)return _.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,this.lastTotal-this.lastNeed,0,_.length),this.lastNeed-=_.length};function i(_){return _<=127?0:_>>5===6?2:_>>4===14?3:_>>3===30?4:_>>6===2?-1:-2}function a(_,E,y){var T=E.length-1;if(T=0?(x>0&&(_.lastNeed=x-1),x):--T=0?(x>0&&(_.lastNeed=x-2),x):--T=0?(x>0&&(x===2?x=0:_.lastNeed=x-3),x):0))}function o(_,E,y){if((E[0]&192)!==128)return _.lastNeed=0,"�";if(_.lastNeed>1&&E.length>1){if((E[1]&192)!==128)return _.lastNeed=1,"�";if(_.lastNeed>2&&E.length>2&&(E[2]&192)!==128)return _.lastNeed=2,"�"}}function l(_){var E=this.lastTotal-this.lastNeed,y=o(this,_);if(y!==void 0)return y;if(this.lastNeed<=_.length)return _.copy(this.lastChar,E,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,E,0,_.length),this.lastNeed-=_.length}function u(_,E){var y=a(this,_,E);if(!this.lastNeed)return _.toString("utf8",E);this.lastTotal=y;var T=_.length-(y-this.lastNeed);return _.copy(this.lastChar,0,T),_.toString("utf8",E,T)}function c(_){var E=_&&_.length?this.write(_):"";return this.lastNeed?E+"�":E}function f(_,E){if((_.length-E)%2===0){var y=_.toString("utf16le",E);if(y){var T=y.charCodeAt(y.length-1);if(T>=55296&&T<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1],y.slice(0,-1)}return y}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=_[_.length-1],_.toString("utf16le",E,_.length-1)}function d(_){var E=_&&_.length?this.write(_):"";if(this.lastNeed){var y=this.lastTotal-this.lastNeed;return E+this.lastChar.toString("utf16le",0,y)}return E}function p(_,E){var y=(_.length-E)%3;return y===0?_.toString("base64",E):(this.lastNeed=3-y,this.lastTotal=3,y===1?this.lastChar[0]=_[_.length-1]:(this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1]),_.toString("base64",E,_.length-y))}function m(_){var E=_&&_.length?this.write(_):"";return this.lastNeed?E+this.lastChar.toString("base64",0,3-this.lastNeed):E}function b(_){return _.toString(this.encoding)}function v(_){return _&&_.length?this.write(_):""}return vc}var Ec,Eb;function Iv(){if(Eb)return Ec;Eb=1;const t=Bi(),{PromisePrototypeThen:e,SymbolAsyncIterator:r,SymbolIterator:n}=st(),{Buffer:s}=er(),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_NULL_VALUES:a}=Nt().codes;function o(l,u,c){let f;if(typeof u=="string"||u instanceof s)return new l({objectMode:!0,...c,read(){this.push(u),this.push(null)}});let d;if(u&&u[r])d=!0,f=u[r]();else if(u&&u[n])d=!1,f=u[n]();else throw new i("iterable",["Iterable"],u);const p=new l({objectMode:!0,highWaterMark:1,...c});let m=!1;p._read=function(){m||(m=!0,v())},p._destroy=function(_,E){e(b(_),()=>t.nextTick(E,_),y=>t.nextTick(E,y||_))};async function b(_){const E=_!=null,y=typeof f.throw=="function";if(E&&y){const{value:T,done:x}=await f.throw(_);if(await T,x)return}if(typeof f.return=="function"){const{value:T}=await f.return();await T}}async function v(){for(;;){try{const{value:_,done:E}=d?await f.next():f.next();if(E)p.push(null);else{const y=_&&typeof _.then=="function"?await _:_;if(y===null)throw m=!1,new a;if(p.push(y))continue;m=!1}}catch(_){p.destroy(_)}break}}return p}return Ec=o,Ec}var Sc,Sb;function fu(){if(Sb)return Sc;Sb=1;const t=Bi(),{ArrayPrototypeIndexOf:e,NumberIsInteger:r,NumberIsNaN:n,NumberParseInt:s,ObjectDefineProperties:i,ObjectKeys:a,ObjectSetPrototypeOf:o,Promise:l,SafeSet:u,SymbolAsyncDispose:c,SymbolAsyncIterator:f,Symbol:d}=st();Sc=z,z.ReadableState=re;const{EventEmitter:p}=ks(),{Stream:m,prependListener:b}=wp(),{Buffer:v}=er(),{addAbortSignal:_}=uu(),E=Wn();let y=Ut().debuglog("stream",fe=>{y=fe});const T=hk(),x=Rs(),{getHighWaterMark:A,getDefaultHighWaterMark:P}=cu(),{aggregateTwoErrors:L,codes:{ERR_INVALID_ARG_TYPE:W,ERR_METHOD_NOT_IMPLEMENTED:U,ERR_OUT_OF_RANGE:H,ERR_STREAM_PUSH_AFTER_EOF:C,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:I},AbortError:N}=Nt(),{validateObject:J}=Yo(),ne=d("kPaused"),{StringDecoder:te}=gk(),B=Iv();o(z.prototype,m.prototype),o(z,m);const ae=()=>{},{errorOrDestroy:Y}=x,ce=1,$=2,ue=4,me=8,ee=16,K=32,j=64,D=128,X=256,le=512,se=1024,M=2048,O=4096,F=8192,R=16384,V=32768,q=65536,oe=1<<17,Q=1<<18;function G(fe){return{enumerable:!1,get(){return(this.state&fe)!==0},set(pe){pe?this.state|=fe:this.state&=~fe}}}i(re.prototype,{objectMode:G(ce),ended:G($),endEmitted:G(ue),reading:G(me),constructed:G(ee),sync:G(K),needReadable:G(j),emittedReadable:G(D),readableListening:G(X),resumeScheduled:G(le),errorEmitted:G(se),emitClose:G(M),autoDestroy:G(O),destroyed:G(F),closed:G(R),closeEmitted:G(V),multiAwaitDrain:G(q),readingMore:G(oe),dataEmitted:G(Q)});function re(fe,pe,Ce){typeof Ce!="boolean"&&(Ce=pe instanceof pn()),this.state=M|O|ee|K,fe&&fe.objectMode&&(this.state|=ce),Ce&&fe&&fe.readableObjectMode&&(this.state|=ce),this.highWaterMark=fe?A(this,fe,"readableHighWaterMark",Ce):P(!1),this.buffer=new T,this.length=0,this.pipes=[],this.flowing=null,this[ne]=null,fe&&fe.emitClose===!1&&(this.state&=-2049),fe&&fe.autoDestroy===!1&&(this.state&=-4097),this.errored=null,this.defaultEncoding=fe&&fe.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,fe&&fe.encoding&&(this.decoder=new te(fe.encoding),this.encoding=fe.encoding)}function z(fe){if(!(this instanceof z))return new z(fe);const pe=this instanceof pn();this._readableState=new re(fe,this,pe),fe&&(typeof fe.read=="function"&&(this._read=fe.read),typeof fe.destroy=="function"&&(this._destroy=fe.destroy),typeof fe.construct=="function"&&(this._construct=fe.construct),fe.signal&&!pe&&_(fe.signal,this)),m.call(this,fe),x.construct(this,()=>{this._readableState.needReadable&&Z(this,this._readableState)})}z.prototype.destroy=x.destroy,z.prototype._undestroy=x.undestroy,z.prototype._destroy=function(fe,pe){pe(fe)},z.prototype[p.captureRejectionSymbol]=function(fe){this.destroy(fe)},z.prototype[c]=function(){let fe;return this.destroyed||(fe=this.readableEnded?null:new N,this.destroy(fe)),new l((pe,Ce)=>E(this,Ie=>Ie&&Ie!==fe?Ce(Ie):pe(null)))},z.prototype.push=function(fe,pe){return ie(this,fe,pe,!1)},z.prototype.unshift=function(fe,pe){return ie(this,fe,pe,!0)};function ie(fe,pe,Ce,Ie){y("readableAddChunk",pe);const ke=fe._readableState;let Et;if(ke.state&ce||(typeof pe=="string"?(Ce=Ce||ke.defaultEncoding,ke.encoding!==Ce&&(Ie&&ke.encoding?pe=v.from(pe,Ce).toString(ke.encoding):(pe=v.from(pe,Ce),Ce=""))):pe instanceof v?Ce="":m._isUint8Array(pe)?(pe=m._uint8ArrayToBuffer(pe),Ce=""):pe!=null&&(Et=new W("chunk",["string","Buffer","Uint8Array"],pe))),Et)Y(fe,Et);else if(pe===null)ke.state&=-9,h(fe,ke);else if(ke.state&ce||pe&&pe.length>0)if(Ie)if(ke.state&ue)Y(fe,new I);else{if(ke.destroyed||ke.errored)return!1;he(fe,ke,pe,!0)}else if(ke.ended)Y(fe,new C);else{if(ke.destroyed||ke.errored)return!1;ke.state&=-9,ke.decoder&&!Ce?(pe=ke.decoder.write(pe),ke.objectMode||pe.length!==0?he(fe,ke,pe,!1):Z(fe,ke)):he(fe,ke,pe,!1)}else Ie||(ke.state&=-9,Z(fe,ke));return!ke.ended&&(ke.length0?(pe.state&q?pe.awaitDrainWriters.clear():pe.awaitDrainWriters=null,pe.dataEmitted=!0,fe.emit("data",Ce)):(pe.length+=pe.objectMode?1:Ce.length,Ie?pe.buffer.unshift(Ce):pe.buffer.push(Ce),pe.state&j&&w(fe)),Z(fe,pe)}z.prototype.isPaused=function(){const fe=this._readableState;return fe[ne]===!0||fe.flowing===!1},z.prototype.setEncoding=function(fe){const pe=new te(fe);this._readableState.decoder=pe,this._readableState.encoding=this._readableState.decoder.encoding;const Ce=this._readableState.buffer;let Ie="";for(const ke of Ce)Ie+=pe.write(ke);return Ce.clear(),Ie!==""&&Ce.push(Ie),this._readableState.length=Ie.length,this};const be=1073741824;function S(fe){if(fe>be)throw new H("size","<= 1GiB",fe);return fe--,fe|=fe>>>1,fe|=fe>>>2,fe|=fe>>>4,fe|=fe>>>8,fe|=fe>>>16,fe++,fe}function g(fe,pe){return fe<=0||pe.length===0&&pe.ended?0:pe.state&ce?1:n(fe)?pe.flowing&&pe.length?pe.buffer.first().length:pe.length:fe<=pe.length?fe:pe.ended?pe.length:0}z.prototype.read=function(fe){y("read",fe),fe===void 0?fe=NaN:r(fe)||(fe=s(fe,10));const pe=this._readableState,Ce=fe;if(fe>pe.highWaterMark&&(pe.highWaterMark=S(fe)),fe!==0&&(pe.state&=-129),fe===0&&pe.needReadable&&((pe.highWaterMark!==0?pe.length>=pe.highWaterMark:pe.length>0)||pe.ended))return y("read: emitReadable",pe.length,pe.ended),pe.length===0&&pe.ended?at(this):w(this),null;if(fe=g(fe,pe),fe===0&&pe.ended)return pe.length===0&&at(this),null;let Ie=(pe.state&j)!==0;if(y("need readable",Ie),(pe.length===0||pe.length-fe0?ke=Je(fe,pe):ke=null,ke===null?(pe.needReadable=pe.length<=pe.highWaterMark,fe=0):(pe.length-=fe,pe.multiAwaitDrain?pe.awaitDrainWriters.clear():pe.awaitDrainWriters=null),pe.length===0&&(pe.ended||(pe.needReadable=!0),Ce!==fe&&pe.ended&&at(this)),ke!==null&&!pe.errorEmitted&&!pe.closeEmitted&&(pe.dataEmitted=!0,this.emit("data",ke)),ke};function h(fe,pe){if(y("onEofChunk"),!pe.ended){if(pe.decoder){const Ce=pe.decoder.end();Ce&&Ce.length&&(pe.buffer.push(Ce),pe.length+=pe.objectMode?1:Ce.length)}pe.ended=!0,pe.sync?w(fe):(pe.needReadable=!1,pe.emittedReadable=!0,k(fe))}}function w(fe){const pe=fe._readableState;y("emitReadable",pe.needReadable,pe.emittedReadable),pe.needReadable=!1,pe.emittedReadable||(y("emitReadable",pe.flowing),pe.emittedReadable=!0,t.nextTick(k,fe))}function k(fe){const pe=fe._readableState;y("emitReadable_",pe.destroyed,pe.length,pe.ended),!pe.destroyed&&!pe.errored&&(pe.length||pe.ended)&&(fe.emit("readable"),pe.emittedReadable=!1),pe.needReadable=!pe.flowing&&!pe.ended&&pe.length<=pe.highWaterMark,Oe(fe)}function Z(fe,pe){!pe.readingMore&&pe.constructed&&(pe.readingMore=!0,t.nextTick(de,fe,pe))}function de(fe,pe){for(;!pe.reading&&!pe.ended&&(pe.length1&&Ie.pipes.includes(fe)&&(y("false write response, pause",Ie.awaitDrainWriters.size),Ie.awaitDrainWriters.add(fe)),Ce.pause()),qn||(qn=ye(Ce,fe),fe.on("drain",qn))}Ce.on("data",Vp);function Vp(Yn){y("ondata");const $r=fe.write(Yn);y("dest.write",$r),$r===!1&&zp()}function Su(Yn){if(y("onerror",Yn),Us(),fe.removeListener("error",Su),fe.listenerCount("error")===0){const $r=fe._writableState||fe._readableState;$r&&!$r.errorEmitted?Y(fe,Yn):fe.emit("error",Yn)}}b(fe,"error",Su);function Tu(){fe.removeListener("finish",xu),Us()}fe.once("close",Tu);function xu(){y("onfinish"),fe.removeListener("close",Tu),Us()}fe.once("finish",xu);function Us(){y("unpipe"),Ce.unpipe(fe)}return fe.emit("pipe",Ce),fe.writableNeedDrain===!0?zp():Ie.flowing||(y("pipe resume"),Ce.resume()),fe};function ye(fe,pe){return function(){const Ie=fe._readableState;Ie.awaitDrainWriters===pe?(y("pipeOnDrain",1),Ie.awaitDrainWriters=null):Ie.multiAwaitDrain&&(y("pipeOnDrain",Ie.awaitDrainWriters.size),Ie.awaitDrainWriters.delete(pe)),(!Ie.awaitDrainWriters||Ie.awaitDrainWriters.size===0)&&fe.listenerCount("data")&&fe.resume()}}z.prototype.unpipe=function(fe){const pe=this._readableState,Ce={hasUnpiped:!1};if(pe.pipes.length===0)return this;if(!fe){const ke=pe.pipes;pe.pipes=[],this.pause();for(let Et=0;Et0,Ie.flowing!==!1&&this.resume()):fe==="readable"&&!Ie.endEmitted&&!Ie.readableListening&&(Ie.readableListening=Ie.needReadable=!0,Ie.flowing=!1,Ie.emittedReadable=!1,y("on readable",Ie.length,Ie.reading),Ie.length?w(this):Ie.reading||t.nextTick(Me,this)),Ce},z.prototype.addListener=z.prototype.on,z.prototype.removeListener=function(fe,pe){const Ce=m.prototype.removeListener.call(this,fe,pe);return fe==="readable"&&t.nextTick(Ae,this),Ce},z.prototype.off=z.prototype.removeListener,z.prototype.removeAllListeners=function(fe){const pe=m.prototype.removeAllListeners.apply(this,arguments);return(fe==="readable"||fe===void 0)&&t.nextTick(Ae,this),pe};function Ae(fe){const pe=fe._readableState;pe.readableListening=fe.listenerCount("readable")>0,pe.resumeScheduled&&pe[ne]===!1?pe.flowing=!0:fe.listenerCount("data")>0?fe.resume():pe.readableListening||(pe.flowing=null)}function Me(fe){y("readable nexttick read 0"),fe.read(0)}z.prototype.resume=function(){const fe=this._readableState;return fe.flowing||(y("resume"),fe.flowing=!fe.readableListening,xe(this,fe)),fe[ne]=!1,this};function xe(fe,pe){pe.resumeScheduled||(pe.resumeScheduled=!0,t.nextTick(Pe,fe,pe))}function Pe(fe,pe){y("resume",pe.reading),pe.reading||fe.read(0),pe.resumeScheduled=!1,fe.emit("resume"),Oe(fe),pe.flowing&&!pe.reading&&fe.read(0)}z.prototype.pause=function(){return y("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(y("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[ne]=!0,this};function Oe(fe){const pe=fe._readableState;for(y("flow",pe.flowing);pe.flowing&&fe.read()!==null;);}z.prototype.wrap=function(fe){let pe=!1;fe.on("data",Ie=>{!this.push(Ie)&&fe.pause&&(pe=!0,fe.pause())}),fe.on("end",()=>{this.push(null)}),fe.on("error",Ie=>{Y(this,Ie)}),fe.on("close",()=>{this.destroy()}),fe.on("destroy",()=>{this.destroy()}),this._read=()=>{pe&&fe.resume&&(pe=!1,fe.resume())};const Ce=a(fe);for(let Ie=1;Ie{ke=tr?L(ke,tr):null,Ce(),Ce=ae});try{for(;;){const tr=fe.destroyed?null:fe.read();if(tr!==null)yield tr;else{if(ke)throw ke;if(ke===null)return;await new l(Ie)}}}catch(tr){throw ke=L(ke,tr),ke}finally{(ke||(pe==null?void 0:pe.destroyOnReturn)!==!1)&&(ke===void 0||fe._readableState.autoDestroy)?x.destroyer(fe,null):(fe.off("readable",Ie),Et())}}i(z.prototype,{readable:{__proto__:null,get(){const fe=this._readableState;return!!fe&&fe.readable!==!1&&!fe.destroyed&&!fe.errorEmitted&&!fe.endEmitted},set(fe){this._readableState&&(this._readableState.readable=!!fe)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(fe){this._readableState&&(this._readableState.flowing=fe)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(fe){this._readableState&&(this._readableState.destroyed=fe)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),i(re.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(fe){this[ne]=!!fe}}}),z._fromList=Je;function Je(fe,pe){if(pe.length===0)return null;let Ce;return pe.objectMode?Ce=pe.buffer.shift():!fe||fe>=pe.length?(pe.decoder?Ce=pe.buffer.join(""):pe.buffer.length===1?Ce=pe.buffer.first():Ce=pe.buffer.concat(pe.length),pe.buffer.clear()):Ce=pe.buffer.consume(fe,pe.decoder),Ce}function at(fe){const pe=fe._readableState;y("endReadable",pe.endEmitted),pe.endEmitted||(pe.ended=!0,t.nextTick(mt,pe,fe))}function mt(fe,pe){if(y("endReadableNT",fe.endEmitted,fe.length),!fe.errored&&!fe.closeEmitted&&!fe.endEmitted&&fe.length===0){if(fe.endEmitted=!0,pe.emit("end"),pe.writable&&pe.allowHalfOpen===!1)t.nextTick(ct,pe);else if(fe.autoDestroy){const Ce=pe._writableState;(!Ce||Ce.autoDestroy&&(Ce.finished||Ce.writable===!1))&&pe.destroy()}}}function ct(fe){fe.writable&&!fe.writableEnded&&!fe.destroyed&&fe.end()}z.from=function(fe,pe){return B(z,fe,pe)};let Wi;function Fs(){return Wi===void 0&&(Wi={}),Wi}return z.fromWeb=function(fe,pe){return Fs().newStreamReadableFromReadableStream(fe,pe)},z.toWeb=function(fe,pe){return Fs().newReadableStreamFromStreamReadable(fe,pe)},z.wrap=function(fe,pe){var Ce,Ie;return new z({objectMode:(Ce=(Ie=fe.readableObjectMode)!==null&&Ie!==void 0?Ie:fe.objectMode)!==null&&Ce!==void 0?Ce:!0,...pe,destroy(ke,Et){x.destroyer(fe,ke),Et(ke)}}).wrap(fe)},Sc}var Tc,Tb;function _p(){if(Tb)return Tc;Tb=1;const t=Bi(),{ArrayPrototypeSlice:e,Error:r,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:s,ObjectDefineProperties:i,ObjectSetPrototypeOf:a,StringPrototypeToLowerCase:o,Symbol:l,SymbolHasInstance:u}=st();Tc=J,J.WritableState=I;const{EventEmitter:c}=ks(),f=wp().Stream,{Buffer:d}=er(),p=Rs(),{addAbortSignal:m}=uu(),{getHighWaterMark:b,getDefaultHighWaterMark:v}=cu(),{ERR_INVALID_ARG_TYPE:_,ERR_METHOD_NOT_IMPLEMENTED:E,ERR_MULTIPLE_CALLBACK:y,ERR_STREAM_CANNOT_PIPE:T,ERR_STREAM_DESTROYED:x,ERR_STREAM_ALREADY_FINISHED:A,ERR_STREAM_NULL_VALUES:P,ERR_STREAM_WRITE_AFTER_END:L,ERR_UNKNOWN_ENCODING:W}=Nt().codes,{errorOrDestroy:U}=p;a(J.prototype,f.prototype),a(J,f);function H(){}const C=l("kOnFinished");function I(O,F,R){typeof R!="boolean"&&(R=F instanceof pn()),this.objectMode=!!(O&&O.objectMode),R&&(this.objectMode=this.objectMode||!!(O&&O.writableObjectMode)),this.highWaterMark=O?b(this,O,"writableHighWaterMark",R):v(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const V=!!(O&&O.decodeStrings===!1);this.decodeStrings=!V,this.defaultEncoding=O&&O.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=Y.bind(void 0,F),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,N(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!O||O.emitClose!==!1,this.autoDestroy=!O||O.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[C]=[]}function N(O){O.buffered=[],O.bufferedIndex=0,O.allBuffers=!0,O.allNoop=!0}I.prototype.getBuffer=function(){return e(this.buffered,this.bufferedIndex)},s(I.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function J(O){const F=this instanceof pn();if(!F&&!n(J,this))return new J(O);this._writableState=new I(O,this,F),O&&(typeof O.write=="function"&&(this._write=O.write),typeof O.writev=="function"&&(this._writev=O.writev),typeof O.destroy=="function"&&(this._destroy=O.destroy),typeof O.final=="function"&&(this._final=O.final),typeof O.construct=="function"&&(this._construct=O.construct),O.signal&&m(O.signal,this)),f.call(this,O),p.construct(this,()=>{const R=this._writableState;R.writing||me(this,R),D(this,R)})}s(J,u,{__proto__:null,value:function(O){return n(this,O)?!0:this!==J?!1:O&&O._writableState instanceof I}}),J.prototype.pipe=function(){U(this,new T)};function ne(O,F,R,V){const q=O._writableState;if(typeof R=="function")V=R,R=q.defaultEncoding;else{if(!R)R=q.defaultEncoding;else if(R!=="buffer"&&!d.isEncoding(R))throw new W(R);typeof V!="function"&&(V=H)}if(F===null)throw new P;if(!q.objectMode)if(typeof F=="string")q.decodeStrings!==!1&&(F=d.from(F,R),R="buffer");else if(F instanceof d)R="buffer";else if(f._isUint8Array(F))F=f._uint8ArrayToBuffer(F),R="buffer";else throw new _("chunk",["string","Buffer","Uint8Array"],F);let oe;return q.ending?oe=new L:q.destroyed&&(oe=new x("write")),oe?(t.nextTick(V,oe),U(O,oe,!0),oe):(q.pendingcb++,te(O,q,F,R,V))}J.prototype.write=function(O,F,R){return ne(this,O,F,R)===!0},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){const O=this._writableState;O.corked&&(O.corked--,O.writing||me(this,O))},J.prototype.setDefaultEncoding=function(F){if(typeof F=="string"&&(F=o(F)),!d.isEncoding(F))throw new W(F);return this._writableState.defaultEncoding=F,this};function te(O,F,R,V,q){const oe=F.objectMode?1:R.length;F.length+=oe;const Q=F.lengthR.bufferedIndex&&me(O,R),V?R.afterWriteTickInfo!==null&&R.afterWriteTickInfo.cb===q?R.afterWriteTickInfo.count++:(R.afterWriteTickInfo={count:1,cb:q,stream:O,state:R},t.nextTick(ce,R.afterWriteTickInfo)):$(O,R,1,q))}function ce({stream:O,state:F,count:R,cb:V}){return F.afterWriteTickInfo=null,$(O,F,R,V)}function $(O,F,R,V){for(!F.ending&&!O.destroyed&&F.length===0&&F.needDrain&&(F.needDrain=!1,O.emit("drain"));R-- >0;)F.pendingcb--,V();F.destroyed&&ue(F),D(O,F)}function ue(O){if(O.writing)return;for(let q=O.bufferedIndex;q1&&O._writev){F.pendingcb-=oe-1;const G=F.allNoop?H:z=>{for(let ie=Q;ie256?(R.splice(0,Q),F.bufferedIndex=0):F.bufferedIndex=Q}F.bufferProcessing=!1}J.prototype._write=function(O,F,R){if(this._writev)this._writev([{chunk:O,encoding:F}],R);else throw new E("_write()")},J.prototype._writev=null,J.prototype.end=function(O,F,R){const V=this._writableState;typeof O=="function"?(R=O,O=null,F=null):typeof F=="function"&&(R=F,F=null);let q;if(O!=null){const oe=ne(this,O,F);oe instanceof r&&(q=oe)}return V.corked&&(V.corked=1,this.uncork()),q||(!V.errored&&!V.ending?(V.ending=!0,D(this,V,!0),V.ended=!0):V.finished?q=new A("end"):V.destroyed&&(q=new x("end"))),typeof R=="function"&&(q||V.finished?t.nextTick(R,q):V[C].push(R)),this};function ee(O){return O.ending&&!O.destroyed&&O.constructed&&O.length===0&&!O.errored&&O.buffered.length===0&&!O.finished&&!O.writing&&!O.errorEmitted&&!O.closeEmitted}function K(O,F){let R=!1;function V(q){if(R){U(O,q??y());return}if(R=!0,F.pendingcb--,q){const oe=F[C].splice(0);for(let Q=0;Q{ee(q)?X(V,q):q.pendingcb--},O,F)):ee(F)&&(F.pendingcb++,X(O,F))))}function X(O,F){F.pendingcb--,F.finished=!0;const R=F[C].splice(0);for(let V=0;V{if(ue!=null)throw new m("nully","body",ue)},ue=>{b(ce,ue)});return ce=new W({objectMode:!0,readable:!1,write:te,final(ue){B(async()=>{try{await $,t.nextTick(ue,null)}catch(me){t.nextTick(ue,me)}})},destroy:ae})}throw new m("Iterable, AsyncIterable or AsyncFunction",N,ne)}if(A(I))return C(I.arrayBuffer());if(s(I))return T(W,I,{objectMode:!0,writable:!1});if(u(I==null?void 0:I.readable)&&c(I==null?void 0:I.writable))return W.fromWeb(I);if(typeof(I==null?void 0:I.writable)=="object"||typeof(I==null?void 0:I.readable)=="object"){const ne=I!=null&&I.readable?a(I==null?void 0:I.readable)?I==null?void 0:I.readable:C(I.readable):void 0,te=I!=null&&I.writable?o(I==null?void 0:I.writable)?I==null?void 0:I.writable:C(I.writable):void 0;return H({readable:ne,writable:te})}const J=I==null?void 0:I.then;if(typeof J=="function"){let ne;return L(J,I,te=>{te!=null&&ne.push(te),ne.push(null)},te=>{b(ne,te)}),ne=new W({objectMode:!0,writable:!1,read(){}})}throw new p(N,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],I)};function U(C){let{promise:I,resolve:N}=y();const J=new P,ne=J.signal;return{value:C(async function*(){for(;;){const B=I;I=null;const{chunk:ae,done:Y,cb:ce}=await B;if(t.nextTick(ce),Y)return;if(ne.aborted)throw new d(void 0,{cause:ne.reason});({promise:I,resolve:N}=y()),yield ae}}(),{signal:ne}),write(B,ae,Y){const ce=N;N=null,ce({chunk:B,done:!1,cb:Y})},final(B){const ae=N;N=null,ae({done:!0,cb:B})},destroy(B,ae){J.abort(),ae(B)}}}function H(C){const I=C.readable&&typeof C.readable.read!="function"?_.wrap(C.readable):C.readable,N=C.writable;let J=!!r(I),ne=!!n(N),te,B,ae,Y,ce;function $(ue){const me=Y;Y=null,me?me(ue):ue&&ce.destroy(ue)}return ce=new W({readableObjectMode:!!(I!=null&&I.readableObjectMode),writableObjectMode:!!(N!=null&&N.writableObjectMode),readable:J,writable:ne}),ne&&(f(N,ue=>{ne=!1,ue&&b(I,ue),$(ue)}),ce._write=function(ue,me,ee){N.write(ue,me)?ee():te=ee},ce._final=function(ue){N.end(),B=ue},N.on("drain",function(){if(te){const ue=te;te=null,ue()}}),N.on("finish",function(){if(B){const ue=B;B=null,ue()}})),J&&(f(I,ue=>{J=!1,ue&&b(I,ue),$(ue)}),I.on("readable",function(){if(ae){const ue=ae;ae=null,ue()}}),I.on("end",function(){ce.push(null)}),ce._read=function(){for(;;){const ue=I.read();if(ue===null){ae=ce._read;return}if(!ce.push(ue))return}}),ce._destroy=function(ue,me){!ue&&Y!==null&&(ue=new d),ae=null,te=null,B=null,Y===null?me(ue):(Y=me,b(N,ue),b(I,ue))},ce}return xc}var Ac,Ab;function pn(){if(Ab)return Ac;Ab=1;const{ObjectDefineProperties:t,ObjectGetOwnPropertyDescriptor:e,ObjectKeys:r,ObjectSetPrototypeOf:n}=st();Ac=a;const s=fu(),i=_p();n(a.prototype,s.prototype),n(a,s);{const c=r(i.prototype);for(let f=0;f{if(c){u?u(c):this.destroy(c);return}f!=null&&this.push(f),this.push(null),u&&u()}):(this.push(null),u&&u())}function l(){this._final!==o&&o.call(this)}return a.prototype._final=o,a.prototype._transform=function(u,c,f){throw new r("_transform()")},a.prototype._write=function(u,c,f){const d=this._readableState,p=this._writableState,m=d.length;this._transform(u,c,(b,v)=>{if(b){f(b);return}v!=null&&this.push(v),p.ended||m===d.length||d.length{K=!0});const j=i(ue,{readable:me,writable:ee},D=>{K=!D});return{destroy:D=>{K||(K=!0,o.destroyer(ue,D||new p("pipe")))},cleanup:j}}function J(ue){return v(ue[ue.length-1],"streams[stream.length - 1]"),ue.pop()}function ne(ue){if(E(ue))return ue;if(T(ue))return te(ue);throw new c("val",["Readable","Iterable","AsyncIterable"],ue)}async function*te(ue){C||(C=fu()),yield*C.prototype[n].call(ue)}async function B(ue,me,ee,{end:K}){let j,D=null;const X=M=>{if(M&&(j=M),D){const O=D;D=null,O()}},le=()=>new r((M,O)=>{j?O(j):D=()=>{j?O(j):M()}});me.on("drain",X);const se=i(me,{readable:!1},X);try{me.writableNeedDrain&&await le();for await(const M of ue)me.write(M)||await le();K&&(me.end(),await le()),ee()}catch(M){ee(j!==M?u(j,M):M)}finally{se(),me.off("drain",X)}}async function ae(ue,me,ee,{end:K}){A(me)&&(me=me.writable);const j=me.getWriter();try{for await(const D of ue)await j.ready,j.write(D).catch(()=>{});await j.ready,K&&await j.close(),ee()}catch(D){try{await j.abort(D),ee(D)}catch(X){ee(X)}}}function Y(...ue){return ce(ue,a(J(ue)))}function ce(ue,me,ee){if(ue.length===1&&e(ue[0])&&(ue=ue[0]),ue.length<2)throw new d("streams");const K=new U,j=K.signal,D=ee==null?void 0:ee.signal,X=[];_(D,"options.signal");function le(){q(new b)}I=I||Ut().addAbortListener;let se;D&&(se=I(D,le));let M,O;const F=[];let R=0;function V(re){q(re,--R===0)}function q(re,z){var ie;if(re&&(!M||M.code==="ERR_STREAM_PREMATURE_CLOSE")&&(M=re),!(!M&&!z)){for(;F.length;)F.shift()(M);(ie=se)===null||ie===void 0||ie[s](),K.abort(),z&&(M||X.forEach(he=>he()),t.nextTick(me,M,O))}}let oe;for(let re=0;re0,be=ie||(ee==null?void 0:ee.end)!==!1,S=re===ue.length-1;if(x(z)){let g=function(h){h&&h.name!=="AbortError"&&h.code!=="ERR_STREAM_PREMATURE_CLOSE"&&V(h)};if(be){const{destroy:h,cleanup:w}=N(z,ie,he);F.push(h),y(z)&&S&&X.push(w)}z.on("error",g),y(z)&&S&&X.push(()=>{z.removeListener("error",g)})}if(re===0)if(typeof z=="function"){if(oe=z({signal:j}),!E(oe))throw new f("Iterable, AsyncIterable or Stream","source",oe)}else E(z)||T(z)||A(z)?oe=z:oe=l.from(z);else if(typeof z=="function"){if(A(oe)){var Q;oe=ne((Q=oe)===null||Q===void 0?void 0:Q.readable)}else oe=ne(oe);if(oe=z(oe,{signal:j}),ie){if(!E(oe,!0))throw new f("AsyncIterable",`transform[${re-1}]`,oe)}else{var G;H||(H=Ov());const g=new H({objectMode:!0}),h=(G=oe)===null||G===void 0?void 0:G.then;if(typeof h=="function")R++,h.call(oe,Z=>{O=Z,Z!=null&&g.write(Z),be&&g.end(),t.nextTick(V)},Z=>{g.destroy(Z),t.nextTick(V,Z)});else if(E(oe,!0))R++,B(oe,g,V,{end:be});else if(L(oe)||A(oe)){const Z=oe.readable||oe;R++,B(Z,g,V,{end:be})}else throw new f("AsyncIterable or Promise","destination",oe);oe=g;const{destroy:w,cleanup:k}=N(oe,!1,!0);F.push(w),S&&X.push(k)}}else if(x(z)){if(T(oe)){R+=2;const g=$(oe,z,V,{end:be});y(z)&&S&&X.push(g)}else if(A(oe)||L(oe)){const g=oe.readable||oe;R++,B(g,z,V,{end:be})}else if(E(oe))R++,B(oe,z,V,{end:be});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],oe);oe=z}else if(P(z)){if(T(oe))R++,ae(ne(oe),z,V,{end:be});else if(L(oe)||E(oe))R++,ae(oe,z,V,{end:be});else if(A(oe))R++,ae(oe.readable,z,V,{end:be});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],oe);oe=z}else oe=l.from(z)}return(j!=null&&j.aborted||D!=null&&D.aborted)&&t.nextTick(le),oe}function $(ue,me,ee,{end:K}){let j=!1;if(me.on("close",()=>{j||ee(new m)}),ue.pipe(me,{end:!1}),K){let D=function(){j=!0,me.end()};W(ue)?t.nextTick(D):ue.once("end",D)}else ee();return i(ue,{readable:!0,writable:!1},D=>{const X=ue._readableState;D&&D.code==="ERR_STREAM_PREMATURE_CLOSE"&&X&&X.ended&&!X.errored&&!X.errorEmitted?ue.once("end",ee).once("error",ee):ee(D)}),i(me,{readable:!1,writable:!0},ee)}return Mc={pipelineImpl:ce,pipeline:Y},Mc}var Oc,Ob;function Pv(){if(Ob)return Oc;Ob=1;const{pipeline:t}=vp(),e=pn(),{destroyer:r}=Rs(),{isNodeStream:n,isReadable:s,isWritable:i,isWebStream:a,isTransformStream:o,isWritableStream:l,isReadableStream:u}=_n(),{AbortError:c,codes:{ERR_INVALID_ARG_VALUE:f,ERR_MISSING_ARGS:d}}=Nt(),p=Wn();return Oc=function(...b){if(b.length===0)throw new d("streams");if(b.length===1)return e.from(b[0]);const v=[...b];if(typeof b[0]=="function"&&(b[0]=e.from(b[0])),typeof b[b.length-1]=="function"){const H=b.length-1;b[H]=e.from(b[H])}for(let H=0;H0&&!(i(b[H])||l(b[H])||o(b[H])))throw new f(`streams[${H}]`,v[H],"must be writable")}let _,E,y,T,x;function A(H){const C=T;T=null,C?C(H):H?x.destroy(H):!U&&!W&&x.destroy()}const P=b[0],L=t(b,A),W=!!(i(P)||l(P)||o(P)),U=!!(s(L)||u(L)||o(L));if(x=new e({writableObjectMode:!!(P!=null&&P.writableObjectMode),readableObjectMode:!!(L!=null&&L.readableObjectMode),writable:W,readable:U}),W){if(n(P))x._write=function(C,I,N){P.write(C,I)?N():_=N},x._final=function(C){P.end(),E=C},P.on("drain",function(){if(_){const C=_;_=null,C()}});else if(a(P)){const I=(o(P)?P.writable:P).getWriter();x._write=async function(N,J,ne){try{await I.ready,I.write(N).catch(()=>{}),ne()}catch(te){ne(te)}},x._final=async function(N){try{await I.ready,I.close().catch(()=>{}),E=N}catch(J){N(J)}}}const H=o(L)?L.readable:L;p(H,()=>{if(E){const C=E;E=null,C()}})}if(U){if(n(L))L.on("readable",function(){if(y){const H=y;y=null,H()}}),L.on("end",function(){x.push(null)}),x._read=function(){for(;;){const H=L.read();if(H===null){y=x._read;return}if(!x.push(H))return}};else if(a(L)){const C=(o(L)?L.readable:L).getReader();x._read=async function(){for(;;)try{const{value:I,done:N}=await C.read();if(!x.push(I))return;if(N){x.push(null);return}}catch{return}}}}return x._destroy=function(H,C){!H&&T!==null&&(H=new c),y=null,_=null,E=null,T===null?C(H):(T=C,n(L)&&r(L,H))},x},Oc}var Pb;function bk(){if(Pb)return wa;Pb=1;const t=globalThis.AbortController||Do().AbortController,{codes:{ERR_INVALID_ARG_VALUE:e,ERR_INVALID_ARG_TYPE:r,ERR_MISSING_ARGS:n,ERR_OUT_OF_RANGE:s},AbortError:i}=Nt(),{validateAbortSignal:a,validateInteger:o,validateObject:l}=Yo(),u=st().Symbol("kWeak"),c=st().Symbol("kResistStopPropagation"),{finished:f}=Wn(),d=Pv(),{addAbortSignalNoValidate:p}=uu(),{isWritable:m,isNodeStream:b}=_n(),{deprecate:v}=Ut(),{ArrayPrototypePush:_,Boolean:E,MathFloor:y,Number:T,NumberIsNaN:x,Promise:A,PromiseReject:P,PromiseResolve:L,PromisePrototypeThen:W,Symbol:U}=st(),H=U("kEmpty"),C=U("kEof");function I(D,X){if(X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),b(D)&&!m(D))throw new e("stream",D,"must be writable");const le=d(this,D);return X!=null&&X.signal&&p(X.signal,le),le}function N(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal");let le=1;(X==null?void 0:X.concurrency)!=null&&(le=y(X.concurrency));let se=le-1;return(X==null?void 0:X.highWaterMark)!=null&&(se=y(X.highWaterMark)),o(le,"options.concurrency",1),o(se,"options.highWaterMark",0),se+=le,(async function*(){const O=Ut().AbortSignalAny([X==null?void 0:X.signal].filter(E)),F=this,R=[],V={signal:O};let q,oe,Q=!1,G=0;function re(){Q=!0,z()}function z(){G-=1,ie()}function ie(){oe&&!Q&&G=se||G>=le)&&await new A(S=>{oe=S})}R.push(C)}catch(be){const S=P(be);W(S,z,re),R.push(S)}finally{Q=!0,q&&(q(),q=null)}}he();try{for(;;){for(;R.length>0;){const be=await R[0];if(be===C)return;if(O.aborted)throw new i;be!==H&&(yield be),R.shift(),ie()}await new A(be=>{q=be})}}finally{Q=!0,oe&&(oe(),oe=null)}}).call(this)}function J(D=void 0){return D!=null&&l(D,"options"),(D==null?void 0:D.signal)!=null&&a(D.signal,"options.signal"),(async function*(){let le=0;for await(const M of this){var se;if(D!=null&&(se=D.signal)!==null&&se!==void 0&&se.aborted)throw new i({cause:D.signal.reason});yield[le++,M]}}).call(this)}async function ne(D,X=void 0){for await(const le of Y.call(this,D,X))return!0;return!1}async function te(D,X=void 0){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);return!await ne.call(this,async(...le)=>!await D(...le),X)}async function B(D,X){for await(const le of Y.call(this,D,X))return le}async function ae(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);async function le(se,M){return await D(se,M),H}for await(const se of N.call(this,le,X));}function Y(D,X){if(typeof D!="function")throw new r("fn",["Function","AsyncFunction"],D);async function le(se,M){return await D(se,M)?se:H}return N.call(this,le,X)}class ce extends n{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function $(D,X,le){var se;if(typeof D!="function")throw new r("reducer",["Function","AsyncFunction"],D);le!=null&&l(le,"options"),(le==null?void 0:le.signal)!=null&&a(le.signal,"options.signal");let M=arguments.length>1;if(le!=null&&(se=le.signal)!==null&&se!==void 0&&se.aborted){const q=new i(void 0,{cause:le.signal.reason});throw this.once("error",()=>{}),await f(this.destroy(q)),q}const O=new t,F=O.signal;if(le!=null&&le.signal){const q={once:!0,[u]:this,[c]:!0};le.signal.addEventListener("abort",()=>O.abort(),q)}let R=!1;try{for await(const q of this){var V;if(R=!0,le!=null&&(V=le.signal)!==null&&V!==void 0&&V.aborted)throw new i;M?X=await D(X,q,{signal:F}):(X=q,M=!0)}if(!R&&!M)throw new ce}finally{O.abort()}return X}async function ue(D){D!=null&&l(D,"options"),(D==null?void 0:D.signal)!=null&&a(D.signal,"options.signal");const X=[];for await(const se of this){var le;if(D!=null&&(le=D.signal)!==null&&le!==void 0&&le.aborted)throw new i(void 0,{cause:D.signal.reason});_(X,se)}return X}function me(D,X){const le=N.call(this,D,X);return(async function*(){for await(const M of le)yield*M}).call(this)}function ee(D){if(D=T(D),x(D))return 0;if(D<0)throw new s("number",">= 0",D);return D}function K(D,X=void 0){return X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),D=ee(D),(async function*(){var se;if(X!=null&&(se=X.signal)!==null&&se!==void 0&&se.aborted)throw new i;for await(const O of this){var M;if(X!=null&&(M=X.signal)!==null&&M!==void 0&&M.aborted)throw new i;D--<=0&&(yield O)}}).call(this)}function j(D,X=void 0){return X!=null&&l(X,"options"),(X==null?void 0:X.signal)!=null&&a(X.signal,"options.signal"),D=ee(D),(async function*(){var se;if(X!=null&&(se=X.signal)!==null&&se!==void 0&&se.aborted)throw new i;for await(const O of this){var M;if(X!=null&&(M=X.signal)!==null&&M!==void 0&&M.aborted)throw new i;if(D-- >0&&(yield O),D<=0)return}}).call(this)}return wa.streamReturningOperators={asIndexedPairs:v(J,"readable.asIndexedPairs will be removed in a future version."),drop:K,filter:Y,flatMap:me,map:N,take:j,compose:I},wa.promiseReturningOperators={every:te,forEach:ae,reduce:$,toArray:ue,some:ne,find:B},wa}var Pc,kb;function kv(){if(kb)return Pc;kb=1;const{ArrayPrototypePop:t,Promise:e}=st(),{isIterable:r,isNodeStream:n,isWebStream:s}=_n(),{pipelineImpl:i}=vp(),{finished:a}=Wn();Rv();function o(...l){return new e((u,c)=>{let f,d;const p=l[l.length-1];if(p&&typeof p=="object"&&!n(p)&&!r(p)&&!s(p)){const m=t(l);f=m.signal,d=m.end}i(l,(m,b)=>{m?c(m):u(b)},{signal:f,end:d})})}return Pc={finished:a,pipeline:o},Pc}var Rb;function Rv(){if(Rb)return ac.exports;Rb=1;const{Buffer:t}=er(),{ObjectDefineProperty:e,ObjectKeys:r,ReflectApply:n}=st(),{promisify:{custom:s}}=Ut(),{streamReturningOperators:i,promiseReturningOperators:a}=bk(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:o}}=Nt(),l=Pv(),{setDefaultHighWaterMark:u,getDefaultHighWaterMark:c}=cu(),{pipeline:f}=vp(),{destroyer:d}=Rs(),p=Wn(),m=kv(),b=_n(),v=ac.exports=wp().Stream;v.isDestroyed=b.isDestroyed,v.isDisturbed=b.isDisturbed,v.isErrored=b.isErrored,v.isReadable=b.isReadable,v.isWritable=b.isWritable,v.Readable=fu();for(const E of r(i)){let T=function(...x){if(new.target)throw o();return v.Readable.from(n(y,this,x))};const y=i[E];e(T,"name",{__proto__:null,value:y.name}),e(T,"length",{__proto__:null,value:y.length}),e(v.Readable.prototype,E,{__proto__:null,value:T,enumerable:!1,configurable:!0,writable:!0})}for(const E of r(a)){let T=function(...x){if(new.target)throw o();return n(y,this,x)};const y=a[E];e(T,"name",{__proto__:null,value:y.name}),e(T,"length",{__proto__:null,value:y.length}),e(v.Readable.prototype,E,{__proto__:null,value:T,enumerable:!1,configurable:!0,writable:!0})}v.Writable=_p(),v.Duplex=pn(),v.Transform=Mv(),v.PassThrough=Ov(),v.pipeline=f;const{addAbortSignal:_}=uu();return v.addAbortSignal=_,v.finished=p,v.destroy=d,v.compose=l,v.setDefaultHighWaterMark=u,v.getDefaultHighWaterMark=c,e(v,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return m}}),e(f,s,{__proto__:null,enumerable:!0,get(){return m.pipeline}}),e(p,s,{__proto__:null,enumerable:!0,get(){return m.finished}}),v.Stream=v,v._isUint8Array=function(y){return y instanceof Uint8Array},v._uint8ArrayToBuffer=function(y){return t.from(y.buffer,y.byteOffset,y.byteLength)},ac.exports}var Lb;function yk(){return Lb||(Lb=1,function(t){const e=Rv(),r=kv(),n=e.Readable.destroy;t.exports=e.Readable,t.exports._uint8ArrayToBuffer=e._uint8ArrayToBuffer,t.exports._isUint8Array=e._isUint8Array,t.exports.isDisturbed=e.isDisturbed,t.exports.isErrored=e.isErrored,t.exports.isReadable=e.isReadable,t.exports.Readable=e.Readable,t.exports.Writable=e.Writable,t.exports.Duplex=e.Duplex,t.exports.Transform=e.Transform,t.exports.PassThrough=e.PassThrough,t.exports.addAbortSignal=e.addAbortSignal,t.exports.finished=e.finished,t.exports.destroy=e.destroy,t.exports.destroy=n,t.exports.pipeline=e.pipeline,t.exports.compose=e.compose,Object.defineProperty(e,"promises",{configurable:!0,enumerable:!0,get(){return r}}),t.exports.Stream=e.Stream,t.exports.default=t.exports}(oc)),oc.exports}var Ea={exports:{}},Nb;function wk(){return Nb||(Nb=1,typeof Object.create=="function"?Ea.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Ea.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}),Ea.exports}var kc,Db;function _k(){if(Db)return kc;Db=1;const{Buffer:t}=er(),e=Symbol.for("BufferList");function r(n){if(!(this instanceof r))return new r(n);r._init.call(this,n)}return r._init=function(s){Object.defineProperty(this,e,{value:!0}),this._bufs=[],this.length=0,s&&this.append(s)},r.prototype._new=function(s){return new r(s)},r.prototype._offset=function(s){if(s===0)return[0,0];let i=0;for(let a=0;athis.length||s<0)return;const i=this._offset(s);return this._bufs[i[0]][i[1]]},r.prototype.slice=function(s,i){return typeof s=="number"&&s<0&&(s+=this.length),typeof i=="number"&&i<0&&(i+=this.length),this.copy(null,0,s,i)},r.prototype.copy=function(s,i,a,o){if((typeof a!="number"||a<0)&&(a=0),(typeof o!="number"||o>this.length)&&(o=this.length),a>=this.length||o<=0)return s||t.alloc(0);const l=!!s,u=this._offset(a),c=o-a;let f=c,d=l&&i||0,p=u[1];if(a===0&&o===this.length){if(!l)return this._bufs.length===1?this._bufs[0]:t.concat(this._bufs,this.length);for(let m=0;mb)this._bufs[m].copy(s,d,p),d+=b;else{this._bufs[m].copy(s,d,p,p+f),d+=b;break}f-=b,p&&(p=0)}return s.length>d?s.slice(0,d):s},r.prototype.shallowSlice=function(s,i){if(s=s||0,i=typeof i!="number"?this.length:i,s<0&&(s+=this.length),i<0&&(i+=this.length),s===i)return this._new();const a=this._offset(s),o=this._offset(i),l=this._bufs.slice(a[0],o[0]+1);return o[1]===0?l.pop():l[l.length-1]=l[l.length-1].slice(0,o[1]),a[1]!==0&&(l[0]=l[0].slice(a[1])),this._new(l)},r.prototype.toString=function(s,i,a){return this.slice(i,a).toString(s)},r.prototype.consume=function(s){if(s=Math.trunc(s),Number.isNaN(s)||s<=0)return this;for(;this._bufs.length;)if(s>=this._bufs[0].length)s-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(s),this.length-=s;break}return this},r.prototype.duplicate=function(){const s=this._new();for(let i=0;ithis.length?this.length:s;const a=this._offset(s);let o=a[0],l=a[1];for(;o=n.length){const f=u.indexOf(n,l);if(f!==-1)return this._reverseOffset([o,f]);l=u.length-n.length+1}else{const f=this._reverseOffset([o,l]);if(this._match(f,n))return f;l++}l=0}return-1},r.prototype._match=function(n,s){if(this.length-n[0,1].map(a=>[0,1].map(o=>{const l=r.alloc(1);return l.writeUInt8(e.codes[s]<r.from([s])),e.EMPTY={pingreq:r.from([e.codes.pingreq<<4,0]),pingresp:r.from([e.codes.pingresp<<4,0]),disconnect:r.from([e.codes.disconnect<<4,0])},e.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},e.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},e.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},e.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}(Lc)),Lc.exports}function Nv(){throw new Error("setTimeout has not been defined")}function Dv(){throw new Error("clearTimeout has not been defined")}var Cn=Nv,In=Dv;typeof Si.setTimeout=="function"&&(Cn=setTimeout);typeof Si.clearTimeout=="function"&&(In=clearTimeout);function Bv(t){if(Cn===setTimeout)return setTimeout(t,0);if((Cn===Nv||!Cn)&&setTimeout)return Cn=setTimeout,setTimeout(t,0);try{return Cn(t,0)}catch{try{return Cn.call(null,t,0)}catch{return Cn.call(this,t,0)}}}function Sk(t){if(In===clearTimeout)return clearTimeout(t);if((In===Dv||!In)&&clearTimeout)return In=clearTimeout,clearTimeout(t);try{return In(t)}catch{try{return In.call(null,t)}catch{return In.call(this,t)}}}var rn=[],fs=!1,hi,el=-1;function Tk(){!fs||!hi||(fs=!1,hi.length?rn=hi.concat(rn):el=-1,rn.length&&$v())}function $v(){if(!fs){var t=Bv(Tk);fs=!0;for(var e=rn.length;e;){for(hi=rn,rn=[];++el1)for(var r=1;r0)return a(c);if(d==="number"&&isFinite(c))return f.long?l(c):o(c);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(c))};function a(c){if(c=String(c),!(c.length>100)){var f=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(f){var d=parseFloat(f[1]),p=(f[2]||"ms").toLowerCase();switch(p){case"years":case"year":case"yrs":case"yr":case"y":return d*i;case"weeks":case"week":case"w":return d*s;case"days":case"day":case"d":return d*n;case"hours":case"hour":case"hrs":case"hr":case"h":return d*r;case"minutes":case"minute":case"mins":case"min":case"m":return d*e;case"seconds":case"second":case"secs":case"sec":case"s":return d*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return d;default:return}}}}function o(c){var f=Math.abs(c);return f>=n?Math.round(c/n)+"d":f>=r?Math.round(c/r)+"h":f>=e?Math.round(c/e)+"m":f>=t?Math.round(c/t)+"s":c+"ms"}function l(c){var f=Math.abs(c);return f>=n?u(c,f,n,"day"):f>=r?u(c,f,r,"hour"):f>=e?u(c,f,e,"minute"):f>=t?u(c,f,t,"second"):c+" ms"}function u(c,f,d,p){var m=f>=d*1.5;return Math.round(c/d)+" "+p+(m?"s":"")}return Nc}var Dc,jb;function Qk(){if(jb)return Dc;jb=1;function t(e){n.debug=n,n.default=n,n.coerce=u,n.disable=o,n.enable=i,n.enabled=l,n.humanize=Xk(),n.destroy=c,Object.keys(e).forEach(f=>{n[f]=e[f]}),n.names=[],n.skips=[],n.formatters={};function r(f){let d=0;for(let p=0;p{if(P==="%%")return"%";x++;const W=n.formatters[L];if(typeof W=="function"){const U=_[x];P=W.call(E,U),_.splice(x,1),x--}return P}),n.formatArgs.call(E,_),(E.log||n.log).apply(E,_)}return v.namespace=f,v.useColors=n.useColors(),v.color=n.selectColor(f),v.extend=s,v.destroy=n.destroy,Object.defineProperty(v,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(m!==n.namespaces&&(m=n.namespaces,b=n.enabled(f)),b),set:_=>{p=_}}),typeof n.init=="function"&&n.init(v),v}function s(f,d){const p=n(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}function i(f){n.save(f),n.namespaces=f,n.names=[],n.skips=[];const d=(typeof f=="string"?f:"").trim().replace(" ",",").split(",").filter(Boolean);for(const p of d)p[0]==="-"?n.skips.push(p.slice(1)):n.names.push(p)}function a(f,d){let p=0,m=0,b=-1,v=0;for(;p"-"+d)].join(",");return n.enable(""),f}function l(f){for(const d of n.skips)if(a(f,d))return!1;for(const d of n.names)if(a(f,d))return!0;return!1}function u(f){return f instanceof Error?f.stack||f.message:f}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}return Dc=t,Dc}var Wb;function Uv(){return Wb||(Wb=1,function(t,e){var r={};e.formatArgs=s,e.save=i,e.load=a,e.useColors=n,e.storage=o(),e.destroy=(()=>{let u=!1;return()=>{u||(u=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function n(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let u;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(u=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(u[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function s(u){if(u[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+u[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;u.splice(1,0,c,"color: inherit");let f=0,d=0;u[0].replace(/%[a-zA-Z%]/g,p=>{p!=="%%"&&(f++,p==="%c"&&(d=f))}),u.splice(d,0,c)}e.log=console.debug||console.log||(()=>{});function i(u){try{u?e.storage.setItem("debug",u):e.storage.removeItem("debug")}catch{}}function a(){let u;try{u=e.storage.getItem("debug")}catch{}return!u&&typeof Ht<"u"&&"env"in Ht&&(u=r.DEBUG),u}function o(){try{return localStorage}catch{}}t.exports=Qk()(e);const{formatters:l}=t.exports;l.j=function(u){try{return JSON.stringify(u)}catch(c){return"[UnexpectedJSONParseError]: "+c.message}}}(Sa,Sa.exports)),Sa.exports}var Bc,Hb;function Jk(){if(Hb)return Bc;Hb=1;const t=vk(),{EventEmitter:e}=ks(),r=Ek(),n=Lv(),s=Uv()("mqtt-packet:parser");class i extends e{constructor(){super(),this.parser=this.constructor.parser}static parser(o){return this instanceof i?(this.settings=o||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new i().parser(o)}_resetState(){s("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new r,this.error=null,this._list=t(),this._stateCounter=0}parse(o){for(this.error&&this._resetState(),this._list.append(o),s("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,s("parse: state complete. _stateCounter is now: %d",this._stateCounter),s("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return s("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const o=this._list.readUInt8(0),l=o>>n.CMD_SHIFT;this.packet.cmd=n.types[l];const u=o&15,c=n.requiredHeaderFlags[l];return c!=null&&u!==c?this._emitError(new Error(n.requiredHeaderFlagsErrors[l])):(this.packet.retain=(o&n.RETAIN_MASK)!==0,this.packet.qos=o>>n.QOS_SHIFT&n.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(o&n.DUP_MASK)!==0,s("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){const o=this._parseVarByteNum(!0);return o&&(this.packet.length=o.value,this._list.consume(o.bytes)),s("_parseLength %d",o.value),!!o}_parsePayload(){s("_parsePayload: payload %O",this._list);let o=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}o=!0}return s("_parsePayload complete result: %s",o),o}_parseConnect(){s("_parseConnect");let o,l,u,c;const f={},d=this.packet,p=this._parseString();if(p===null)return this._emitError(new Error("Cannot parse protocolId"));if(p!=="MQTT"&&p!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(d.protocolId=p,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(d.protocolVersion=this._list.readUInt8(this._pos),d.protocolVersion>=128&&(d.bridgeMode=!0,d.protocolVersion=d.protocolVersion-128),d.protocolVersion!==3&&d.protocolVersion!==4&&d.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));f.username=this._list.readUInt8(this._pos)&n.USERNAME_MASK,f.password=this._list.readUInt8(this._pos)&n.PASSWORD_MASK,f.will=this._list.readUInt8(this._pos)&n.WILL_FLAG_MASK;const m=!!(this._list.readUInt8(this._pos)&n.WILL_RETAIN_MASK),b=(this._list.readUInt8(this._pos)&n.WILL_QOS_MASK)>>n.WILL_QOS_SHIFT;if(f.will)d.will={},d.will.retain=m,d.will.qos=b;else{if(m)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(b)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(d.clean=(this._list.readUInt8(this._pos)&n.CLEAN_SESSION_MASK)!==0,this._pos++,d.keepalive=this._parseNum(),d.keepalive===-1)return this._emitError(new Error("Packet too short"));if(d.protocolVersion===5){const _=this._parseProperties();Object.getOwnPropertyNames(_).length&&(d.properties=_)}const v=this._parseString();if(v===null)return this._emitError(new Error("Packet too short"));if(d.clientId=v,s("_parseConnect: packet.clientId: %s",d.clientId),f.will){if(d.protocolVersion===5){const _=this._parseProperties();Object.getOwnPropertyNames(_).length&&(d.will.properties=_)}if(o=this._parseString(),o===null)return this._emitError(new Error("Cannot parse will topic"));if(d.will.topic=o,s("_parseConnect: packet.will.topic: %s",d.will.topic),l=this._parseBuffer(),l===null)return this._emitError(new Error("Cannot parse will payload"));d.will.payload=l,s("_parseConnect: packet.will.paylaod: %s",d.will.payload)}if(f.username){if(c=this._parseString(),c===null)return this._emitError(new Error("Cannot parse username"));d.username=c,s("_parseConnect: packet.username: %s",d.username)}if(f.password){if(u=this._parseBuffer(),u===null)return this._emitError(new Error("Cannot parse password"));d.password=u}return this.settings=d,s("_parseConnect: complete"),d}_parseConnack(){s("_parseConnack");const o=this.packet;if(this._list.length<1)return null;const l=this._list.readUInt8(this._pos++);if(l>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(o.sessionPresent=!!(l&n.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?o.reasonCode=this._list.readUInt8(this._pos++):o.reasonCode=0;else{if(this._list.length<2)return null;o.returnCode=this._list.readUInt8(this._pos++)}if(o.returnCode===-1||o.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){const u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(o.properties=u)}s("_parseConnack: complete")}_parsePublish(){s("_parsePublish");const o=this.packet;if(o.topic=this._parseString(),o.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(o.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}o.payload=this._list.slice(this._pos,o.length),s("_parsePublish: payload from buffer list: %o",o.payload)}}_parseSubscribe(){s("_parseSubscribe");const o=this.packet;let l,u,c,f,d,p,m;if(o.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const b=this._parseProperties();Object.getOwnPropertyNames(b).length&&(o.properties=b)}if(o.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=o.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(u=this._parseByte(),this.settings.protocolVersion===5){if(u&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(u&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(c=u&n.SUBSCRIBE_OPTIONS_QOS_MASK,c>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(p=(u>>n.SUBSCRIBE_OPTIONS_NL_SHIFT&n.SUBSCRIBE_OPTIONS_NL_MASK)!==0,d=(u>>n.SUBSCRIBE_OPTIONS_RAP_SHIFT&n.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,f=u>>n.SUBSCRIBE_OPTIONS_RH_SHIFT&n.SUBSCRIBE_OPTIONS_RH_MASK,f>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));m={topic:l,qos:c},this.settings.protocolVersion===5?(m.nl=p,m.rap=d,m.rh=f):this.settings.bridgeMode&&(m.rh=0,m.rap=!0,m.nl=!0),s("_parseSubscribe: push subscription `%s` to subscription",m),o.subscriptions.push(m)}}}_parseSuback(){s("_parseSuback");const o=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}if(o.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&l!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(l)}}}_parseUnsubscribe(){s("_parseUnsubscribe");const o=this.packet;if(o.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}if(o.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(o.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!n.MQTT5_PUBACK_PUBREC_CODES[o.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!n.MQTT5_PUBREL_PUBCOMP_CODES[o.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}s("_parseConfirmation: packet.reasonCode `%d`",o.reasonCode)}else o.reasonCode=0;if(o.length>3){const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}}return!0}_parseDisconnect(){const o=this.packet;if(s("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(o.reasonCode=this._parseByte(),n.MQTT5_DISCONNECT_CODES[o.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):o.reasonCode=0;const l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(o.properties=l)}return s("_parseDisconnect result: true"),!0}_parseAuth(){s("_parseAuth");const o=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(o.reasonCode=this._parseByte(),!n.MQTT5_AUTH_CODES[o.reasonCode])return this._emitError(new Error("Invalid auth reason code"));const l=this._parseProperties();return Object.getOwnPropertyNames(l).length&&(o.properties=l),s("_parseAuth: result: true"),!0}_parseMessageId(){const o=this.packet;return o.messageId=this._parseNum(),o.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(s("_parseMessageId: packet.messageId %d",o.messageId),!0)}_parseString(o){const l=this._parseNum(),u=l+this._pos;if(l===-1||u>this._list.length||u>this.packet.length)return null;const c=this._list.toString("utf8",this._pos,u);return this._pos+=l,s("_parseString: result: %s",c),c}_parseStringPair(){return s("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const o=this._parseNum(),l=o+this._pos;if(o===-1||l>this._list.length||l>this.packet.length)return null;const u=this._list.slice(this._pos,l);return this._pos+=o,s("_parseBuffer: result: %o",u),u}_parseNum(){if(this._list.length-this._pos<2)return-1;const o=this._list.readUInt16BE(this._pos);return this._pos+=2,s("_parseNum: result: %s",o),o}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const o=this._list.readUInt32BE(this._pos);return this._pos+=4,s("_parse4ByteNum: result: %s",o),o}_parseVarByteNum(o){s("_parseVarByteNum");const l=4;let u=0,c=1,f=0,d=!1,p;const m=this._pos?this._pos:0;for(;u=u&&this._emitError(new Error("Invalid variable byte integer")),m&&(this._pos+=u),d?o?d={bytes:u,value:f}:d=f:d=!1,s("_parseVarByteNum: result: %o",d),d}_parseByte(){let o;return this._pos>8,0),u.writeUInt8(l&255,1),u}function i(){for(let l=0;l0&&(c=c|128),d.writeUInt8(c,f++);while(l>0&&f<4);return l>0&&(f=0),n?d.subarray(0,f):d.slice(0,f)}function o(l){const u=t.allocUnsafe(4);return u.writeUInt32BE(l,0),u}return $c={cache:r,generateCache:i,generateNumber:s,genBufVariableByteInt:a,generate4ByteBuffer:o},$c}var Ta={exports:{}},Vb;function eR(){if(Vb)return Ta.exports;Vb=1,typeof Ht>"u"||!Ht.version||Ht.version.indexOf("v0.")===0||Ht.version.indexOf("v1.")===0&&Ht.version.indexOf("v1.8.")!==0?Ta.exports={nextTick:t}:Ta.exports=Ht;function t(e,r,n,s){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var i=arguments.length,a,o;switch(i){case 0:case 1:return Ht.nextTick(e);case 2:return Ht.nextTick(function(){e.call(null,r)});case 3:return Ht.nextTick(function(){e.call(null,r,n)});case 4:return Ht.nextTick(function(){e.call(null,r,n,s)});default:for(a=new Array(i-1),o=0;o=4)&&(F||M))oe+=e.byteLength(F)+2;else{if(le<4)return K.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(M*1===0)return K.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof O!="number"||O<0||O>65535||O%1!==0)return K.destroy(new Error("Invalid keepalive")),!1;oe+=2,oe+=1;let Q,G;if(le===5){if(Q=ae(K,q),!Q)return!1;oe+=Q.length}if(se){if(typeof se!="object")return K.destroy(new Error("Invalid will")),!1;if(!se.topic||typeof se.topic!="string")return K.destroy(new Error("Invalid will topic")),!1;if(oe+=e.byteLength(se.topic)+2,oe+=2,se.payload)if(se.payload.length>=0)typeof se.payload=="string"?oe+=e.byteLength(se.payload):oe+=se.payload.length;else return K.destroy(new Error("Invalid will payload")),!1;if(G={},le===5){if(G=ae(K,se.properties),!G)return!1;oe+=G.length}}let re=!1;if(R!=null)if(me(R))re=!0,oe+=e.byteLength(R)+2;else return K.destroy(new Error("Invalid username")),!1;if(V!=null){if(!re)return K.destroy(new Error("Username is required to use password")),!1;if(me(V))oe+=ue(V)+2;else return K.destroy(new Error("Invalid password")),!1}K.write(t.CONNECT_HEADER),C(K,oe),B(K,X),D.bridgeMode&&(le+=128),K.write(le===131?t.VERSION131:le===132?t.VERSION132:le===4?t.VERSION4:le===5?t.VERSION5:t.VERSION3);let z=0;return z|=R!=null?t.USERNAME_MASK:0,z|=V!=null?t.PASSWORD_MASK:0,z|=se&&se.retain?t.WILL_RETAIN_MASK:0,z|=se&&se.qos?se.qos<0&&d(K,F),q!=null&&q.write(),a("publish: payload: %o",O),K.write(O)}function y(ee,K,j){const D=j?j.protocolVersion:4,X=ee||{},le=X.cmd||"puback",se=X.messageId,M=X.dup&&le==="pubrel"?t.DUP_MASK:0;let O=0;const F=X.reasonCode,R=X.properties;let V=D===5?3:2;if(le==="pubrel"&&(O=1),typeof se!="number")return K.destroy(new Error("Invalid messageId")),!1;let q=null;if(D===5&&typeof R=="object"){if(q=Y(K,R,j,V),!q)return!1;V+=q.length}return K.write(t.ACKS[le][O][M][0]),V===3&&(V+=F!==0?1:-1),C(K,V),d(K,se),D===5&&V!==2&&K.write(e.from([F])),q!==null?q.write():V===4&&K.write(e.from([0])),!0}function T(ee,K,j){a("subscribe: packet: ");const D=j?j.protocolVersion:4,X=ee||{},le=X.dup?t.DUP_MASK:0,se=X.messageId,M=X.subscriptions,O=X.properties;let F=0;if(typeof se!="number")return K.destroy(new Error("Invalid messageId")),!1;F+=2;let R=null;if(D===5){if(R=ae(K,O),!R)return!1;F+=R.length}if(typeof M=="object"&&M.length)for(let q=0;q2)return K.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}F+=e.byteLength(oe)+2+1}else return K.destroy(new Error("Invalid subscriptions")),!1;a("subscribe: writing to stream: %o",t.SUBSCRIBE_HEADER),K.write(t.SUBSCRIBE_HEADER[1][le?1:0][0]),C(K,F),d(K,se),R!==null&&R.write();let V=!0;for(const q of M){const oe=q.topic,Q=q.qos,G=+q.nl,re=+q.rap,z=q.rh;let ie;I(K,oe),ie=t.SUBSCRIBE_OPTIONS_QOS[Q],D===5&&(ie|=G?t.SUBSCRIBE_OPTIONS_NL:0,ie|=re?t.SUBSCRIBE_OPTIONS_RAP:0,ie|=z?t.SUBSCRIBE_OPTIONS_RH[z]:0),V=K.write(e.from([ie]))}return V}function x(ee,K,j){const D=j?j.protocolVersion:4,X=ee||{},le=X.messageId,se=X.granted,M=X.properties;let O=0;if(typeof le!="number")return K.destroy(new Error("Invalid messageId")),!1;if(O+=2,typeof se=="object"&&se.length)for(let R=0;Rt.VARBYTEINT_MAX)return ee.destroy(new Error(`Invalid variable byte integer: ${K}`)),!1;let j=H[K];return j||(j=c(K),K<16384&&(H[K]=j)),a("writeVarByteInt: writing to stream: %o",j),ee.write(j)}function I(ee,K){const j=e.byteLength(K);return d(ee,j),a("writeString: %s",K),ee.write(K,"utf8")}function N(ee,K,j){I(ee,K),I(ee,j)}function J(ee,K){return a("writeNumberCached: number: %d",K),a("writeNumberCached: %o",o[K]),ee.write(o[K])}function ne(ee,K){const j=l(K);return a("writeNumberGenerated: %o",j),ee.write(j)}function te(ee,K){const j=f(K);return a("write4ByteNumber: %o",j),ee.write(j)}function B(ee,K){typeof K=="string"?I(ee,K):K?(d(ee,K.length),ee.write(K)):d(ee,0)}function ae(ee,K){if(typeof K!="object"||K.length!=null)return{length:1,write(){$(ee,{},0)}};let j=0;function D(le,se){const M=t.propertiesTypes[le];let O=0;switch(M){case"byte":{if(typeof se!="boolean")return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=2;break}case"int8":{if(typeof se!="number"||se<0||se>255)return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=2;break}case"binary":{if(se&&se===null)return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=1+e.byteLength(se)+2;break}case"int16":{if(typeof se!="number"||se<0||se>65535)return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=3;break}case"int32":{if(typeof se!="number"||se<0||se>4294967295)return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=5;break}case"var":{if(typeof se!="number"||se<0||se>268435455)return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=1+e.byteLength(c(se));break}case"string":{if(typeof se!="string")return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=3+e.byteLength(se.toString());break}case"pair":{if(typeof se!="object")return ee.destroy(new Error(`Invalid ${le}: ${se}`)),!1;O+=Object.getOwnPropertyNames(se).reduce((F,R)=>{const V=se[R];return Array.isArray(V)?F+=V.reduce((q,oe)=>(q+=3+e.byteLength(R.toString())+2+e.byteLength(oe.toString()),q),0):F+=3+e.byteLength(R.toString())+2+e.byteLength(se[R].toString()),F},0);break}default:return ee.destroy(new Error(`Invalid property ${le}: ${se}`)),!1}return O}if(K)for(const le in K){let se=0,M=0;const O=K[le];if(Array.isArray(O))for(let F=0;Fle;){const M=X.shift();if(M&&K[M])delete K[M],se=ae(ee,K);else return!1}return se}function ce(ee,K,j){switch(t.propertiesTypes[K]){case"byte":{ee.write(e.from([t.properties[K]])),ee.write(e.from([+j]));break}case"int8":{ee.write(e.from([t.properties[K]])),ee.write(e.from([j]));break}case"binary":{ee.write(e.from([t.properties[K]])),B(ee,j);break}case"int16":{ee.write(e.from([t.properties[K]])),d(ee,j);break}case"int32":{ee.write(e.from([t.properties[K]])),te(ee,j);break}case"var":{ee.write(e.from([t.properties[K]])),C(ee,j);break}case"string":{ee.write(e.from([t.properties[K]])),I(ee,j);break}case"pair":{Object.getOwnPropertyNames(j).forEach(X=>{const le=j[X];Array.isArray(le)?le.forEach(se=>{ee.write(e.from([t.properties[K]])),N(ee,X.toString(),se.toString())}):(ee.write(e.from([t.properties[K]])),N(ee,X.toString(),le.toString()))});break}default:return ee.destroy(new Error(`Invalid property ${K} value: ${j}`)),!1}}function $(ee,K,j){C(ee,j);for(const D in K)if(Object.prototype.hasOwnProperty.call(K,D)&&K[D]!==null){const X=K[D];if(Array.isArray(X))for(let le=0;le{typeof t[r]>"u"?t[r]=e[r]:Kb(e[r])&&Kb(t[r])&&Object.keys(e[r]).length>0&&Ep(t[r],e[r])})}const Wv={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function pt(){const t=typeof document<"u"?document:{};return Ep(t,Wv),t}const nR={document:Wv,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(t){return typeof setTimeout>"u"?(t(),null):setTimeout(t,0)},cancelAnimationFrame(t){typeof setTimeout>"u"||clearTimeout(t)}};function rt(){const t=typeof window<"u"?window:{};return Ep(t,nR),t}function Mn(t){return t===void 0&&(t=""),t.trim().split(" ").filter(e=>!!e.trim())}function iR(t){const e=t;Object.keys(e).forEach(r=>{try{e[r]=null}catch{}try{delete e[r]}catch{}})}function Ci(t,e){return e===void 0&&(e=0),setTimeout(t,e)}function ir(){return Date.now()}function sR(t){const e=rt();let r;return e.getComputedStyle&&(r=e.getComputedStyle(t,null)),!r&&t.currentStyle&&(r=t.currentStyle),r||(r=t.style),r}function ah(t,e){e===void 0&&(e="x");const r=rt();let n,s,i;const a=sR(t);return r.WebKitCSSMatrix?(s=a.transform||a.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(o=>o.replace(",",".")).join(", ")),i=new r.WebKitCSSMatrix(s==="none"?"":s)):(i=a.MozTransform||a.OTransform||a.MsTransform||a.msTransform||a.transform||a.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),n=i.toString().split(",")),e==="x"&&(r.WebKitCSSMatrix?s=i.m41:n.length===16?s=parseFloat(n[12]):s=parseFloat(n[4])),e==="y"&&(r.WebKitCSSMatrix?s=i.m42:n.length===16?s=parseFloat(n[13]):s=parseFloat(n[5])),s||0}function ho(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"}function oR(t){return typeof window<"u"&&typeof window.HTMLElement<"u"?t instanceof HTMLElement:t&&(t.nodeType===1||t.nodeType===11)}function Yt(){const t=Object(arguments.length<=0?void 0:arguments[0]),e=["__proto__","constructor","prototype"];for(let r=1;re.indexOf(i)<0);for(let i=0,a=s.length;ii?"next":"prev",c=(d,p)=>u==="next"&&d>=p||u==="prev"&&d<=p,f=()=>{o=new Date().getTime(),a===null&&(a=o);const d=Math.max(Math.min((o-a)/l,1),0),p=.5-Math.cos(d*Math.PI)/2;let m=i+p*(r-i);if(c(m,r)&&(m=r),e.wrapperEl.scrollTo({[n]:m}),c(m,r)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[n]:m})}),s.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=s.requestAnimationFrame(f)};f()}function Fi(t){return t.querySelector(".swiper-slide-transform")||t.shadowRoot&&t.shadowRoot.querySelector(".swiper-slide-transform")||t}function yt(t,e){e===void 0&&(e="");const r=rt(),n=[...t.children];return r.HTMLSlotElement&&t instanceof HTMLSlotElement&&n.push(...t.assignedElements()),e?n.filter(s=>s.matches(e)):n}function aR(t,e){var n,s;const r=[e];for(;r.length>0;){const i=r.shift();if(t===i)return!0;r.push(...i.children,...((n=i.shadowRoot)==null?void 0:n.children)||[],...((s=i.assignedElements)==null?void 0:s.call(i))||[])}}function lR(t,e){const r=rt();let n=e.contains(t);return!n&&r.HTMLSlotElement&&e instanceof HTMLSlotElement&&(n=[...e.assignedElements()].includes(t),n||(n=aR(t,e))),n}function Rl(t){try{console.warn(t);return}catch{}}function Kt(t,e){e===void 0&&(e=[]);const r=document.createElement(t);return r.classList.add(...Array.isArray(e)?e:Mn(e)),r}function Ll(t){const e=rt(),r=pt(),n=t.getBoundingClientRect(),s=r.body,i=t.clientTop||s.clientTop||0,a=t.clientLeft||s.clientLeft||0,o=t===e?e.scrollY:t.scrollTop,l=t===e?e.scrollX:t.scrollLeft;return{top:n.top+o-i,left:n.left+l-a}}function uR(t,e){const r=[];for(;t.previousElementSibling;){const n=t.previousElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function cR(t,e){const r=[];for(;t.nextElementSibling;){const n=t.nextElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function Rn(t,e){return rt().getComputedStyle(t,null).getPropertyValue(e)}function Bo(t){let e=t,r;if(e){for(r=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(r+=1);return r}}function vi(t,e){const r=[];let n=t.parentElement;for(;n;)e?n.matches(e)&&r.push(n):r.push(n),n=n.parentElement;return r}function So(t,e){function r(n){n.target===t&&(e.call(t,n),t.removeEventListener("transitionend",r))}e&&t.addEventListener("transitionend",r)}function lh(t,e,r){const n=rt();return t[e==="width"?"offsetWidth":"offsetHeight"]+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-right":"margin-top"))+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-left":"margin-bottom"))}function $e(t){return(Array.isArray(t)?t:[t]).filter(e=>!!e)}function du(t){return e=>Math.abs(e)>0&&t.browser&&t.browser.need3dFix&&Math.abs(e)%90===0?e+.001:e}let jc;function fR(){const t=rt(),e=pt();return{smoothScroll:e.documentElement&&e.documentElement.style&&"scrollBehavior"in e.documentElement.style,touch:!!("ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch)}}function zv(){return jc||(jc=fR()),jc}let Wc;function dR(t){let{userAgent:e}=t===void 0?{}:t;const r=zv(),n=rt(),s=n.navigator.platform,i=e||n.navigator.userAgent,a={ios:!1,android:!1},o=n.screen.width,l=n.screen.height,u=i.match(/(Android);?[\s\/]+([\d.]+)?/);let c=i.match(/(iPad).*OS\s([\d_]+)/);const f=i.match(/(iPod)(.*OS\s([\d_]+))?/),d=!c&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/),p=s==="Win32";let m=s==="MacIntel";const b=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!c&&m&&r.touch&&b.indexOf(`${o}x${l}`)>=0&&(c=i.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),m=!1),u&&!p&&(a.os="android",a.android=!0),(c||d||f)&&(a.os="ios",a.ios=!0),a}function Vv(t){return t===void 0&&(t={}),Wc||(Wc=dR(t)),Wc}let Hc;function hR(){const t=rt(),e=Vv();let r=!1;function n(){const o=t.navigator.userAgent.toLowerCase();return o.indexOf("safari")>=0&&o.indexOf("chrome")<0&&o.indexOf("android")<0}if(n()){const o=String(t.navigator.userAgent);if(o.includes("Version/")){const[l,u]=o.split("Version/")[1].split(" ")[0].split(".").map(c=>Number(c));r=l<16||l===16&&u<2}}const s=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent),i=n(),a=i||s&&e.ios;return{isSafari:r||i,needPerspectiveFix:r,need3dFix:a,isWebView:s}}function pR(){return Hc||(Hc=hR()),Hc}function gR(t){let{swiper:e,on:r,emit:n}=t;const s=rt();let i=null,a=null;const o=()=>{!e||e.destroyed||!e.initialized||(n("beforeResize"),n("resize"))},l=()=>{!e||e.destroyed||!e.initialized||(i=new ResizeObserver(f=>{a=s.requestAnimationFrame(()=>{const{width:d,height:p}=e;let m=d,b=p;f.forEach(v=>{let{contentBoxSize:_,contentRect:E,target:y}=v;y&&y!==e.el||(m=E?E.width:(_[0]||_).inlineSize,b=E?E.height:(_[0]||_).blockSize)}),(m!==d||b!==p)&&o()})}),i.observe(e.el))},u=()=>{a&&s.cancelAnimationFrame(a),i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null)},c=()=>{!e||e.destroyed||!e.initialized||n("orientationchange")};r("init",()=>{if(e.params.resizeObserver&&typeof s.ResizeObserver<"u"){l();return}s.addEventListener("resize",o),s.addEventListener("orientationchange",c)}),r("destroy",()=>{u(),s.removeEventListener("resize",o),s.removeEventListener("orientationchange",c)})}function mR(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=[],a=rt(),o=function(c,f){f===void 0&&(f={});const d=a.MutationObserver||a.WebkitMutationObserver,p=new d(m=>{if(e.__preventObserver__)return;if(m.length===1){s("observerUpdate",m[0]);return}const b=function(){s("observerUpdate",m[0])};a.requestAnimationFrame?a.requestAnimationFrame(b):a.setTimeout(b,0)});p.observe(c,{attributes:typeof f.attributes>"u"?!0:f.attributes,childList:e.isElement||(typeof f.childList>"u"?!0:f).childList,characterData:typeof f.characterData>"u"?!0:f.characterData}),i.push(p)},l=()=>{if(e.params.observer){if(e.params.observeParents){const c=vi(e.hostEl);for(let f=0;f{i.forEach(c=>{c.disconnect()}),i.splice(0,i.length)};r({observer:!1,observeParents:!1,observeSlideChildren:!1}),n("init",l),n("destroy",u)}var bR={on(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;const s=r?"unshift":"push";return t.split(" ").forEach(i=>{n.eventsListeners[i]||(n.eventsListeners[i]=[]),n.eventsListeners[i][s](e)}),n},once(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;function s(){n.off(t,s),s.__emitterProxy&&delete s.__emitterProxy;for(var i=arguments.length,a=new Array(i),o=0;o=0&&e.eventsAnyListeners.splice(r,1),e},off(t,e){const r=this;return!r.eventsListeners||r.destroyed||!r.eventsListeners||t.split(" ").forEach(n=>{typeof e>"u"?r.eventsListeners[n]=[]:r.eventsListeners[n]&&r.eventsListeners[n].forEach((s,i)=>{(s===e||s.__emitterProxy&&s.__emitterProxy===e)&&r.eventsListeners[n].splice(i,1)})}),r},emit(){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let e,r,n;for(var s=arguments.length,i=new Array(s),a=0;a{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(u=>{u.apply(n,[l,...r])}),t.eventsListeners&&t.eventsListeners[l]&&t.eventsListeners[l].forEach(u=>{u.apply(n,r)})}),t}};function yR(){const t=this;let e,r;const n=t.el;typeof t.params.width<"u"&&t.params.width!==null?e=t.params.width:e=n.clientWidth,typeof t.params.height<"u"&&t.params.height!==null?r=t.params.height:r=n.clientHeight,!(e===0&&t.isHorizontal()||r===0&&t.isVertical())&&(e=e-parseInt(Rn(n,"padding-left")||0,10)-parseInt(Rn(n,"padding-right")||0,10),r=r-parseInt(Rn(n,"padding-top")||0,10)-parseInt(Rn(n,"padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(r)&&(r=0),Object.assign(t,{width:e,height:r,size:t.isHorizontal()?e:r}))}function wR(){const t=this;function e(U,H){return parseFloat(U.getPropertyValue(t.getDirectionLabel(H))||0)}const r=t.params,{wrapperEl:n,slidesEl:s,size:i,rtlTranslate:a,wrongRTL:o}=t,l=t.virtual&&r.virtual.enabled,u=l?t.virtual.slides.length:t.slides.length,c=yt(s,`.${t.params.slideClass}, swiper-slide`),f=l?t.virtual.slides.length:c.length;let d=[];const p=[],m=[];let b=r.slidesOffsetBefore;typeof b=="function"&&(b=r.slidesOffsetBefore.call(t));let v=r.slidesOffsetAfter;typeof v=="function"&&(v=r.slidesOffsetAfter.call(t));const _=t.snapGrid.length,E=t.slidesGrid.length;let y=r.spaceBetween,T=-b,x=0,A=0;if(typeof i>"u")return;typeof y=="string"&&y.indexOf("%")>=0?y=parseFloat(y.replace("%",""))/100*i:typeof y=="string"&&(y=parseFloat(y)),t.virtualSize=-y,c.forEach(U=>{a?U.style.marginLeft="":U.style.marginRight="",U.style.marginBottom="",U.style.marginTop=""}),r.centeredSlides&&r.cssMode&&(po(n,"--swiper-centered-offset-before",""),po(n,"--swiper-centered-offset-after",""));const P=r.grid&&r.grid.rows>1&&t.grid;P?t.grid.initSlides(c):t.grid&&t.grid.unsetSlides();let L;const W=r.slidesPerView==="auto"&&r.breakpoints&&Object.keys(r.breakpoints).filter(U=>typeof r.breakpoints[U].slidesPerView<"u").length>0;for(let U=0;U1&&d.push(t.virtualSize-i)}if(l&&r.loop){const U=m[0]+y;if(r.slidesPerGroup>1){const H=Math.ceil((t.virtual.slidesBefore+t.virtual.slidesAfter)/r.slidesPerGroup),C=U*r.slidesPerGroup;for(let I=0;I!r.cssMode||r.loop?!0:C!==c.length-1).forEach(H=>{H.style[U]=`${y}px`})}if(r.centeredSlides&&r.centeredSlidesBounds){let U=0;m.forEach(C=>{U+=C+(y||0)}),U-=y;const H=U>i?U-i:0;d=d.map(C=>C<=0?-b:C>H?H+v:C)}if(r.centerInsufficientSlides){let U=0;m.forEach(C=>{U+=C+(y||0)}),U-=y;const H=(r.slidesOffsetBefore||0)+(r.slidesOffsetAfter||0);if(U+H{d[N]=I-C}),p.forEach((I,N)=>{p[N]=I+C})}}if(Object.assign(t,{slides:c,snapGrid:d,slidesGrid:p,slidesSizesGrid:m}),r.centeredSlides&&r.cssMode&&!r.centeredSlidesBounds){po(n,"--swiper-centered-offset-before",`${-d[0]}px`),po(n,"--swiper-centered-offset-after",`${t.size/2-m[m.length-1]/2}px`);const U=-t.snapGrid[0],H=-t.slidesGrid[0];t.snapGrid=t.snapGrid.map(C=>C+U),t.slidesGrid=t.slidesGrid.map(C=>C+H)}if(f!==u&&t.emit("slidesLengthChange"),d.length!==_&&(t.params.watchOverflow&&t.checkOverflow(),t.emit("snapGridLengthChange")),p.length!==E&&t.emit("slidesGridLengthChange"),r.watchSlidesProgress&&t.updateSlidesOffset(),t.emit("slidesUpdated"),!l&&!r.cssMode&&(r.effect==="slide"||r.effect==="fade")){const U=`${r.containerModifierClass}backface-hidden`,H=t.el.classList.contains(U);f<=r.maxBackfaceHiddenSlides?H||t.el.classList.add(U):H&&t.el.classList.remove(U)}}function _R(t){const e=this,r=[],n=e.virtual&&e.params.virtual.enabled;let s=0,i;typeof t=="number"?e.setTransition(t):t===!0&&e.setTransition(e.params.speed);const a=o=>n?e.slides[e.getSlideIndexByData(o)]:e.slides[o];if(e.params.slidesPerView!=="auto"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(o=>{r.push(o)});else for(i=0;ie.slides.length&&!n)break;r.push(a(o))}else r.push(a(e.activeIndex));for(i=0;is?o:s}(s||s===0)&&(e.wrapperEl.style.height=`${s}px`)}function vR(){const t=this,e=t.slides,r=t.isElement?t.isHorizontal()?t.wrapperEl.offsetLeft:t.wrapperEl.offsetTop:0;for(let n=0;n{e&&!t.classList.contains(r)?t.classList.add(r):!e&&t.classList.contains(r)&&t.classList.remove(r)};function ER(t){t===void 0&&(t=this&&this.translate||0);const e=this,r=e.params,{slides:n,rtlTranslate:s,snapGrid:i}=e;if(n.length===0)return;typeof n[0].swiperSlideOffset>"u"&&e.updateSlidesOffset();let a=-t;s&&(a=t),e.visibleSlidesIndexes=[],e.visibleSlides=[];let o=r.spaceBetween;typeof o=="string"&&o.indexOf("%")>=0?o=parseFloat(o.replace("%",""))/100*e.size:typeof o=="string"&&(o=parseFloat(o));for(let l=0;l=0&&p<=e.size-e.slidesSizesGrid[l],v=p>=0&&p1&&m<=e.size||p<=0&&m>=e.size;v&&(e.visibleSlides.push(u),e.visibleSlidesIndexes.push(l)),Xb(u,v,r.slideVisibleClass),Xb(u,b,r.slideFullyVisibleClass),u.progress=s?-f:f,u.originalProgress=s?-d:d}}function SR(t){const e=this;if(typeof t>"u"){const c=e.rtlTranslate?-1:1;t=e&&e.translate&&e.translate*c||0}const r=e.params,n=e.maxTranslate()-e.minTranslate();let{progress:s,isBeginning:i,isEnd:a,progressLoop:o}=e;const l=i,u=a;if(n===0)s=0,i=!0,a=!0;else{s=(t-e.minTranslate())/n;const c=Math.abs(t-e.minTranslate())<1,f=Math.abs(t-e.maxTranslate())<1;i=c||s<=0,a=f||s>=1,c&&(s=0),f&&(s=1)}if(r.loop){const c=e.getSlideIndexByData(0),f=e.getSlideIndexByData(e.slides.length-1),d=e.slidesGrid[c],p=e.slidesGrid[f],m=e.slidesGrid[e.slidesGrid.length-1],b=Math.abs(t);b>=d?o=(b-d)/m:o=(b+m-p)/m,o>1&&(o-=1)}Object.assign(e,{progress:s,progressLoop:o,isBeginning:i,isEnd:a}),(r.watchSlidesProgress||r.centeredSlides&&r.autoHeight)&&e.updateSlidesProgress(t),i&&!l&&e.emit("reachBeginning toEdge"),a&&!u&&e.emit("reachEnd toEdge"),(l&&!i||u&&!a)&&e.emit("fromEdge"),e.emit("progress",s)}const zc=(t,e,r)=>{e&&!t.classList.contains(r)?t.classList.add(r):!e&&t.classList.contains(r)&&t.classList.remove(r)};function TR(){const t=this,{slides:e,params:r,slidesEl:n,activeIndex:s}=t,i=t.virtual&&r.virtual.enabled,a=t.grid&&r.grid&&r.grid.rows>1,o=f=>yt(n,`.${r.slideClass}${f}, swiper-slide${f}`)[0];let l,u,c;if(i)if(r.loop){let f=s-t.virtual.slidesBefore;f<0&&(f=t.virtual.slides.length+f),f>=t.virtual.slides.length&&(f-=t.virtual.slides.length),l=o(`[data-swiper-slide-index="${f}"]`)}else l=o(`[data-swiper-slide-index="${s}"]`);else a?(l=e.find(f=>f.column===s),c=e.find(f=>f.column===s+1),u=e.find(f=>f.column===s-1)):l=e[s];l&&(a||(c=cR(l,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!c&&(c=e[0]),u=uR(l,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!u===0&&(u=e[e.length-1]))),e.forEach(f=>{zc(f,f===l,r.slideActiveClass),zc(f,f===c,r.slideNextClass),zc(f,f===u,r.slidePrevClass)}),t.emitSlidesClasses()}const tl=(t,e)=>{if(!t||t.destroyed||!t.params)return;const r=()=>t.isElement?"swiper-slide":`.${t.params.slideClass}`,n=e.closest(r());if(n){let s=n.querySelector(`.${t.params.lazyPreloaderClass}`);!s&&t.isElement&&(n.shadowRoot?s=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{n.shadowRoot&&(s=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`),s&&s.remove())})),s&&s.remove()}},Vc=(t,e)=>{if(!t.slides[e])return;const r=t.slides[e].querySelector('[loading="lazy"]');r&&r.removeAttribute("loading")},uh=t=>{if(!t||t.destroyed||!t.params)return;let e=t.params.lazyPreloadPrevNext;const r=t.slides.length;if(!r||!e||e<0)return;e=Math.min(e,r);const n=t.params.slidesPerView==="auto"?t.slidesPerViewDynamic():Math.ceil(t.params.slidesPerView),s=t.activeIndex;if(t.params.grid&&t.params.grid.rows>1){const a=s,o=[a-e];o.push(...Array.from({length:e}).map((l,u)=>a+n+u)),t.slides.forEach((l,u)=>{o.includes(l.column)&&Vc(t,u)});return}const i=s+n-1;if(t.params.rewind||t.params.loop)for(let a=s-e;a<=i+e;a+=1){const o=(a%r+r)%r;(oi)&&Vc(t,o)}else for(let a=Math.max(s-e,0);a<=Math.min(i+e,r-1);a+=1)a!==s&&(a>i||a=e[i]&&n=e[i]&&n=e[i]&&(s=i);return r.normalizeSlideIndex&&(s<0||typeof s>"u")&&(s=0),s}function AR(t){const e=this,r=e.rtlTranslate?e.translate:-e.translate,{snapGrid:n,params:s,activeIndex:i,realIndex:a,snapIndex:o}=e;let l=t,u;const c=p=>{let m=p-e.virtual.slidesBefore;return m<0&&(m=e.virtual.slides.length+m),m>=e.virtual.slides.length&&(m-=e.virtual.slides.length),m};if(typeof l>"u"&&(l=xR(e)),n.indexOf(r)>=0)u=n.indexOf(r);else{const p=Math.min(s.slidesPerGroupSkip,l);u=p+Math.floor((l-p)/s.slidesPerGroup)}if(u>=n.length&&(u=n.length-1),l===i&&!e.params.loop){u!==o&&(e.snapIndex=u,e.emit("snapIndexChange"));return}if(l===i&&e.params.loop&&e.virtual&&e.params.virtual.enabled){e.realIndex=c(l);return}const f=e.grid&&s.grid&&s.grid.rows>1;let d;if(e.virtual&&s.virtual.enabled&&s.loop)d=c(l);else if(f){const p=e.slides.find(b=>b.column===l);let m=parseInt(p.getAttribute("data-swiper-slide-index"),10);Number.isNaN(m)&&(m=Math.max(e.slides.indexOf(p),0)),d=Math.floor(m/s.grid.rows)}else if(e.slides[l]){const p=e.slides[l].getAttribute("data-swiper-slide-index");p?d=parseInt(p,10):d=l}else d=l;Object.assign(e,{previousSnapIndex:o,snapIndex:u,previousRealIndex:a,realIndex:d,previousIndex:i,activeIndex:l}),e.initialized&&uh(e),e.emit("activeIndexChange"),e.emit("snapIndexChange"),(e.initialized||e.params.runCallbacksOnInit)&&(a!==d&&e.emit("realIndexChange"),e.emit("slideChange"))}function CR(t,e){const r=this,n=r.params;let s=t.closest(`.${n.slideClass}, swiper-slide`);!s&&r.isElement&&e&&e.length>1&&e.includes(t)&&[...e.slice(e.indexOf(t)+1,e.length)].forEach(o=>{!s&&o.matches&&o.matches(`.${n.slideClass}, swiper-slide`)&&(s=o)});let i=!1,a;if(s){for(let o=0;ol?c=l:n&&ta?o="next":i"u"&&(e=i.params.speed);const b=Math.min(i.params.slidesPerGroupSkip,a);let v=b+Math.floor((a-b)/i.params.slidesPerGroup);v>=l.length&&(v=l.length-1);const _=-l[v];if(o.normalizeSlideIndex)for(let x=0;x=P&&A=P&&A=P&&(a=x)}if(i.initialized&&a!==f&&(!i.allowSlideNext&&(d?_>i.translate&&_>i.minTranslate():_i.translate&&_>i.maxTranslate()&&(f||0)!==a))return!1;a!==(c||0)&&r&&i.emit("beforeSlideChangeStart"),i.updateProgress(_);let E;a>f?E="next":a0?(i._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{p[x?"scrollLeft":"scrollTop"]=A})):p[x?"scrollLeft":"scrollTop"]=A,y&&requestAnimationFrame(()=>{i.wrapperEl.style.scrollSnapType="",i._immediateVirtual=!1});else{if(!i.support.smoothScroll)return Hv({swiper:i,targetPosition:A,side:x?"left":"top"}),!0;p.scrollTo({[x?"left":"top"]:A,behavior:"smooth"})}return!0}return i.setTransition(e),i.setTranslate(_),i.updateActiveIndex(a),i.updateSlidesClasses(),i.emit("beforeTransitionStart",e,n),i.transitionStart(r,E),e===0?i.transitionEnd(r,E):i.animating||(i.animating=!0,i.onSlideToWrapperTransitionEnd||(i.onSlideToWrapperTransitionEnd=function(A){!i||i.destroyed||A.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onSlideToWrapperTransitionEnd),i.onSlideToWrapperTransitionEnd=null,delete i.onSlideToWrapperTransitionEnd,i.transitionEnd(r,E))}),i.wrapperEl.addEventListener("transitionend",i.onSlideToWrapperTransitionEnd)),!0}function UR(t,e,r,n){t===void 0&&(t=0),r===void 0&&(r=!0),typeof t=="string"&&(t=parseInt(t,10));const s=this;if(s.destroyed)return;typeof e>"u"&&(e=s.params.speed);const i=s.grid&&s.params.grid&&s.params.grid.rows>1;let a=t;if(s.params.loop)if(s.virtual&&s.params.virtual.enabled)a=a+s.virtual.slidesBefore;else{let o;if(i){const d=a*s.params.grid.rows;o=s.slides.find(p=>p.getAttribute("data-swiper-slide-index")*1===d).column}else o=s.getSlideIndexByData(a);const l=i?Math.ceil(s.slides.length/s.params.grid.rows):s.slides.length,{centeredSlides:u}=s.params;let c=s.params.slidesPerView;c==="auto"?c=s.slidesPerViewDynamic():(c=Math.ceil(parseFloat(s.params.slidesPerView,10)),u&&c%2===0&&(c=c+1));let f=l-op.getAttribute("data-swiper-slide-index")*1===d).column}else a=s.getSlideIndexByData(a)}return requestAnimationFrame(()=>{s.slideTo(a,e,r,n)}),s}function jR(t,e,r){e===void 0&&(e=!0);const n=this,{enabled:s,params:i,animating:a}=n;if(!s||n.destroyed)return n;typeof t>"u"&&(t=n.params.speed);let o=i.slidesPerGroup;i.slidesPerView==="auto"&&i.slidesPerGroup===1&&i.slidesPerGroupAuto&&(o=Math.max(n.slidesPerViewDynamic("current",!0),1));const l=n.activeIndex{n.slideTo(n.activeIndex+l,t,e,r)}),!0}return i.rewind&&n.isEnd?n.slideTo(0,t,e,r):n.slideTo(n.activeIndex+l,t,e,r)}function WR(t,e,r){e===void 0&&(e=!0);const n=this,{params:s,snapGrid:i,slidesGrid:a,rtlTranslate:o,enabled:l,animating:u}=n;if(!l||n.destroyed)return n;typeof t>"u"&&(t=n.params.speed);const c=n.virtual&&s.virtual.enabled;if(s.loop){if(u&&!c&&s.loopPreventsSliding)return!1;n.loopFix({direction:"prev"}),n._clientLeft=n.wrapperEl.clientLeft}const f=o?n.translate:-n.translate;function d(_){return _<0?-Math.floor(Math.abs(_)):Math.floor(_)}const p=d(f),m=i.map(_=>d(_));let b=i[m.indexOf(p)-1];if(typeof b>"u"&&s.cssMode){let _;i.forEach((E,y)=>{p>=E&&(_=y)}),typeof _<"u"&&(b=i[_>0?_-1:_])}let v=0;if(typeof b<"u"&&(v=a.indexOf(b),v<0&&(v=n.activeIndex-1),s.slidesPerView==="auto"&&s.slidesPerGroup===1&&s.slidesPerGroupAuto&&(v=v-n.slidesPerViewDynamic("previous",!0)+1,v=Math.max(v,0))),s.rewind&&n.isBeginning){const _=n.params.virtual&&n.params.virtual.enabled&&n.virtual?n.virtual.slides.length-1:n.slides.length-1;return n.slideTo(_,t,e,r)}else if(s.loop&&n.activeIndex===0&&s.cssMode)return requestAnimationFrame(()=>{n.slideTo(v,t,e,r)}),!0;return n.slideTo(v,t,e,r)}function HR(t,e,r){e===void 0&&(e=!0);const n=this;if(!n.destroyed)return typeof t>"u"&&(t=n.params.speed),n.slideTo(n.activeIndex,t,e,r)}function zR(t,e,r,n){e===void 0&&(e=!0),n===void 0&&(n=.5);const s=this;if(s.destroyed)return;typeof t>"u"&&(t=s.params.speed);let i=s.activeIndex;const a=Math.min(s.params.slidesPerGroupSkip,i),o=a+Math.floor((i-a)/s.params.slidesPerGroup),l=s.rtlTranslate?s.translate:-s.translate;if(l>=s.snapGrid[o]){const u=s.snapGrid[o],c=s.snapGrid[o+1];l-u>(c-u)*n&&(i+=s.params.slidesPerGroup)}else{const u=s.snapGrid[o-1],c=s.snapGrid[o];l-u<=(c-u)*n&&(i-=s.params.slidesPerGroup)}return i=Math.max(i,0),i=Math.min(i,s.slidesGrid.length-1),s.slideTo(i,t,e,r)}function VR(){const t=this;if(t.destroyed)return;const{params:e,slidesEl:r}=t,n=e.slidesPerView==="auto"?t.slidesPerViewDynamic():e.slidesPerView;let s=t.clickedIndex,i;const a=t.isElement?"swiper-slide":`.${e.slideClass}`;if(e.loop){if(t.animating)return;i=parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"),10),e.centeredSlides?st.slides.length-t.loopedSlides+n/2?(t.loopFix(),s=t.getSlideIndex(yt(r,`${a}[data-swiper-slide-index="${i}"]`)[0]),Ci(()=>{t.slideTo(s)})):t.slideTo(s):s>t.slides.length-n?(t.loopFix(),s=t.getSlideIndex(yt(r,`${a}[data-swiper-slide-index="${i}"]`)[0]),Ci(()=>{t.slideTo(s)})):t.slideTo(s)}else t.slideTo(s)}var qR={slideTo:FR,slideToLoop:UR,slideNext:jR,slidePrev:WR,slideReset:HR,slideToClosest:zR,slideToClickedSlide:VR};function YR(t){const e=this,{params:r,slidesEl:n}=e;if(!r.loop||e.virtual&&e.params.virtual.enabled)return;const s=()=>{yt(n,`.${r.slideClass}, swiper-slide`).forEach((f,d)=>{f.setAttribute("data-swiper-slide-index",d)})},i=e.grid&&r.grid&&r.grid.rows>1,a=r.slidesPerGroup*(i?r.grid.rows:1),o=e.slides.length%a!==0,l=i&&e.slides.length%r.grid.rows!==0,u=c=>{for(let f=0;f1;u.length"u"?i=l.getSlideIndex(u.find(I=>I.classList.contains(p.slideActiveClass))):x=i;const A=n==="next"||!n,P=n==="prev"||!n;let L=0,W=0;const U=E?Math.ceil(u.length/p.grid.rows):u.length,C=(E?u[i].column:i)+(m&&typeof s>"u"?-b/2+.5:0);if(C<_){L=Math.max(_-C,v);for(let I=0;I<_-C;I+=1){const N=I-Math.floor(I/U)*U;if(E){const J=U-N-1;for(let ne=u.length-1;ne>=0;ne-=1)u[ne].column===J&&y.push(ne)}else y.push(U-N-1)}}else if(C+b>U-_){W=Math.max(C-(U-_*2),v);for(let I=0;I{J.column===N&&T.push(ne)}):T.push(N)}}if(l.__preventObserver__=!0,requestAnimationFrame(()=>{l.__preventObserver__=!1}),P&&y.forEach(I=>{u[I].swiperLoopMoveDOM=!0,d.prepend(u[I]),u[I].swiperLoopMoveDOM=!1}),A&&T.forEach(I=>{u[I].swiperLoopMoveDOM=!0,d.append(u[I]),u[I].swiperLoopMoveDOM=!1}),l.recalcSlides(),p.slidesPerView==="auto"?l.updateSlides():E&&(y.length>0&&P||T.length>0&&A)&&l.slides.forEach((I,N)=>{l.grid.updateSlide(N,I,l.slides)}),p.watchSlidesProgress&&l.updateSlidesOffset(),r){if(y.length>0&&P){if(typeof e>"u"){const I=l.slidesGrid[x],J=l.slidesGrid[x+L]-I;o?l.setTranslate(l.translate-J):(l.slideTo(x+Math.ceil(L),0,!1,!0),s&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-J,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-J))}else if(s){const I=E?y.length/p.grid.rows:y.length;l.slideTo(l.activeIndex+I,0,!1,!0),l.touchEventsData.currentTranslate=l.translate}}else if(T.length>0&&A)if(typeof e>"u"){const I=l.slidesGrid[x],J=l.slidesGrid[x-W]-I;o?l.setTranslate(l.translate-J):(l.slideTo(x-W,0,!1,!0),s&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-J,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-J))}else{const I=E?T.length/p.grid.rows:T.length;l.slideTo(l.activeIndex-I,0,!1,!0)}}if(l.allowSlidePrev=c,l.allowSlideNext=f,l.controller&&l.controller.control&&!a){const I={slideRealIndex:e,direction:n,setTranslate:s,activeSlideIndex:i,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach(N=>{!N.destroyed&&N.params.loop&&N.loopFix({...I,slideTo:N.params.slidesPerView===p.slidesPerView?r:!1})}):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix({...I,slideTo:l.controller.control.params.slidesPerView===p.slidesPerView?r:!1})}l.emit("loopFix")}function KR(){const t=this,{params:e,slidesEl:r}=t;if(!e.loop||t.virtual&&t.params.virtual.enabled)return;t.recalcSlides();const n=[];t.slides.forEach(s=>{const i=typeof s.swiperSlideIndex>"u"?s.getAttribute("data-swiper-slide-index")*1:s.swiperSlideIndex;n[i]=s}),t.slides.forEach(s=>{s.removeAttribute("data-swiper-slide-index")}),n.forEach(s=>{r.append(s)}),t.recalcSlides(),t.slideTo(t.realIndex,0)}var XR={loopCreate:YR,loopFix:GR,loopDestroy:KR};function QR(t){const e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;const r=e.params.touchEventsTarget==="container"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),r.style.cursor="move",r.style.cursor=t?"grabbing":"grab",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function JR(){const t=this;t.params.watchOverflow&&t.isLocked||t.params.cssMode||(t.isElement&&(t.__preventObserver__=!0),t[t.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1}))}var ZR={setGrabCursor:QR,unsetGrabCursor:JR};function eL(t,e){e===void 0&&(e=this);function r(n){if(!n||n===pt()||n===rt())return null;n.assignedSlot&&(n=n.assignedSlot);const s=n.closest(t);return!s&&!n.getRootNode?null:s||r(n.getRootNode().host)}return r(e)}function Qb(t,e,r){const n=rt(),{params:s}=t,i=s.edgeSwipeDetection,a=s.edgeSwipeThreshold;return i&&(r<=a||r>=n.innerWidth-a)?i==="prevent"?(e.preventDefault(),!0):!1:!0}function tL(t){const e=this,r=pt();let n=t;n.originalEvent&&(n=n.originalEvent);const s=e.touchEventsData;if(n.type==="pointerdown"){if(s.pointerId!==null&&s.pointerId!==n.pointerId)return;s.pointerId=n.pointerId}else n.type==="touchstart"&&n.targetTouches.length===1&&(s.touchId=n.targetTouches[0].identifier);if(n.type==="touchstart"){Qb(e,n,n.targetTouches[0].pageX);return}const{params:i,touches:a,enabled:o}=e;if(!o||!i.simulateTouch&&n.pointerType==="mouse"||e.animating&&i.preventInteractionOnTransition)return;!e.animating&&i.cssMode&&i.loop&&e.loopFix();let l=n.target;if(i.touchEventsTarget==="wrapper"&&!lR(l,e.wrapperEl)||"which"in n&&n.which===3||"button"in n&&n.button>0||s.isTouched&&s.isMoved)return;const u=!!i.noSwipingClass&&i.noSwipingClass!=="",c=n.composedPath?n.composedPath():n.path;u&&n.target&&n.target.shadowRoot&&c&&(l=c[0]);const f=i.noSwipingSelector?i.noSwipingSelector:`.${i.noSwipingClass}`,d=!!(n.target&&n.target.shadowRoot);if(i.noSwiping&&(d?eL(f,l):l.closest(f))){e.allowClick=!0;return}if(i.swipeHandler&&!l.closest(i.swipeHandler))return;a.currentX=n.pageX,a.currentY=n.pageY;const p=a.currentX,m=a.currentY;if(!Qb(e,n,p))return;Object.assign(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),a.startX=p,a.startY=m,s.touchStartTime=ir(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,i.threshold>0&&(s.allowThresholdMove=!1);let b=!0;l.matches(s.focusableElements)&&(b=!1,l.nodeName==="SELECT"&&(s.isTouched=!1)),r.activeElement&&r.activeElement.matches(s.focusableElements)&&r.activeElement!==l&&(n.pointerType==="mouse"||n.pointerType!=="mouse"&&!l.matches(s.focusableElements))&&r.activeElement.blur();const v=b&&e.allowTouchMove&&i.touchStartPreventDefault;(i.touchStartForcePreventDefault||v)&&!l.isContentEditable&&n.preventDefault(),i.freeMode&&i.freeMode.enabled&&e.freeMode&&e.animating&&!i.cssMode&&e.freeMode.onTouchStart(),e.emit("touchStart",n)}function rL(t){const e=pt(),r=this,n=r.touchEventsData,{params:s,touches:i,rtlTranslate:a,enabled:o}=r;if(!o||!s.simulateTouch&&t.pointerType==="mouse")return;let l=t;if(l.originalEvent&&(l=l.originalEvent),l.type==="pointermove"&&(n.touchId!==null||l.pointerId!==n.pointerId))return;let u;if(l.type==="touchmove"){if(u=[...l.changedTouches].find(x=>x.identifier===n.touchId),!u||u.identifier!==n.touchId)return}else u=l;if(!n.isTouched){n.startMoving&&n.isScrolling&&r.emit("touchMoveOpposite",l);return}const c=u.pageX,f=u.pageY;if(l.preventedByNestedSwiper){i.startX=c,i.startY=f;return}if(!r.allowTouchMove){l.target.matches(n.focusableElements)||(r.allowClick=!1),n.isTouched&&(Object.assign(i,{startX:c,startY:f,currentX:c,currentY:f}),n.touchStartTime=ir());return}if(s.touchReleaseOnEdges&&!s.loop){if(r.isVertical()){if(fi.startY&&r.translate>=r.minTranslate()){n.isTouched=!1,n.isMoved=!1;return}}else if(ci.startX&&r.translate>=r.minTranslate())return}if(e.activeElement&&e.activeElement.matches(n.focusableElements)&&e.activeElement!==l.target&&l.pointerType!=="mouse"&&e.activeElement.blur(),e.activeElement&&l.target===e.activeElement&&l.target.matches(n.focusableElements)){n.isMoved=!0,r.allowClick=!1;return}n.allowTouchCallbacks&&r.emit("touchMove",l),i.previousX=i.currentX,i.previousY=i.currentY,i.currentX=c,i.currentY=f;const d=i.currentX-i.startX,p=i.currentY-i.startY;if(r.params.threshold&&Math.sqrt(d**2+p**2)"u"){let x;r.isHorizontal()&&i.currentY===i.startY||r.isVertical()&&i.currentX===i.startX?n.isScrolling=!1:d*d+p*p>=25&&(x=Math.atan2(Math.abs(p),Math.abs(d))*180/Math.PI,n.isScrolling=r.isHorizontal()?x>s.touchAngle:90-x>s.touchAngle)}if(n.isScrolling&&r.emit("touchMoveOpposite",l),typeof n.startMoving>"u"&&(i.currentX!==i.startX||i.currentY!==i.startY)&&(n.startMoving=!0),n.isScrolling||l.type==="touchmove"&&n.preventTouchMoveFromPointerMove){n.isTouched=!1;return}if(!n.startMoving)return;r.allowClick=!1,!s.cssMode&&l.cancelable&&l.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&l.stopPropagation();let m=r.isHorizontal()?d:p,b=r.isHorizontal()?i.currentX-i.previousX:i.currentY-i.previousY;s.oneWayMovement&&(m=Math.abs(m)*(a?1:-1),b=Math.abs(b)*(a?1:-1)),i.diff=m,m*=s.touchRatio,a&&(m=-m,b=-b);const v=r.touchesDirection;r.swipeDirection=m>0?"prev":"next",r.touchesDirection=b>0?"prev":"next";const _=r.params.loop&&!s.cssMode,E=r.touchesDirection==="next"&&r.allowSlideNext||r.touchesDirection==="prev"&&r.allowSlidePrev;if(!n.isMoved){if(_&&E&&r.loopFix({direction:r.swipeDirection}),n.startTranslate=r.getTranslate(),r.setTransition(0),r.animating){const x=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});r.wrapperEl.dispatchEvent(x)}n.allowMomentumBounce=!1,s.grabCursor&&(r.allowSlideNext===!0||r.allowSlidePrev===!0)&&r.setGrabCursor(!0),r.emit("sliderFirstMove",l)}if(new Date().getTime(),n.isMoved&&n.allowThresholdMove&&v!==r.touchesDirection&&_&&E&&Math.abs(m)>=1){Object.assign(i,{startX:c,startY:f,currentX:c,currentY:f,startTranslate:n.currentTranslate}),n.loopSwapReset=!0,n.startTranslate=n.currentTranslate;return}r.emit("sliderMove",l),n.isMoved=!0,n.currentTranslate=m+n.startTranslate;let y=!0,T=s.resistanceRatio;if(s.touchReleaseOnEdges&&(T=0),m>0?(_&&E&&n.allowThresholdMove&&n.currentTranslate>(s.centeredSlides?r.minTranslate()-r.slidesSizesGrid[r.activeIndex+1]-(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.activeIndex+1]+r.params.spaceBetween:0)-r.params.spaceBetween:r.minTranslate())&&r.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),n.currentTranslate>r.minTranslate()&&(y=!1,s.resistance&&(n.currentTranslate=r.minTranslate()-1+(-r.minTranslate()+n.startTranslate+m)**T))):m<0&&(_&&E&&n.allowThresholdMove&&n.currentTranslate<(s.centeredSlides?r.maxTranslate()+r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween+(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween:0):r.maxTranslate())&&r.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:r.slides.length-(s.slidesPerView==="auto"?r.slidesPerViewDynamic():Math.ceil(parseFloat(s.slidesPerView,10)))}),n.currentTranslaten.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&!r.allowSlideNext&&(n.currentTranslate=n.startTranslate),s.threshold>0)if(Math.abs(m)>s.threshold||n.allowThresholdMove){if(!n.allowThresholdMove){n.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,n.currentTranslate=n.startTranslate,i.diff=r.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY;return}}else{n.currentTranslate=n.startTranslate;return}!s.followFinger||s.cssMode||((s.freeMode&&s.freeMode.enabled&&r.freeMode||s.watchSlidesProgress)&&(r.updateActiveIndex(),r.updateSlidesClasses()),s.freeMode&&s.freeMode.enabled&&r.freeMode&&r.freeMode.onTouchMove(),r.updateProgress(n.currentTranslate),r.setTranslate(n.currentTranslate))}function nL(t){const e=this,r=e.touchEventsData;let n=t;n.originalEvent&&(n=n.originalEvent);let s;if(n.type==="touchend"||n.type==="touchcancel"){if(s=[...n.changedTouches].find(x=>x.identifier===r.touchId),!s||s.identifier!==r.touchId)return}else{if(r.touchId!==null||n.pointerId!==r.pointerId)return;s=n}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(n.type)&&!(["pointercancel","contextmenu"].includes(n.type)&&(e.browser.isSafari||e.browser.isWebView)))return;r.pointerId=null,r.touchId=null;const{params:a,touches:o,rtlTranslate:l,slidesGrid:u,enabled:c}=e;if(!c||!a.simulateTouch&&n.pointerType==="mouse")return;if(r.allowTouchCallbacks&&e.emit("touchEnd",n),r.allowTouchCallbacks=!1,!r.isTouched){r.isMoved&&a.grabCursor&&e.setGrabCursor(!1),r.isMoved=!1,r.startMoving=!1;return}a.grabCursor&&r.isMoved&&r.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);const f=ir(),d=f-r.touchStartTime;if(e.allowClick){const x=n.path||n.composedPath&&n.composedPath();e.updateClickedSlide(x&&x[0]||n.target,x),e.emit("tap click",n),d<300&&f-r.lastClickTime<300&&e.emit("doubleTap doubleClick",n)}if(r.lastClickTime=ir(),Ci(()=>{e.destroyed||(e.allowClick=!0)}),!r.isTouched||!r.isMoved||!e.swipeDirection||o.diff===0&&!r.loopSwapReset||r.currentTranslate===r.startTranslate&&!r.loopSwapReset){r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;return}r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;let p;if(a.followFinger?p=l?e.translate:-e.translate:p=-r.currentTranslate,a.cssMode)return;if(a.freeMode&&a.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:p});return}const m=p>=-e.maxTranslate()&&!e.params.loop;let b=0,v=e.slidesSizesGrid[0];for(let x=0;x=u[x]&&p=u[x])&&(b=x,v=u[u.length-1]-u[u.length-2])}let _=null,E=null;a.rewind&&(e.isBeginning?E=a.virtual&&a.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(_=0));const y=(p-u[b])/v,T=ba.longSwipesMs){if(!a.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(y>=a.longSwipesRatio?e.slideTo(a.rewind&&e.isEnd?_:b+T):e.slideTo(b)),e.swipeDirection==="prev"&&(y>1-a.longSwipesRatio?e.slideTo(b+T):E!==null&&y<0&&Math.abs(y)>a.longSwipesRatio?e.slideTo(E):e.slideTo(b))}else{if(!a.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(n.target===e.navigation.nextEl||n.target===e.navigation.prevEl)?n.target===e.navigation.nextEl?e.slideTo(b+T):e.slideTo(b):(e.swipeDirection==="next"&&e.slideTo(_!==null?_:b+T),e.swipeDirection==="prev"&&e.slideTo(E!==null?E:b))}}function Jb(){const t=this,{params:e,el:r}=t;if(r&&r.offsetWidth===0)return;e.breakpoints&&t.setBreakpoint();const{allowSlideNext:n,allowSlidePrev:s,snapGrid:i}=t,a=t.virtual&&t.params.virtual.enabled;t.allowSlideNext=!0,t.allowSlidePrev=!0,t.updateSize(),t.updateSlides(),t.updateSlidesClasses();const o=a&&e.loop;(e.slidesPerView==="auto"||e.slidesPerView>1)&&t.isEnd&&!t.isBeginning&&!t.params.centeredSlides&&!o?t.slideTo(t.slides.length-1,0,!1,!0):t.params.loop&&!a?t.slideToLoop(t.realIndex,0,!1,!0):t.slideTo(t.activeIndex,0,!1,!0),t.autoplay&&t.autoplay.running&&t.autoplay.paused&&(clearTimeout(t.autoplay.resizeTimeout),t.autoplay.resizeTimeout=setTimeout(()=>{t.autoplay&&t.autoplay.running&&t.autoplay.paused&&t.autoplay.resume()},500)),t.allowSlidePrev=s,t.allowSlideNext=n,t.params.watchOverflow&&i!==t.snapGrid&&t.checkOverflow()}function iL(t){const e=this;e.enabled&&(e.allowClick||(e.params.preventClicks&&t.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(t.stopPropagation(),t.stopImmediatePropagation())))}function sL(){const t=this,{wrapperEl:e,rtlTranslate:r,enabled:n}=t;if(!n)return;t.previousTranslate=t.translate,t.isHorizontal()?t.translate=-e.scrollLeft:t.translate=-e.scrollTop,t.translate===0&&(t.translate=0),t.updateActiveIndex(),t.updateSlidesClasses();let s;const i=t.maxTranslate()-t.minTranslate();i===0?s=0:s=(t.translate-t.minTranslate())/i,s!==t.progress&&t.updateProgress(r?-t.translate:t.translate),t.emit("setTranslate",t.translate,!1)}function oL(t){const e=this;tl(e,t.target),!(e.params.cssMode||e.params.slidesPerView!=="auto"&&!e.params.autoHeight)&&e.update()}function aL(){const t=this;t.documentTouchHandlerProceeded||(t.documentTouchHandlerProceeded=!0,t.params.touchReleaseOnEdges&&(t.el.style.touchAction="auto"))}const Yv=(t,e)=>{const r=pt(),{params:n,el:s,wrapperEl:i,device:a}=t,o=!!n.nested,l=e==="on"?"addEventListener":"removeEventListener",u=e;!s||typeof s=="string"||(r[l]("touchstart",t.onDocumentTouchStart,{passive:!1,capture:o}),s[l]("touchstart",t.onTouchStart,{passive:!1}),s[l]("pointerdown",t.onTouchStart,{passive:!1}),r[l]("touchmove",t.onTouchMove,{passive:!1,capture:o}),r[l]("pointermove",t.onTouchMove,{passive:!1,capture:o}),r[l]("touchend",t.onTouchEnd,{passive:!0}),r[l]("pointerup",t.onTouchEnd,{passive:!0}),r[l]("pointercancel",t.onTouchEnd,{passive:!0}),r[l]("touchcancel",t.onTouchEnd,{passive:!0}),r[l]("pointerout",t.onTouchEnd,{passive:!0}),r[l]("pointerleave",t.onTouchEnd,{passive:!0}),r[l]("contextmenu",t.onTouchEnd,{passive:!0}),(n.preventClicks||n.preventClicksPropagation)&&s[l]("click",t.onClick,!0),n.cssMode&&i[l]("scroll",t.onScroll),n.updateOnWindowResize?t[u](a.ios||a.android?"resize orientationchange observerUpdate":"resize observerUpdate",Jb,!0):t[u]("observerUpdate",Jb,!0),s[l]("load",t.onLoad,{capture:!0}))};function lL(){const t=this,{params:e}=t;t.onTouchStart=tL.bind(t),t.onTouchMove=rL.bind(t),t.onTouchEnd=nL.bind(t),t.onDocumentTouchStart=aL.bind(t),e.cssMode&&(t.onScroll=sL.bind(t)),t.onClick=iL.bind(t),t.onLoad=oL.bind(t),Yv(t,"on")}function uL(){Yv(this,"off")}var cL={attachEvents:lL,detachEvents:uL};const Zb=(t,e)=>t.grid&&e.grid&&e.grid.rows>1;function fL(){const t=this,{realIndex:e,initialized:r,params:n,el:s}=t,i=n.breakpoints;if(!i||i&&Object.keys(i).length===0)return;const a=pt(),o=n.breakpointsBase==="window"||!n.breakpointsBase?n.breakpointsBase:"container",l=["window","container"].includes(n.breakpointsBase)||!n.breakpointsBase?t.el:a.querySelector(n.breakpointsBase),u=t.getBreakpoint(i,o,l);if(!u||t.currentBreakpoint===u)return;const f=(u in i?i[u]:void 0)||t.originalParams,d=Zb(t,n),p=Zb(t,f),m=t.params.grabCursor,b=f.grabCursor,v=n.enabled;d&&!p?(s.classList.remove(`${n.containerModifierClass}grid`,`${n.containerModifierClass}grid-column`),t.emitContainerClasses()):!d&&p&&(s.classList.add(`${n.containerModifierClass}grid`),(f.grid.fill&&f.grid.fill==="column"||!f.grid.fill&&n.grid.fill==="column")&&s.classList.add(`${n.containerModifierClass}grid-column`),t.emitContainerClasses()),m&&!b?t.unsetGrabCursor():!m&&b&&t.setGrabCursor(),["navigation","pagination","scrollbar"].forEach(A=>{if(typeof f[A]>"u")return;const P=n[A]&&n[A].enabled,L=f[A]&&f[A].enabled;P&&!L&&t[A].disable(),!P&&L&&t[A].enable()});const _=f.direction&&f.direction!==n.direction,E=n.loop&&(f.slidesPerView!==n.slidesPerView||_),y=n.loop;_&&r&&t.changeDirection(),Yt(t.params,f);const T=t.params.enabled,x=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),v&&!T?t.disable():!v&&T&&t.enable(),t.currentBreakpoint=u,t.emit("_beforeBreakpoint",f),r&&(E?(t.loopDestroy(),t.loopCreate(e),t.updateSlides()):!y&&x?(t.loopCreate(e),t.updateSlides()):y&&!x&&t.loopDestroy()),t.emit("breakpoint",f)}function dL(t,e,r){if(e===void 0&&(e="window"),!t||e==="container"&&!r)return;let n=!1;const s=rt(),i=e==="window"?s.innerHeight:r.clientHeight,a=Object.keys(t).map(o=>{if(typeof o=="string"&&o.indexOf("@")===0){const l=parseFloat(o.substr(1));return{value:i*l,point:o}}return{value:o,point:o}});a.sort((o,l)=>parseInt(o.value,10)-parseInt(l.value,10));for(let o=0;o{typeof n=="object"?Object.keys(n).forEach(s=>{n[s]&&r.push(e+s)}):typeof n=="string"&&r.push(e+n)}),r}function gL(){const t=this,{classNames:e,params:r,rtl:n,el:s,device:i}=t,a=pL(["initialized",r.direction,{"free-mode":t.params.freeMode&&r.freeMode.enabled},{autoheight:r.autoHeight},{rtl:n},{grid:r.grid&&r.grid.rows>1},{"grid-column":r.grid&&r.grid.rows>1&&r.grid.fill==="column"},{android:i.android},{ios:i.ios},{"css-mode":r.cssMode},{centered:r.cssMode&&r.centeredSlides},{"watch-progress":r.watchSlidesProgress}],r.containerModifierClass);e.push(...a),s.classList.add(...e),t.emitContainerClasses()}function mL(){const t=this,{el:e,classNames:r}=t;!e||typeof e=="string"||(e.classList.remove(...r),t.emitContainerClasses())}var bL={addClasses:gL,removeClasses:mL};function yL(){const t=this,{isLocked:e,params:r}=t,{slidesOffsetBefore:n}=r;if(n){const s=t.slides.length-1,i=t.slidesGrid[s]+t.slidesSizesGrid[s]+n*2;t.isLocked=t.size>i}else t.isLocked=t.snapGrid.length===1;r.allowSlideNext===!0&&(t.allowSlideNext=!t.isLocked),r.allowSlidePrev===!0&&(t.allowSlidePrev=!t.isLocked),e&&e!==t.isLocked&&(t.isEnd=!1),e!==t.isLocked&&t.emit(t.isLocked?"lock":"unlock")}var wL={checkOverflow:yL},ch={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function _L(t,e){return function(n){n===void 0&&(n={});const s=Object.keys(n)[0],i=n[s];if(typeof i!="object"||i===null){Yt(e,n);return}if(t[s]===!0&&(t[s]={enabled:!0}),s==="navigation"&&t[s]&&t[s].enabled&&!t[s].prevEl&&!t[s].nextEl&&(t[s].auto=!0),["pagination","scrollbar"].indexOf(s)>=0&&t[s]&&t[s].enabled&&!t[s].el&&(t[s].auto=!0),!(s in t&&"enabled"in i)){Yt(e,n);return}typeof t[s]=="object"&&!("enabled"in t[s])&&(t[s].enabled=!0),t[s]||(t[s]={enabled:!1}),Yt(e,n)}}const qc={eventsEmitter:bR,update:IR,translate:LR,transition:$R,slide:qR,loop:XR,grabCursor:ZR,events:cL,breakpoints:hL,checkOverflow:wL,classes:bL},Yc={};class qt{constructor(){let e,r;for(var n=arguments.length,s=new Array(n),i=0;i1){const c=[];return a.querySelectorAll(r.el).forEach(f=>{const d=Yt({},r,{el:f});c.push(new qt(d))}),c}const o=this;o.__swiper__=!0,o.support=zv(),o.device=Vv({userAgent:r.userAgent}),o.browser=pR(),o.eventsListeners={},o.eventsAnyListeners=[],o.modules=[...o.__modules__],r.modules&&Array.isArray(r.modules)&&o.modules.push(...r.modules);const l={};o.modules.forEach(c=>{c({params:r,swiper:o,extendParams:_L(r,l),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:o.emit.bind(o)})});const u=Yt({},ch,l);return o.params=Yt({},u,Yc,r),o.originalParams=Yt({},o.params),o.passedParams=Yt({},r),o.params&&o.params.on&&Object.keys(o.params.on).forEach(c=>{o.on(c,o.params.on[c])}),o.params&&o.params.onAny&&o.onAny(o.params.onAny),Object.assign(o,{enabled:o.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return o.params.direction==="horizontal"},isVertical(){return o.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.emit("_swiper"),o.params.init&&o.init(),o}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:r,params:n}=this,s=yt(r,`.${n.slideClass}, swiper-slide`),i=Bo(s[0]);return Bo(e)-i}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find(r=>r.getAttribute("data-swiper-slide-index")*1===e))}recalcSlides(){const e=this,{slidesEl:r,params:n}=e;e.slides=yt(r,`.${n.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,r){const n=this;e=Math.min(Math.max(e,0),1);const s=n.minTranslate(),a=(n.maxTranslate()-s)*e+s;n.translateTo(a,typeof r>"u"?0:r),n.updateActiveIndex(),n.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=e.el.className.split(" ").filter(n=>n.indexOf("swiper")===0||n.indexOf(e.params.containerModifierClass)===0);e.emit("_containerClasses",r.join(" "))}getSlideClasses(e){const r=this;return r.destroyed?"":e.className.split(" ").filter(n=>n.indexOf("swiper-slide")===0||n.indexOf(r.params.slideClass)===0).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=[];e.slides.forEach(n=>{const s=e.getSlideClasses(n);r.push({slideEl:n,classNames:s}),e.emit("_slideClass",n,s)}),e.emit("_slideClasses",r)}slidesPerViewDynamic(e,r){e===void 0&&(e="current"),r===void 0&&(r=!1);const n=this,{params:s,slides:i,slidesGrid:a,slidesSizesGrid:o,size:l,activeIndex:u}=n;let c=1;if(typeof s.slidesPerView=="number")return s.slidesPerView;if(s.centeredSlides){let f=i[u]?Math.ceil(i[u].swiperSlideSize):0,d;for(let p=u+1;pl&&(d=!0));for(let p=u-1;p>=0;p-=1)i[p]&&!d&&(f+=i[p].swiperSlideSize,c+=1,f>l&&(d=!0))}else if(e==="current")for(let f=u+1;f=0;f-=1)a[u]-a[f]{a.complete&&tl(e,a)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function s(){const a=e.rtlTranslate?e.translate*-1:e.translate,o=Math.min(Math.max(a,e.maxTranslate()),e.minTranslate());e.setTranslate(o),e.updateActiveIndex(),e.updateSlidesClasses()}let i;if(n.freeMode&&n.freeMode.enabled&&!n.cssMode)s(),n.autoHeight&&e.updateAutoHeight();else{if((n.slidesPerView==="auto"||n.slidesPerView>1)&&e.isEnd&&!n.centeredSlides){const a=e.virtual&&n.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(a.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||s()}n.watchOverflow&&r!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,r){r===void 0&&(r=!0);const n=this,s=n.params.direction;return e||(e=s==="horizontal"?"vertical":"horizontal"),e===s||e!=="horizontal"&&e!=="vertical"||(n.el.classList.remove(`${n.params.containerModifierClass}${s}`),n.el.classList.add(`${n.params.containerModifierClass}${e}`),n.emitContainerClasses(),n.params.direction=e,n.slides.forEach(i=>{e==="vertical"?i.style.width="":i.style.height=""}),n.emit("changeDirection"),r&&n.update()),n}changeLanguageDirection(e){const r=this;r.rtl&&e==="rtl"||!r.rtl&&e==="ltr"||(r.rtl=e==="rtl",r.rtlTranslate=r.params.direction==="horizontal"&&r.rtl,r.rtl?(r.el.classList.add(`${r.params.containerModifierClass}rtl`),r.el.dir="rtl"):(r.el.classList.remove(`${r.params.containerModifierClass}rtl`),r.el.dir="ltr"),r.update())}mount(e){const r=this;if(r.mounted)return!0;let n=e||r.params.el;if(typeof n=="string"&&(n=document.querySelector(n)),!n)return!1;n.swiper=r,n.parentNode&&n.parentNode.host&&n.parentNode.host.nodeName===r.params.swiperElementNodeName.toUpperCase()&&(r.isElement=!0);const s=()=>`.${(r.params.wrapperClass||"").trim().split(" ").join(".")}`;let a=n&&n.shadowRoot&&n.shadowRoot.querySelector?n.shadowRoot.querySelector(s()):yt(n,s())[0];return!a&&r.params.createElements&&(a=Kt("div",r.params.wrapperClass),n.append(a),yt(n,`.${r.params.slideClass}`).forEach(o=>{a.append(o)})),Object.assign(r,{el:n,wrapperEl:a,slidesEl:r.isElement&&!n.parentNode.host.slideSlots?n.parentNode.host:a,hostEl:r.isElement?n.parentNode.host:n,mounted:!0,rtl:n.dir.toLowerCase()==="rtl"||Rn(n,"direction")==="rtl",rtlTranslate:r.params.direction==="horizontal"&&(n.dir.toLowerCase()==="rtl"||Rn(n,"direction")==="rtl"),wrongRTL:Rn(a,"display")==="-webkit-box"}),!0}init(e){const r=this;if(r.initialized||r.mount(e)===!1)return r;r.emit("beforeInit"),r.params.breakpoints&&r.setBreakpoint(),r.addClasses(),r.updateSize(),r.updateSlides(),r.params.watchOverflow&&r.checkOverflow(),r.params.grabCursor&&r.enabled&&r.setGrabCursor(),r.params.loop&&r.virtual&&r.params.virtual.enabled?r.slideTo(r.params.initialSlide+r.virtual.slidesBefore,0,r.params.runCallbacksOnInit,!1,!0):r.slideTo(r.params.initialSlide,0,r.params.runCallbacksOnInit,!1,!0),r.params.loop&&r.loopCreate(),r.attachEvents();const s=[...r.el.querySelectorAll('[loading="lazy"]')];return r.isElement&&s.push(...r.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach(i=>{i.complete?tl(r,i):i.addEventListener("load",a=>{tl(r,a.target)})}),uh(r),r.initialized=!0,uh(r),r.emit("init"),r.emit("afterInit"),r}destroy(e,r){e===void 0&&(e=!0),r===void 0&&(r=!0);const n=this,{params:s,el:i,wrapperEl:a,slides:o}=n;return typeof n.params>"u"||n.destroyed||(n.emit("beforeDestroy"),n.initialized=!1,n.detachEvents(),s.loop&&n.loopDestroy(),r&&(n.removeClasses(),i&&typeof i!="string"&&i.removeAttribute("style"),a&&a.removeAttribute("style"),o&&o.length&&o.forEach(l=>{l.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass),l.removeAttribute("style"),l.removeAttribute("data-swiper-slide-index")})),n.emit("destroy"),Object.keys(n.eventsListeners).forEach(l=>{n.off(l)}),e!==!1&&(n.el&&typeof n.el!="string"&&(n.el.swiper=null),iR(n)),n.destroyed=!0),null}static extendDefaults(e){Yt(Yc,e)}static get extendedDefaults(){return Yc}static get defaults(){return ch}static installModule(e){qt.prototype.__modules__||(qt.prototype.__modules__=[]);const r=qt.prototype.__modules__;typeof e=="function"&&r.indexOf(e)<0&&r.push(e)}static use(e){return Array.isArray(e)?(e.forEach(r=>qt.installModule(r)),qt):(qt.installModule(e),qt)}}Object.keys(qc).forEach(t=>{Object.keys(qc[t]).forEach(e=>{qt.prototype[e]=qc[t][e]})});qt.use([gR,mR]);var Rt="top",Qt="bottom",Jt="right",Lt="left",hu="auto",Ls=[Rt,Qt,Jt,Lt],Ii="start",ws="end",Gv="clippingParents",Sp="viewport",Qi="popper",Kv="reference",fh=Ls.reduce(function(t,e){return t.concat([e+"-"+Ii,e+"-"+ws])},[]),Tp=[].concat(Ls,[hu]).reduce(function(t,e){return t.concat([e,e+"-"+Ii,e+"-"+ws])},[]),Xv="beforeRead",Qv="read",Jv="afterRead",Zv="beforeMain",eE="main",tE="afterMain",rE="beforeWrite",nE="write",iE="afterWrite",sE=[Xv,Qv,Jv,Zv,eE,tE,rE,nE,iE];function Dr(t){return t?(t.nodeName||"").toLowerCase():null}function Zt(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Mi(t){var e=Zt(t).Element;return t instanceof e||t instanceof Element}function ar(t){var e=Zt(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function xp(t){if(typeof ShadowRoot>"u")return!1;var e=Zt(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function vL(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},s=e.attributes[r]||{},i=e.elements[r];!ar(i)||!Dr(i)||(Object.assign(i.style,n),Object.keys(s).forEach(function(a){var o=s[a];o===!1?i.removeAttribute(a):i.setAttribute(a,o===!0?"":o)}))})}function EL(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var s=e.elements[n],i=e.attributes[n]||{},a=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]),o=a.reduce(function(l,u){return l[u]="",l},{});!ar(s)||!Dr(s)||(Object.assign(s.style,o),Object.keys(i).forEach(function(l){s.removeAttribute(l)}))})}}const Ap={name:"applyStyles",enabled:!0,phase:"write",fn:vL,effect:EL,requires:["computeStyles"]};function Rr(t){return t.split("-")[0]}var Ei=Math.max,Nl=Math.min,_s=Math.round;function dh(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function oE(){return!/^((?!chrome|android).)*safari/i.test(dh())}function vs(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var n=t.getBoundingClientRect(),s=1,i=1;e&&ar(t)&&(s=t.offsetWidth>0&&_s(n.width)/t.offsetWidth||1,i=t.offsetHeight>0&&_s(n.height)/t.offsetHeight||1);var a=Mi(t)?Zt(t):window,o=a.visualViewport,l=!oE()&&r,u=(n.left+(l&&o?o.offsetLeft:0))/s,c=(n.top+(l&&o?o.offsetTop:0))/i,f=n.width/s,d=n.height/i;return{width:f,height:d,top:c,right:u+f,bottom:c+d,left:u,x:u,y:c}}function Cp(t){var e=vs(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function aE(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&xp(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function gn(t){return Zt(t).getComputedStyle(t)}function SL(t){return["table","td","th"].indexOf(Dr(t))>=0}function Hn(t){return((Mi(t)?t.ownerDocument:t.document)||window.document).documentElement}function pu(t){return Dr(t)==="html"?t:t.assignedSlot||t.parentNode||(xp(t)?t.host:null)||Hn(t)}function ey(t){return!ar(t)||gn(t).position==="fixed"?null:t.offsetParent}function TL(t){var e=/firefox/i.test(dh()),r=/Trident/i.test(dh());if(r&&ar(t)){var n=gn(t);if(n.position==="fixed")return null}var s=pu(t);for(xp(s)&&(s=s.host);ar(s)&&["html","body"].indexOf(Dr(s))<0;){var i=gn(s);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return s;s=s.parentNode}return null}function Go(t){for(var e=Zt(t),r=ey(t);r&&SL(r)&&gn(r).position==="static";)r=ey(r);return r&&(Dr(r)==="html"||Dr(r)==="body"&&gn(r).position==="static")?e:r||TL(t)||e}function Ip(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function To(t,e,r){return Ei(t,Nl(e,r))}function xL(t,e,r){var n=To(t,e,r);return n>r?r:n}function lE(){return{top:0,right:0,bottom:0,left:0}}function uE(t){return Object.assign({},lE(),t)}function cE(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}var AL=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,uE(typeof e!="number"?e:cE(e,Ls))};function CL(t){var e,r=t.state,n=t.name,s=t.options,i=r.elements.arrow,a=r.modifiersData.popperOffsets,o=Rr(r.placement),l=Ip(o),u=[Lt,Jt].indexOf(o)>=0,c=u?"height":"width";if(!(!i||!a)){var f=AL(s.padding,r),d=Cp(i),p=l==="y"?Rt:Lt,m=l==="y"?Qt:Jt,b=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],v=a[l]-r.rects.reference[l],_=Go(i),E=_?l==="y"?_.clientHeight||0:_.clientWidth||0:0,y=b/2-v/2,T=f[p],x=E-d[c]-f[m],A=E/2-d[c]/2+y,P=To(T,A,x),L=l;r.modifiersData[n]=(e={},e[L]=P,e.centerOffset=P-A,e)}}function IL(t){var e=t.state,r=t.options,n=r.element,s=n===void 0?"[data-popper-arrow]":n;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||aE(e.elements.popper,s)&&(e.elements.arrow=s))}const fE={name:"arrow",enabled:!0,phase:"main",fn:CL,effect:IL,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Es(t){return t.split("-")[1]}var ML={top:"auto",right:"auto",bottom:"auto",left:"auto"};function OL(t,e){var r=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:_s(r*s)/s||0,y:_s(n*s)/s||0}}function ty(t){var e,r=t.popper,n=t.popperRect,s=t.placement,i=t.variation,a=t.offsets,o=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,f=t.isFixed,d=a.x,p=d===void 0?0:d,m=a.y,b=m===void 0?0:m,v=typeof c=="function"?c({x:p,y:b}):{x:p,y:b};p=v.x,b=v.y;var _=a.hasOwnProperty("x"),E=a.hasOwnProperty("y"),y=Lt,T=Rt,x=window;if(u){var A=Go(r),P="clientHeight",L="clientWidth";if(A===Zt(r)&&(A=Hn(r),gn(A).position!=="static"&&o==="absolute"&&(P="scrollHeight",L="scrollWidth")),A=A,s===Rt||(s===Lt||s===Jt)&&i===ws){T=Qt;var W=f&&A===x&&x.visualViewport?x.visualViewport.height:A[P];b-=W-n.height,b*=l?1:-1}if(s===Lt||(s===Rt||s===Qt)&&i===ws){y=Jt;var U=f&&A===x&&x.visualViewport?x.visualViewport.width:A[L];p-=U-n.width,p*=l?1:-1}}var H=Object.assign({position:o},u&&ML),C=c===!0?OL({x:p,y:b},Zt(r)):{x:p,y:b};if(p=C.x,b=C.y,l){var I;return Object.assign({},H,(I={},I[T]=E?"0":"",I[y]=_?"0":"",I.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+b+"px)":"translate3d("+p+"px, "+b+"px, 0)",I))}return Object.assign({},H,(e={},e[T]=E?b+"px":"",e[y]=_?p+"px":"",e.transform="",e))}function PL(t){var e=t.state,r=t.options,n=r.gpuAcceleration,s=n===void 0?!0:n,i=r.adaptive,a=i===void 0?!0:i,o=r.roundOffsets,l=o===void 0?!0:o,u={placement:Rr(e.placement),variation:Es(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ty(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ty(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Mp={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:PL,data:{}};var xa={passive:!0};function kL(t){var e=t.state,r=t.instance,n=t.options,s=n.scroll,i=s===void 0?!0:s,a=n.resize,o=a===void 0?!0:a,l=Zt(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&u.forEach(function(c){c.addEventListener("scroll",r.update,xa)}),o&&l.addEventListener("resize",r.update,xa),function(){i&&u.forEach(function(c){c.removeEventListener("scroll",r.update,xa)}),o&&l.removeEventListener("resize",r.update,xa)}}const Op={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:kL,data:{}};var RL={left:"right",right:"left",bottom:"top",top:"bottom"};function rl(t){return t.replace(/left|right|bottom|top/g,function(e){return RL[e]})}var LL={start:"end",end:"start"};function ry(t){return t.replace(/start|end/g,function(e){return LL[e]})}function Pp(t){var e=Zt(t),r=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:r,scrollTop:n}}function kp(t){return vs(Hn(t)).left+Pp(t).scrollLeft}function NL(t,e){var r=Zt(t),n=Hn(t),s=r.visualViewport,i=n.clientWidth,a=n.clientHeight,o=0,l=0;if(s){i=s.width,a=s.height;var u=oE();(u||!u&&e==="fixed")&&(o=s.offsetLeft,l=s.offsetTop)}return{width:i,height:a,x:o+kp(t),y:l}}function DL(t){var e,r=Hn(t),n=Pp(t),s=(e=t.ownerDocument)==null?void 0:e.body,i=Ei(r.scrollWidth,r.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),a=Ei(r.scrollHeight,r.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),o=-n.scrollLeft+kp(t),l=-n.scrollTop;return gn(s||r).direction==="rtl"&&(o+=Ei(r.clientWidth,s?s.clientWidth:0)-i),{width:i,height:a,x:o,y:l}}function Rp(t){var e=gn(t),r=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+s+n)}function dE(t){return["html","body","#document"].indexOf(Dr(t))>=0?t.ownerDocument.body:ar(t)&&Rp(t)?t:dE(pu(t))}function xo(t,e){var r;e===void 0&&(e=[]);var n=dE(t),s=n===((r=t.ownerDocument)==null?void 0:r.body),i=Zt(n),a=s?[i].concat(i.visualViewport||[],Rp(n)?n:[]):n,o=e.concat(a);return s?o:o.concat(xo(pu(a)))}function hh(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function BL(t,e){var r=vs(t,!1,e==="fixed");return r.top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r}function ny(t,e,r){return e===Sp?hh(NL(t,r)):Mi(e)?BL(e,r):hh(DL(Hn(t)))}function $L(t){var e=xo(pu(t)),r=["absolute","fixed"].indexOf(gn(t).position)>=0,n=r&&ar(t)?Go(t):t;return Mi(n)?e.filter(function(s){return Mi(s)&&aE(s,n)&&Dr(s)!=="body"}):[]}function FL(t,e,r,n){var s=e==="clippingParents"?$L(t):[].concat(e),i=[].concat(s,[r]),a=i[0],o=i.reduce(function(l,u){var c=ny(t,u,n);return l.top=Ei(c.top,l.top),l.right=Nl(c.right,l.right),l.bottom=Nl(c.bottom,l.bottom),l.left=Ei(c.left,l.left),l},ny(t,a,n));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function hE(t){var e=t.reference,r=t.element,n=t.placement,s=n?Rr(n):null,i=n?Es(n):null,a=e.x+e.width/2-r.width/2,o=e.y+e.height/2-r.height/2,l;switch(s){case Rt:l={x:a,y:e.y-r.height};break;case Qt:l={x:a,y:e.y+e.height};break;case Jt:l={x:e.x+e.width,y:o};break;case Lt:l={x:e.x-r.width,y:o};break;default:l={x:e.x,y:e.y}}var u=s?Ip(s):null;if(u!=null){var c=u==="y"?"height":"width";switch(i){case Ii:l[u]=l[u]-(e[c]/2-r[c]/2);break;case ws:l[u]=l[u]+(e[c]/2-r[c]/2);break}}return l}function Ss(t,e){e===void 0&&(e={});var r=e,n=r.placement,s=n===void 0?t.placement:n,i=r.strategy,a=i===void 0?t.strategy:i,o=r.boundary,l=o===void 0?Gv:o,u=r.rootBoundary,c=u===void 0?Sp:u,f=r.elementContext,d=f===void 0?Qi:f,p=r.altBoundary,m=p===void 0?!1:p,b=r.padding,v=b===void 0?0:b,_=uE(typeof v!="number"?v:cE(v,Ls)),E=d===Qi?Kv:Qi,y=t.rects.popper,T=t.elements[m?E:d],x=FL(Mi(T)?T:T.contextElement||Hn(t.elements.popper),l,c,a),A=vs(t.elements.reference),P=hE({reference:A,element:y,strategy:"absolute",placement:s}),L=hh(Object.assign({},y,P)),W=d===Qi?L:A,U={top:x.top-W.top+_.top,bottom:W.bottom-x.bottom+_.bottom,left:x.left-W.left+_.left,right:W.right-x.right+_.right},H=t.modifiersData.offset;if(d===Qi&&H){var C=H[s];Object.keys(U).forEach(function(I){var N=[Jt,Qt].indexOf(I)>=0?1:-1,J=[Rt,Qt].indexOf(I)>=0?"y":"x";U[I]+=C[J]*N})}return U}function UL(t,e){e===void 0&&(e={});var r=e,n=r.placement,s=r.boundary,i=r.rootBoundary,a=r.padding,o=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Tp:l,c=Es(n),f=c?o?fh:fh.filter(function(m){return Es(m)===c}):Ls,d=f.filter(function(m){return u.indexOf(m)>=0});d.length===0&&(d=f);var p=d.reduce(function(m,b){return m[b]=Ss(t,{placement:b,boundary:s,rootBoundary:i,padding:a})[Rr(b)],m},{});return Object.keys(p).sort(function(m,b){return p[m]-p[b]})}function jL(t){if(Rr(t)===hu)return[];var e=rl(t);return[ry(t),e,ry(e)]}function WL(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=r.mainAxis,i=s===void 0?!0:s,a=r.altAxis,o=a===void 0?!0:a,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,p=r.flipVariations,m=p===void 0?!0:p,b=r.allowedAutoPlacements,v=e.options.placement,_=Rr(v),E=_===v,y=l||(E||!m?[rl(v)]:jL(v)),T=[v].concat(y).reduce(function(me,ee){return me.concat(Rr(ee)===hu?UL(e,{placement:ee,boundary:c,rootBoundary:f,padding:u,flipVariations:m,allowedAutoPlacements:b}):ee)},[]),x=e.rects.reference,A=e.rects.popper,P=new Map,L=!0,W=T[0],U=0;U=0,J=N?"width":"height",ne=Ss(e,{placement:H,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),te=N?I?Jt:Lt:I?Qt:Rt;x[J]>A[J]&&(te=rl(te));var B=rl(te),ae=[];if(i&&ae.push(ne[C]<=0),o&&ae.push(ne[te]<=0,ne[B]<=0),ae.every(function(me){return me})){W=H,L=!1;break}P.set(H,ae)}if(L)for(var Y=m?3:1,ce=function(ee){var K=T.find(function(j){var D=P.get(j);if(D)return D.slice(0,ee).every(function(X){return X})});if(K)return W=K,"break"},$=Y;$>0;$--){var ue=ce($);if(ue==="break")break}e.placement!==W&&(e.modifiersData[n]._skip=!0,e.placement=W,e.reset=!0)}}const pE={name:"flip",enabled:!0,phase:"main",fn:WL,requiresIfExists:["offset"],data:{_skip:!1}};function iy(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function sy(t){return[Rt,Jt,Qt,Lt].some(function(e){return t[e]>=0})}function HL(t){var e=t.state,r=t.name,n=e.rects.reference,s=e.rects.popper,i=e.modifiersData.preventOverflow,a=Ss(e,{elementContext:"reference"}),o=Ss(e,{altBoundary:!0}),l=iy(a,n),u=iy(o,s,i),c=sy(l),f=sy(u);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}const gE={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:HL};function zL(t,e,r){var n=Rr(t),s=[Lt,Rt].indexOf(n)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,a=i[0],o=i[1];return a=a||0,o=(o||0)*s,[Lt,Jt].indexOf(n)>=0?{x:o,y:a}:{x:a,y:o}}function VL(t){var e=t.state,r=t.options,n=t.name,s=r.offset,i=s===void 0?[0,0]:s,a=Tp.reduce(function(c,f){return c[f]=zL(f,e.rects,i),c},{}),o=a[e.placement],l=o.x,u=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[n]=a}const mE={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:VL};function qL(t){var e=t.state,r=t.name;e.modifiersData[r]=hE({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const Lp={name:"popperOffsets",enabled:!0,phase:"read",fn:qL,data:{}};function YL(t){return t==="x"?"y":"x"}function GL(t){var e=t.state,r=t.options,n=t.name,s=r.mainAxis,i=s===void 0?!0:s,a=r.altAxis,o=a===void 0?!1:a,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,p=d===void 0?!0:d,m=r.tetherOffset,b=m===void 0?0:m,v=Ss(e,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),_=Rr(e.placement),E=Es(e.placement),y=!E,T=Ip(_),x=YL(T),A=e.modifiersData.popperOffsets,P=e.rects.reference,L=e.rects.popper,W=typeof b=="function"?b(Object.assign({},e.rects,{placement:e.placement})):b,U=typeof W=="number"?{mainAxis:W,altAxis:W}:Object.assign({mainAxis:0,altAxis:0},W),H=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,C={x:0,y:0};if(A){if(i){var I,N=T==="y"?Rt:Lt,J=T==="y"?Qt:Jt,ne=T==="y"?"height":"width",te=A[T],B=te+v[N],ae=te-v[J],Y=p?-L[ne]/2:0,ce=E===Ii?P[ne]:L[ne],$=E===Ii?-L[ne]:-P[ne],ue=e.elements.arrow,me=p&&ue?Cp(ue):{width:0,height:0},ee=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:lE(),K=ee[N],j=ee[J],D=To(0,P[ne],me[ne]),X=y?P[ne]/2-Y-D-K-U.mainAxis:ce-D-K-U.mainAxis,le=y?-P[ne]/2+Y+D+j+U.mainAxis:$+D+j+U.mainAxis,se=e.elements.arrow&&Go(e.elements.arrow),M=se?T==="y"?se.clientTop||0:se.clientLeft||0:0,O=(I=H==null?void 0:H[T])!=null?I:0,F=te+X-O-M,R=te+le-O,V=To(p?Nl(B,F):B,te,p?Ei(ae,R):ae);A[T]=V,C[T]=V-te}if(o){var q,oe=T==="x"?Rt:Lt,Q=T==="x"?Qt:Jt,G=A[x],re=x==="y"?"height":"width",z=G+v[oe],ie=G-v[Q],he=[Rt,Lt].indexOf(_)!==-1,be=(q=H==null?void 0:H[x])!=null?q:0,S=he?z:G-P[re]-L[re]-be+U.altAxis,g=he?G+P[re]+L[re]-be-U.altAxis:ie,h=p&&he?xL(S,G,g):To(p?S:z,G,p?g:ie);A[x]=h,C[x]=h-G}e.modifiersData[n]=C}}const bE={name:"preventOverflow",enabled:!0,phase:"main",fn:GL,requiresIfExists:["offset"]};function KL(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function XL(t){return t===Zt(t)||!ar(t)?Pp(t):KL(t)}function QL(t){var e=t.getBoundingClientRect(),r=_s(e.width)/t.offsetWidth||1,n=_s(e.height)/t.offsetHeight||1;return r!==1||n!==1}function JL(t,e,r){r===void 0&&(r=!1);var n=ar(e),s=ar(e)&&QL(e),i=Hn(e),a=vs(t,s,r),o={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Dr(e)!=="body"||Rp(i))&&(o=XL(e)),ar(e)?(l=vs(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):i&&(l.x=kp(i))),{x:a.left+o.scrollLeft-l.x,y:a.top+o.scrollTop-l.y,width:a.width,height:a.height}}function ZL(t){var e=new Map,r=new Set,n=[];t.forEach(function(i){e.set(i.name,i)});function s(i){r.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(o){if(!r.has(o)){var l=e.get(o);l&&s(l)}}),n.push(i)}return t.forEach(function(i){r.has(i.name)||s(i)}),n}function eN(t){var e=ZL(t);return sE.reduce(function(r,n){return r.concat(e.filter(function(s){return s.phase===n}))},[])}function tN(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function rN(t){var e=t.reduce(function(r,n){var s=r[n.name];return r[n.name]=s?Object.assign({},s,n,{options:Object.assign({},s.options,n.options),data:Object.assign({},s.data,n.data)}):n,r},{});return Object.keys(e).map(function(r){return e[r]})}var oy={placement:"bottom",modifiers:[],strategy:"absolute"};function ay(){for(var t=arguments.length,e=new Array(t),r=0;r(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,(e,r)=>`#${CSS.escape(r)}`)),t),uN=t=>t==null?`${t}`:Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase(),cN=t=>{do t+=Math.floor(Math.random()*aN);while(document.getElementById(t));return t},fN=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:r}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(r);return!n&&!s?0:(e=e.split(",")[0],r=r.split(",")[0],(Number.parseFloat(e)+Number.parseFloat(r))*lN)},_E=t=>{t.dispatchEvent(new Event(ph))},sn=t=>!t||typeof t!="object"?!1:(typeof t.jquery<"u"&&(t=t[0]),typeof t.nodeType<"u"),Dn=t=>sn(t)?t.jquery?t[0]:t:typeof t=="string"&&t.length>0?document.querySelector(wE(t)):null,Ns=t=>{if(!sn(t)||t.getClientRects().length===0)return!1;const e=getComputedStyle(t).getPropertyValue("visibility")==="visible",r=t.closest("details:not([open])");if(!r)return e;if(r!==t){const n=t.closest("summary");if(n&&n.parentNode!==r||n===null)return!1}return e},Bn=t=>!t||t.nodeType!==Node.ELEMENT_NODE||t.classList.contains("disabled")?!0:typeof t.disabled<"u"?t.disabled:t.hasAttribute("disabled")&&t.getAttribute("disabled")!=="false",vE=t=>{if(!document.documentElement.attachShadow)return null;if(typeof t.getRootNode=="function"){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?vE(t.parentNode):null},Dl=()=>{},Ko=t=>{t.offsetHeight},EE=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Kc=[],dN=t=>{document.readyState==="loading"?(Kc.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of Kc)e()}),Kc.push(t)):t()},ur=()=>document.documentElement.dir==="rtl",fr=t=>{dN(()=>{const e=EE();if(e){const r=t.NAME,n=e.fn[r];e.fn[r]=t.jQueryInterface,e.fn[r].Constructor=t,e.fn[r].noConflict=()=>(e.fn[r]=n,t.jQueryInterface)}})},$t=(t,e=[],r=t)=>typeof t=="function"?t(...e):r,SE=(t,e,r=!0)=>{if(!r){$t(t);return}const s=fN(e)+5;let i=!1;const a=({target:o})=>{o===e&&(i=!0,e.removeEventListener(ph,a),$t(t))};e.addEventListener(ph,a),setTimeout(()=>{i||_E(e)},s)},Dp=(t,e,r,n)=>{const s=t.length;let i=t.indexOf(e);return i===-1?!r&&n?t[s-1]:t[0]:(i+=r?1:-1,n&&(i=(i+s)%s),t[Math.max(0,Math.min(i,s-1))])},hN=/[^.]*(?=\..*)\.|.*/,pN=/\..*/,gN=/::\d+$/,Xc={};let ly=1;const TE={mouseenter:"mouseover",mouseleave:"mouseout"},mN=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function xE(t,e){return e&&`${e}::${ly++}`||t.uidEvent||ly++}function AE(t){const e=xE(t);return t.uidEvent=e,Xc[e]=Xc[e]||{},Xc[e]}function bN(t,e){return function r(n){return Bp(n,{delegateTarget:t}),r.oneOff&&Se.off(t,n.type,e),e.apply(t,[n])}}function yN(t,e,r){return function n(s){const i=t.querySelectorAll(e);for(let{target:a}=s;a&&a!==this;a=a.parentNode)for(const o of i)if(o===a)return Bp(s,{delegateTarget:a}),n.oneOff&&Se.off(t,s.type,e,r),r.apply(a,[s])}}function CE(t,e,r=null){return Object.values(t).find(n=>n.callable===e&&n.delegationSelector===r)}function IE(t,e,r){const n=typeof e=="string",s=n?r:e||r;let i=ME(t);return mN.has(i)||(i=t),[n,s,i]}function uy(t,e,r,n,s){if(typeof e!="string"||!t)return;let[i,a,o]=IE(e,r,n);e in TE&&(a=(m=>function(b){if(!b.relatedTarget||b.relatedTarget!==b.delegateTarget&&!b.delegateTarget.contains(b.relatedTarget))return m.call(this,b)})(a));const l=AE(t),u=l[o]||(l[o]={}),c=CE(u,a,i?r:null);if(c){c.oneOff=c.oneOff&&s;return}const f=xE(a,e.replace(hN,"")),d=i?yN(t,r,a):bN(t,a);d.delegationSelector=i?r:null,d.callable=a,d.oneOff=s,d.uidEvent=f,u[f]=d,t.addEventListener(o,d,i)}function gh(t,e,r,n,s){const i=CE(e[r],n,s);i&&(t.removeEventListener(r,i,!!s),delete e[r][i.uidEvent])}function wN(t,e,r,n){const s=e[r]||{};for(const[i,a]of Object.entries(s))i.includes(n)&&gh(t,e,r,a.callable,a.delegationSelector)}function ME(t){return t=t.replace(pN,""),TE[t]||t}const Se={on(t,e,r,n){uy(t,e,r,n,!1)},one(t,e,r,n){uy(t,e,r,n,!0)},off(t,e,r,n){if(typeof e!="string"||!t)return;const[s,i,a]=IE(e,r,n),o=a!==e,l=AE(t),u=l[a]||{},c=e.startsWith(".");if(typeof i<"u"){if(!Object.keys(u).length)return;gh(t,l,a,i,s?r:null);return}if(c)for(const f of Object.keys(l))wN(t,l,f,e.slice(1));for(const[f,d]of Object.entries(u)){const p=f.replace(gN,"");(!o||e.includes(p))&&gh(t,l,a,d.callable,d.delegationSelector)}},trigger(t,e,r){if(typeof e!="string"||!t)return null;const n=EE(),s=ME(e),i=e!==s;let a=null,o=!0,l=!0,u=!1;i&&n&&(a=n.Event(e,r),n(t).trigger(a),o=!a.isPropagationStopped(),l=!a.isImmediatePropagationStopped(),u=a.isDefaultPrevented());const c=Bp(new Event(e,{bubbles:o,cancelable:!0}),r);return u&&c.preventDefault(),l&&t.dispatchEvent(c),c.defaultPrevented&&a&&a.preventDefault(),c}};function Bp(t,e={}){for(const[r,n]of Object.entries(e))try{t[r]=n}catch{Object.defineProperty(t,r,{configurable:!0,get(){return n}})}return t}function cy(t){if(t==="true")return!0;if(t==="false")return!1;if(t===Number(t).toString())return Number(t);if(t===""||t==="null")return null;if(typeof t!="string")return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function Qc(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const on={setDataAttribute(t,e,r){t.setAttribute(`data-bs-${Qc(e)}`,r)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${Qc(e)}`)},getDataAttributes(t){if(!t)return{};const e={},r=Object.keys(t.dataset).filter(n=>n.startsWith("bs")&&!n.startsWith("bsConfig"));for(const n of r){let s=n.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=cy(t.dataset[n])}return e},getDataAttribute(t,e){return cy(t.getAttribute(`data-bs-${Qc(e)}`))}};class Xo{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,r){const n=sn(r)?on.getDataAttribute(r,"config"):{};return{...this.constructor.Default,...typeof n=="object"?n:{},...sn(r)?on.getDataAttributes(r):{},...typeof e=="object"?e:{}}}_typeCheckConfig(e,r=this.constructor.DefaultType){for(const[n,s]of Object.entries(r)){const i=e[n],a=sn(i)?"element":uN(i);if(!new RegExp(s).test(a))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}}}const _N="5.3.3";class Er extends Xo{constructor(e,r){super(),e=Dn(e),e&&(this._element=e,this._config=this._getConfig(r),Gc.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Gc.remove(this._element,this.constructor.DATA_KEY),Se.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,r,n=!0){SE(e,r,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Gc.get(Dn(e),this.DATA_KEY)}static getOrCreateInstance(e,r={}){return this.getInstance(e)||new this(e,typeof r=="object"?r:null)}static get VERSION(){return _N}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const Jc=t=>{let e=t.getAttribute("data-bs-target");if(!e||e==="#"){let r=t.getAttribute("href");if(!r||!r.includes("#")&&!r.startsWith("."))return null;r.includes("#")&&!r.startsWith("#")&&(r=`#${r.split("#")[1]}`),e=r&&r!=="#"?r.trim():null}return e?e.split(",").map(r=>wE(r)).join(","):null},Le={find(t,e=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t,e=document.documentElement){return Element.prototype.querySelector.call(e,t)},children(t,e){return[].concat(...t.children).filter(r=>r.matches(e))},parents(t,e){const r=[];let n=t.parentNode.closest(e);for(;n;)r.push(n),n=n.parentNode.closest(e);return r},prev(t,e){let r=t.previousElementSibling;for(;r;){if(r.matches(e))return[r];r=r.previousElementSibling}return[]},next(t,e){let r=t.nextElementSibling;for(;r;){if(r.matches(e))return[r];r=r.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(r=>`${r}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(r=>!Bn(r)&&Ns(r))},getSelectorFromElement(t){const e=Jc(t);return e&&Le.findOne(e)?e:null},getElementFromSelector(t){const e=Jc(t);return e?Le.findOne(e):null},getMultipleElementsFromSelector(t){const e=Jc(t);return e?Le.find(e):[]}},mu=(t,e="hide")=>{const r=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;Se.on(document,r,`[data-bs-dismiss="${n}"]`,function(s){if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),Bn(this))return;const i=Le.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(i)[e]()})},vN="alert",EN="bs.alert",OE=`.${EN}`,SN=`close${OE}`,TN=`closed${OE}`,xN="fade",AN="show";class bu extends Er{static get NAME(){return vN}close(){if(Se.trigger(this._element,SN).defaultPrevented)return;this._element.classList.remove(AN);const r=this._element.classList.contains(xN);this._queueCallback(()=>this._destroyElement(),this._element,r)}_destroyElement(){this._element.remove(),Se.trigger(this._element,TN),this.dispose()}static jQueryInterface(e){return this.each(function(){const r=bu.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}mu(bu,"close");fr(bu);const CN="button",IN="bs.button",MN=`.${IN}`,ON=".data-api",PN="active",fy='[data-bs-toggle="button"]',kN=`click${MN}${ON}`;class yu extends Er{static get NAME(){return CN}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(PN))}static jQueryInterface(e){return this.each(function(){const r=yu.getOrCreateInstance(this);e==="toggle"&&r[e]()})}}Se.on(document,kN,fy,t=>{t.preventDefault();const e=t.target.closest(fy);yu.getOrCreateInstance(e).toggle()});fr(yu);const RN="swipe",Ds=".bs.swipe",LN=`touchstart${Ds}`,NN=`touchmove${Ds}`,DN=`touchend${Ds}`,BN=`pointerdown${Ds}`,$N=`pointerup${Ds}`,FN="touch",UN="pen",jN="pointer-event",WN=40,HN={endCallback:null,leftCallback:null,rightCallback:null},zN={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Bl extends Xo{constructor(e,r){super(),this._element=e,!(!e||!Bl.isSupported())&&(this._config=this._getConfig(r),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return HN}static get DefaultType(){return zN}static get NAME(){return RN}dispose(){Se.off(this._element,Ds)}_start(e){if(!this._supportPointerEvents){this._deltaX=e.touches[0].clientX;return}this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),$t(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=WN)return;const r=e/this._deltaX;this._deltaX=0,r&&$t(r>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(Se.on(this._element,BN,e=>this._start(e)),Se.on(this._element,$N,e=>this._end(e)),this._element.classList.add(jN)):(Se.on(this._element,LN,e=>this._start(e)),Se.on(this._element,NN,e=>this._move(e)),Se.on(this._element,DN,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===UN||e.pointerType===FN)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const VN="carousel",qN="bs.carousel",zn=`.${qN}`,PE=".data-api",YN="ArrowLeft",GN="ArrowRight",KN=500,no="next",qi="prev",Ji="left",nl="right",XN=`slide${zn}`,Zc=`slid${zn}`,QN=`keydown${zn}`,JN=`mouseenter${zn}`,ZN=`mouseleave${zn}`,e2=`dragstart${zn}`,t2=`load${zn}${PE}`,r2=`click${zn}${PE}`,kE="carousel",Aa="active",n2="slide",i2="carousel-item-end",s2="carousel-item-start",o2="carousel-item-next",a2="carousel-item-prev",RE=".active",LE=".carousel-item",l2=RE+LE,u2=".carousel-item img",c2=".carousel-indicators",f2="[data-bs-slide], [data-bs-slide-to]",d2='[data-bs-ride="carousel"]',h2={[YN]:nl,[GN]:Ji},p2={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},g2={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Qo extends Er{constructor(e,r){super(e,r),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=Le.findOne(c2,this._element),this._addEventListeners(),this._config.ride===kE&&this.cycle()}static get Default(){return p2}static get DefaultType(){return g2}static get NAME(){return VN}next(){this._slide(no)}nextWhenVisible(){!document.hidden&&Ns(this._element)&&this.next()}prev(){this._slide(qi)}pause(){this._isSliding&&_E(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){Se.one(this._element,Zc,()=>this.cycle());return}this.cycle()}}to(e){const r=this._getItems();if(e>r.length-1||e<0)return;if(this._isSliding){Se.one(this._element,Zc,()=>this.to(e));return}const n=this._getItemIndex(this._getActive());if(n===e)return;const s=e>n?no:qi;this._slide(s,r[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&Se.on(this._element,QN,e=>this._keydown(e)),this._config.pause==="hover"&&(Se.on(this._element,JN,()=>this.pause()),Se.on(this._element,ZN,()=>this._maybeEnableCycle())),this._config.touch&&Bl.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const n of Le.find(u2,this._element))Se.on(n,e2,s=>s.preventDefault());const r={leftCallback:()=>this._slide(this._directionToOrder(Ji)),rightCallback:()=>this._slide(this._directionToOrder(nl)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),KN+this._config.interval))}};this._swipeHelper=new Bl(this._element,r)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const r=h2[e.key];r&&(e.preventDefault(),this._slide(this._directionToOrder(r)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const r=Le.findOne(RE,this._indicatorsElement);r.classList.remove(Aa),r.removeAttribute("aria-current");const n=Le.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(Aa),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const r=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=r||this._config.defaultInterval}_slide(e,r=null){if(this._isSliding)return;const n=this._getActive(),s=e===no,i=r||Dp(this._getItems(),n,s,this._config.wrap);if(i===n)return;const a=this._getItemIndex(i),o=p=>Se.trigger(this._element,p,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:a});if(o(XN).defaultPrevented||!n||!i)return;const u=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(a),this._activeElement=i;const c=s?s2:i2,f=s?o2:a2;i.classList.add(f),Ko(i),n.classList.add(c),i.classList.add(c);const d=()=>{i.classList.remove(c,f),i.classList.add(Aa),n.classList.remove(Aa,f,c),this._isSliding=!1,o(Zc)};this._queueCallback(d,n,this._isAnimated()),u&&this.cycle()}_isAnimated(){return this._element.classList.contains(n2)}_getActive(){return Le.findOne(l2,this._element)}_getItems(){return Le.find(LE,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return ur()?e===Ji?qi:no:e===Ji?no:qi}_orderToDirection(e){return ur()?e===qi?Ji:nl:e===qi?nl:Ji}static jQueryInterface(e){return this.each(function(){const r=Qo.getOrCreateInstance(this,e);if(typeof e=="number"){r.to(e);return}if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}Se.on(document,r2,f2,function(t){const e=Le.getElementFromSelector(this);if(!e||!e.classList.contains(kE))return;t.preventDefault();const r=Qo.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");if(n){r.to(n),r._maybeEnableCycle();return}if(on.getDataAttribute(this,"slide")==="next"){r.next(),r._maybeEnableCycle();return}r.prev(),r._maybeEnableCycle()});Se.on(window,t2,()=>{const t=Le.find(d2);for(const e of t)Qo.getOrCreateInstance(e)});fr(Qo);const m2="collapse",b2="bs.collapse",Jo=`.${b2}`,y2=".data-api",w2=`show${Jo}`,_2=`shown${Jo}`,v2=`hide${Jo}`,E2=`hidden${Jo}`,S2=`click${Jo}${y2}`,ef="show",ns="collapse",Ca="collapsing",T2="collapsed",x2=`:scope .${ns} .${ns}`,A2="collapse-horizontal",C2="width",I2="height",M2=".collapse.show, .collapse.collapsing",mh='[data-bs-toggle="collapse"]',O2={parent:null,toggle:!0},P2={parent:"(null|element)",toggle:"boolean"};class $o extends Er{constructor(e,r){super(e,r),this._isTransitioning=!1,this._triggerArray=[];const n=Le.find(mh);for(const s of n){const i=Le.getSelectorFromElement(s),a=Le.find(i).filter(o=>o===this._element);i!==null&&a.length&&this._triggerArray.push(s)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return O2}static get DefaultType(){return P2}static get NAME(){return m2}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(M2).filter(o=>o!==this._element).map(o=>$o.getOrCreateInstance(o,{toggle:!1}))),e.length&&e[0]._isTransitioning||Se.trigger(this._element,w2).defaultPrevented)return;for(const o of e)o.hide();const n=this._getDimension();this._element.classList.remove(ns),this._element.classList.add(Ca),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=()=>{this._isTransitioning=!1,this._element.classList.remove(Ca),this._element.classList.add(ns,ef),this._element.style[n]="",Se.trigger(this._element,_2)},a=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(s,this._element,!0),this._element.style[n]=`${this._element[a]}px`}hide(){if(this._isTransitioning||!this._isShown()||Se.trigger(this._element,v2).defaultPrevented)return;const r=this._getDimension();this._element.style[r]=`${this._element.getBoundingClientRect()[r]}px`,Ko(this._element),this._element.classList.add(Ca),this._element.classList.remove(ns,ef);for(const s of this._triggerArray){const i=Le.getElementFromSelector(s);i&&!this._isShown(i)&&this._addAriaAndCollapsedClass([s],!1)}this._isTransitioning=!0;const n=()=>{this._isTransitioning=!1,this._element.classList.remove(Ca),this._element.classList.add(ns),Se.trigger(this._element,E2)};this._element.style[r]="",this._queueCallback(n,this._element,!0)}_isShown(e=this._element){return e.classList.contains(ef)}_configAfterMerge(e){return e.toggle=!!e.toggle,e.parent=Dn(e.parent),e}_getDimension(){return this._element.classList.contains(A2)?C2:I2}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(mh);for(const r of e){const n=Le.getElementFromSelector(r);n&&this._addAriaAndCollapsedClass([r],this._isShown(n))}}_getFirstLevelChildren(e){const r=Le.find(x2,this._config.parent);return Le.find(e,this._config.parent).filter(n=>!r.includes(n))}_addAriaAndCollapsedClass(e,r){if(e.length)for(const n of e)n.classList.toggle(T2,!r),n.setAttribute("aria-expanded",r)}static jQueryInterface(e){const r={};return typeof e=="string"&&/show|hide/.test(e)&&(r.toggle=!1),this.each(function(){const n=$o.getOrCreateInstance(this,r);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e]()}})}}Se.on(document,S2,mh,function(t){(t.target.tagName==="A"||t.delegateTarget&&t.delegateTarget.tagName==="A")&&t.preventDefault();for(const e of Le.getMultipleElementsFromSelector(this))$o.getOrCreateInstance(e,{toggle:!1}).toggle()});fr($o);const dy="dropdown",k2="bs.dropdown",Ui=`.${k2}`,$p=".data-api",R2="Escape",hy="Tab",L2="ArrowUp",py="ArrowDown",N2=2,D2=`hide${Ui}`,B2=`hidden${Ui}`,$2=`show${Ui}`,F2=`shown${Ui}`,NE=`click${Ui}${$p}`,DE=`keydown${Ui}${$p}`,U2=`keyup${Ui}${$p}`,Zi="show",j2="dropup",W2="dropend",H2="dropstart",z2="dropup-center",V2="dropdown-center",pi='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',q2=`${pi}.${Zi}`,il=".dropdown-menu",Y2=".navbar",G2=".navbar-nav",K2=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",X2=ur()?"top-end":"top-start",Q2=ur()?"top-start":"top-end",J2=ur()?"bottom-end":"bottom-start",Z2=ur()?"bottom-start":"bottom-end",eD=ur()?"left-start":"right-start",tD=ur()?"right-start":"left-start",rD="top",nD="bottom",iD={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},sD={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Lr extends Er{constructor(e,r){super(e,r),this._popper=null,this._parent=this._element.parentNode,this._menu=Le.next(this._element,il)[0]||Le.prev(this._element,il)[0]||Le.findOne(il,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return iD}static get DefaultType(){return sD}static get NAME(){return dy}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Bn(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!Se.trigger(this._element,$2,e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(G2))for(const n of[].concat(...document.body.children))Se.on(n,"mouseover",Dl);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Zi),this._element.classList.add(Zi),Se.trigger(this._element,F2,e)}}hide(){if(Bn(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!Se.trigger(this._element,D2,e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const n of[].concat(...document.body.children))Se.off(n,"mouseover",Dl);this._popper&&this._popper.destroy(),this._menu.classList.remove(Zi),this._element.classList.remove(Zi),this._element.setAttribute("aria-expanded","false"),on.removeDataAttribute(this._menu,"popper"),Se.trigger(this._element,B2,e)}}_getConfig(e){if(e=super._getConfig(e),typeof e.reference=="object"&&!sn(e.reference)&&typeof e.reference.getBoundingClientRect!="function")throw new TypeError(`${dy.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(typeof yE>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;this._config.reference==="parent"?e=this._parent:sn(this._config.reference)?e=Dn(this._config.reference):typeof this._config.reference=="object"&&(e=this._config.reference);const r=this._getPopperConfig();this._popper=Np(e,this._menu,r)}_isShown(){return this._menu.classList.contains(Zi)}_getPlacement(){const e=this._parent;if(e.classList.contains(W2))return eD;if(e.classList.contains(H2))return tD;if(e.classList.contains(z2))return rD;if(e.classList.contains(V2))return nD;const r=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return e.classList.contains(j2)?r?Q2:X2:r?Z2:J2}_detectNavbar(){return this._element.closest(Y2)!==null}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(on.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...$t(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:r}){const n=Le.find(K2,this._menu).filter(s=>Ns(s));n.length&&Dp(n,r,e===py,!n.includes(r)).focus()}static jQueryInterface(e){return this.each(function(){const r=Lr.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}static clearMenus(e){if(e.button===N2||e.type==="keyup"&&e.key!==hy)return;const r=Le.find(q2);for(const n of r){const s=Lr.getInstance(n);if(!s||s._config.autoClose===!1)continue;const i=e.composedPath(),a=i.includes(s._menu);if(i.includes(s._element)||s._config.autoClose==="inside"&&!a||s._config.autoClose==="outside"&&a||s._menu.contains(e.target)&&(e.type==="keyup"&&e.key===hy||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const o={relatedTarget:s._element};e.type==="click"&&(o.clickEvent=e),s._completeHide(o)}}static dataApiKeydownHandler(e){const r=/input|textarea/i.test(e.target.tagName),n=e.key===R2,s=[L2,py].includes(e.key);if(!s&&!n||r&&!n)return;e.preventDefault();const i=this.matches(pi)?this:Le.prev(this,pi)[0]||Le.next(this,pi)[0]||Le.findOne(pi,e.delegateTarget.parentNode),a=Lr.getOrCreateInstance(i);if(s){e.stopPropagation(),a.show(),a._selectMenuItem(e);return}a._isShown()&&(e.stopPropagation(),a.hide(),i.focus())}}Se.on(document,DE,pi,Lr.dataApiKeydownHandler);Se.on(document,DE,il,Lr.dataApiKeydownHandler);Se.on(document,NE,Lr.clearMenus);Se.on(document,U2,Lr.clearMenus);Se.on(document,NE,pi,function(t){t.preventDefault(),Lr.getOrCreateInstance(this).toggle()});fr(Lr);const BE="backdrop",oD="fade",gy="show",my=`mousedown.bs.${BE}`,aD={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},lD={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class $E extends Xo{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return aD}static get DefaultType(){return lD}static get NAME(){return BE}show(e){if(!this._config.isVisible){$t(e);return}this._append();const r=this._getElement();this._config.isAnimated&&Ko(r),r.classList.add(gy),this._emulateAnimation(()=>{$t(e)})}hide(e){if(!this._config.isVisible){$t(e);return}this._getElement().classList.remove(gy),this._emulateAnimation(()=>{this.dispose(),$t(e)})}dispose(){this._isAppended&&(Se.off(this._element,my),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add(oD),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=Dn(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),Se.on(e,my,()=>{$t(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){SE(e,this._getElement(),this._config.isAnimated)}}const uD="focustrap",cD="bs.focustrap",$l=`.${cD}`,fD=`focusin${$l}`,dD=`keydown.tab${$l}`,hD="Tab",pD="forward",by="backward",gD={autofocus:!0,trapElement:null},mD={autofocus:"boolean",trapElement:"element"};class FE extends Xo{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return gD}static get DefaultType(){return mD}static get NAME(){return uD}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),Se.off(document,$l),Se.on(document,fD,e=>this._handleFocusin(e)),Se.on(document,dD,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,Se.off(document,$l))}_handleFocusin(e){const{trapElement:r}=this._config;if(e.target===document||e.target===r||r.contains(e.target))return;const n=Le.focusableChildren(r);n.length===0?r.focus():this._lastTabNavDirection===by?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===hD&&(this._lastTabNavDirection=e.shiftKey?by:pD)}}const yy=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",wy=".sticky-top",Ia="padding-right",_y="margin-right";class bh{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Ia,r=>r+e),this._setElementAttributes(yy,Ia,r=>r+e),this._setElementAttributes(wy,_y,r=>r-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Ia),this._resetElementAttributes(yy,Ia),this._resetElementAttributes(wy,_y)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,r,n){const s=this.getWidth(),i=a=>{if(a!==this._element&&window.innerWidth>a.clientWidth+s)return;this._saveInitialAttribute(a,r);const o=window.getComputedStyle(a).getPropertyValue(r);a.style.setProperty(r,`${n(Number.parseFloat(o))}px`)};this._applyManipulationCallback(e,i)}_saveInitialAttribute(e,r){const n=e.style.getPropertyValue(r);n&&on.setDataAttribute(e,r,n)}_resetElementAttributes(e,r){const n=s=>{const i=on.getDataAttribute(s,r);if(i===null){s.style.removeProperty(r);return}on.removeDataAttribute(s,r),s.style.setProperty(r,i)};this._applyManipulationCallback(e,n)}_applyManipulationCallback(e,r){if(sn(e)){r(e);return}for(const n of Le.find(e,this._element))r(n)}}const bD="modal",yD="bs.modal",cr=`.${yD}`,wD=".data-api",_D="Escape",vD=`hide${cr}`,ED=`hidePrevented${cr}`,UE=`hidden${cr}`,jE=`show${cr}`,SD=`shown${cr}`,TD=`resize${cr}`,xD=`click.dismiss${cr}`,AD=`mousedown.dismiss${cr}`,CD=`keydown.dismiss${cr}`,ID=`click${cr}${wD}`,vy="modal-open",MD="fade",Ey="show",tf="modal-static",OD=".modal.show",PD=".modal-dialog",kD=".modal-body",RD='[data-bs-toggle="modal"]',LD={backdrop:!0,focus:!0,keyboard:!0},ND={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ts extends Er{constructor(e,r){super(e,r),this._dialog=Le.findOne(PD,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new bh,this._addEventListeners()}static get Default(){return LD}static get DefaultType(){return ND}static get NAME(){return bD}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||Se.trigger(this._element,jE,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(vy),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){!this._isShown||this._isTransitioning||Se.trigger(this._element,vD).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Ey),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){Se.off(window,cr),Se.off(this._dialog,cr),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new $E({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new FE({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const r=Le.findOne(kD,this._dialog);r&&(r.scrollTop=0),Ko(this._element),this._element.classList.add(Ey);const n=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,Se.trigger(this._element,SD,{relatedTarget:e})};this._queueCallback(n,this._dialog,this._isAnimated())}_addEventListeners(){Se.on(this._element,CD,e=>{if(e.key===_D){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),Se.on(window,TD,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),Se.on(this._element,AD,e=>{Se.one(this._element,xD,r=>{if(!(this._element!==e.target||this._element!==r.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(vy),this._resetAdjustments(),this._scrollBar.reset(),Se.trigger(this._element,UE)})}_isAnimated(){return this._element.classList.contains(MD)}_triggerBackdropTransition(){if(Se.trigger(this._element,ED).defaultPrevented)return;const r=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY;n==="hidden"||this._element.classList.contains(tf)||(r||(this._element.style.overflowY="hidden"),this._element.classList.add(tf),this._queueCallback(()=>{this._element.classList.remove(tf),this._queueCallback(()=>{this._element.style.overflowY=n},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,r=this._scrollBar.getWidth(),n=r>0;if(n&&!e){const s=ur()?"paddingLeft":"paddingRight";this._element.style[s]=`${r}px`}if(!n&&e){const s=ur()?"paddingRight":"paddingLeft";this._element.style[s]=`${r}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,r){return this.each(function(){const n=Ts.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e](r)}})}}Se.on(document,ID,RD,function(t){const e=Le.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),Se.one(e,jE,s=>{s.defaultPrevented||Se.one(e,UE,()=>{Ns(this)&&this.focus()})});const r=Le.findOne(OD);r&&Ts.getInstance(r).hide(),Ts.getOrCreateInstance(e).toggle(this)});mu(Ts);fr(Ts);const DD="offcanvas",BD="bs.offcanvas",vn=`.${BD}`,WE=".data-api",$D=`load${vn}${WE}`,FD="Escape",Sy="show",Ty="showing",xy="hiding",UD="offcanvas-backdrop",HE=".offcanvas.show",jD=`show${vn}`,WD=`shown${vn}`,HD=`hide${vn}`,Ay=`hidePrevented${vn}`,zE=`hidden${vn}`,zD=`resize${vn}`,VD=`click${vn}${WE}`,qD=`keydown.dismiss${vn}`,YD='[data-bs-toggle="offcanvas"]',GD={backdrop:!0,keyboard:!0,scroll:!1},KD={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class $n extends Er{constructor(e,r){super(e,r),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return GD}static get DefaultType(){return KD}static get NAME(){return DD}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||Se.trigger(this._element,jD,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new bh().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Ty);const n=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(Sy),this._element.classList.remove(Ty),Se.trigger(this._element,WD,{relatedTarget:e})};this._queueCallback(n,this._element,!0)}hide(){if(!this._isShown||Se.trigger(this._element,HD).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(xy),this._backdrop.hide();const r=()=>{this._element.classList.remove(Sy,xy),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new bh().reset(),Se.trigger(this._element,zE)};this._queueCallback(r,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=()=>{if(this._config.backdrop==="static"){Se.trigger(this._element,Ay);return}this.hide()},r=!!this._config.backdrop;return new $E({className:UD,isVisible:r,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:r?e:null})}_initializeFocusTrap(){return new FE({trapElement:this._element})}_addEventListeners(){Se.on(this._element,qD,e=>{if(e.key===FD){if(this._config.keyboard){this.hide();return}Se.trigger(this._element,Ay)}})}static jQueryInterface(e){return this.each(function(){const r=$n.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}Se.on(document,VD,YD,function(t){const e=Le.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Bn(this))return;Se.one(e,zE,()=>{Ns(this)&&this.focus()});const r=Le.findOne(HE);r&&r!==e&&$n.getInstance(r).hide(),$n.getOrCreateInstance(e).toggle(this)});Se.on(window,$D,()=>{for(const t of Le.find(HE))$n.getOrCreateInstance(t).show()});Se.on(window,zD,()=>{for(const t of Le.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(t).position!=="fixed"&&$n.getOrCreateInstance(t).hide()});mu($n);fr($n);const XD=/^aria-[\w-]*$/i,VE={"*":["class","dir","id","lang","role",XD],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},QD=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),JD=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,ZD=(t,e)=>{const r=t.nodeName.toLowerCase();return e.includes(r)?QD.has(r)?!!JD.test(t.nodeValue):!0:e.filter(n=>n instanceof RegExp).some(n=>n.test(r))};function eB(t,e,r){if(!t.length)return t;if(r&&typeof r=="function")return r(t);const s=new window.DOMParser().parseFromString(t,"text/html"),i=[].concat(...s.body.querySelectorAll("*"));for(const a of i){const o=a.nodeName.toLowerCase();if(!Object.keys(e).includes(o)){a.remove();continue}const l=[].concat(...a.attributes),u=[].concat(e["*"]||[],e[o]||[]);for(const c of l)ZD(c,u)||a.removeAttribute(c.nodeName)}return s.body.innerHTML}const tB="TemplateFactory",rB={allowList:VE,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},nB={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},iB={entry:"(string|element|function|null)",selector:"(string|element)"};class sB extends Xo{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return rB}static get DefaultType(){return nB}static get NAME(){return tB}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[s,i]of Object.entries(this._config.content))this._setContent(e,i,s);const r=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&r.classList.add(...n.split(" ")),r}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[r,n]of Object.entries(e))super._typeCheckConfig({selector:r,entry:n},iB)}_setContent(e,r,n){const s=Le.findOne(n,e);if(s){if(r=this._resolvePossibleFunction(r),!r){s.remove();return}if(sn(r)){this._putElementInTemplate(Dn(r),s);return}if(this._config.html){s.innerHTML=this._maybeSanitize(r);return}s.textContent=r}}_maybeSanitize(e){return this._config.sanitize?eB(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return $t(e,[this])}_putElementInTemplate(e,r){if(this._config.html){r.innerHTML="",r.append(e);return}r.textContent=e.textContent}}const oB="tooltip",aB=new Set(["sanitize","allowList","sanitizeFn"]),rf="fade",lB="modal",Ma="show",uB=".tooltip-inner",Cy=`.${lB}`,Iy="hide.bs.modal",io="hover",nf="focus",cB="click",fB="manual",dB="hide",hB="hidden",pB="show",gB="shown",mB="inserted",bB="click",yB="focusin",wB="focusout",_B="mouseenter",vB="mouseleave",EB={AUTO:"auto",TOP:"top",RIGHT:ur()?"left":"right",BOTTOM:"bottom",LEFT:ur()?"right":"left"},SB={allowList:VE,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},TB={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Bs extends Er{constructor(e,r){if(typeof yE>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,r),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return SB}static get DefaultType(){return TB}static get NAME(){return oB}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),Se.off(this._element.closest(Cy),Iy,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;const e=Se.trigger(this._element,this.constructor.eventName(pB)),n=(vE(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!n)return;this._disposePopper();const s=this._getTipElement();this._element.setAttribute("aria-describedby",s.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(s),Se.trigger(this._element,this.constructor.eventName(mB))),this._popper=this._createPopper(s),s.classList.add(Ma),"ontouchstart"in document.documentElement)for(const o of[].concat(...document.body.children))Se.on(o,"mouseover",Dl);const a=()=>{Se.trigger(this._element,this.constructor.eventName(gB)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(a,this.tip,this._isAnimated())}hide(){if(!this._isShown()||Se.trigger(this._element,this.constructor.eventName(dB)).defaultPrevented)return;if(this._getTipElement().classList.remove(Ma),"ontouchstart"in document.documentElement)for(const s of[].concat(...document.body.children))Se.off(s,"mouseover",Dl);this._activeTrigger[cB]=!1,this._activeTrigger[nf]=!1,this._activeTrigger[io]=!1,this._isHovered=null;const n=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),Se.trigger(this._element,this.constructor.eventName(hB)))};this._queueCallback(n,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const r=this._getTemplateFactory(e).toHtml();if(!r)return null;r.classList.remove(rf,Ma),r.classList.add(`bs-${this.constructor.NAME}-auto`);const n=cN(this.constructor.NAME).toString();return r.setAttribute("id",n),this._isAnimated()&&r.classList.add(rf),r}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new sB({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[uB]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(rf)}_isShown(){return this.tip&&this.tip.classList.contains(Ma)}_createPopper(e){const r=$t(this._config.placement,[this,e,this._element]),n=EB[r.toUpperCase()];return Np(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_resolvePossibleFunction(e){return $t(e,[this._element])}_getPopperConfig(e){const r={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:n=>{this._getTipElement().setAttribute("data-popper-placement",n.state.placement)}}]};return{...r,...$t(this._config.popperConfig,[r])}}_setListeners(){const e=this._config.trigger.split(" ");for(const r of e)if(r==="click")Se.on(this._element,this.constructor.eventName(bB),this._config.selector,n=>{this._initializeOnDelegatedTarget(n).toggle()});else if(r!==fB){const n=r===io?this.constructor.eventName(_B):this.constructor.eventName(yB),s=r===io?this.constructor.eventName(vB):this.constructor.eventName(wB);Se.on(this._element,n,this._config.selector,i=>{const a=this._initializeOnDelegatedTarget(i);a._activeTrigger[i.type==="focusin"?nf:io]=!0,a._enter()}),Se.on(this._element,s,this._config.selector,i=>{const a=this._initializeOnDelegatedTarget(i);a._activeTrigger[i.type==="focusout"?nf:io]=a._element.contains(i.relatedTarget),a._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},Se.on(this._element.closest(Cy),Iy,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,r){clearTimeout(this._timeout),this._timeout=setTimeout(e,r)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const r=on.getDataAttributes(this._element);for(const n of Object.keys(r))aB.has(n)&&delete r[n];return e={...r,...typeof e=="object"&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=e.container===!1?document.body:Dn(e.container),typeof e.delay=="number"&&(e.delay={show:e.delay,hide:e.delay}),typeof e.title=="number"&&(e.title=e.title.toString()),typeof e.content=="number"&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[r,n]of Object.entries(this._config))this.constructor.Default[r]!==n&&(e[r]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const r=Bs.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}fr(Bs);const xB="popover",AB=".popover-header",CB=".popover-body",IB={...Bs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},MB={...Bs.DefaultType,content:"(null|string|element|function)"};class Fp extends Bs{static get Default(){return IB}static get DefaultType(){return MB}static get NAME(){return xB}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[AB]:this._getTitle(),[CB]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const r=Fp.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}fr(Fp);const OB="scrollspy",PB="bs.scrollspy",Up=`.${PB}`,kB=".data-api",RB=`activate${Up}`,My=`click${Up}`,LB=`load${Up}${kB}`,NB="dropdown-item",Yi="active",DB='[data-bs-spy="scroll"]',sf="[href]",BB=".nav, .list-group",Oy=".nav-link",$B=".nav-item",FB=".list-group-item",UB=`${Oy}, ${$B} > ${Oy}, ${FB}`,jB=".dropdown",WB=".dropdown-toggle",HB={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},zB={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class wu extends Er{constructor(e,r){super(e,r),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return HB}static get DefaultType(){return zB}static get NAME(){return OB}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=Dn(e.target)||document.body,e.rootMargin=e.offset?`${e.offset}px 0px -30%`:e.rootMargin,typeof e.threshold=="string"&&(e.threshold=e.threshold.split(",").map(r=>Number.parseFloat(r))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(Se.off(this._config.target,My),Se.on(this._config.target,My,sf,e=>{const r=this._observableSections.get(e.target.hash);if(r){e.preventDefault();const n=this._rootElement||window,s=r.offsetTop-this._element.offsetTop;if(n.scrollTo){n.scrollTo({top:s,behavior:"smooth"});return}n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(r=>this._observerCallback(r),e)}_observerCallback(e){const r=a=>this._targetLinks.get(`#${a.target.id}`),n=a=>{this._previousScrollData.visibleEntryTop=a.target.offsetTop,this._process(r(a))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const a of e){if(!a.isIntersecting){this._activeTarget=null,this._clearActiveClass(r(a));continue}const o=a.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&o){if(n(a),!s)return;continue}!i&&!o&&n(a)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=Le.find(sf,this._config.target);for(const r of e){if(!r.hash||Bn(r))continue;const n=Le.findOne(decodeURI(r.hash),this._element);Ns(n)&&(this._targetLinks.set(decodeURI(r.hash),r),this._observableSections.set(r.hash,n))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(Yi),this._activateParents(e),Se.trigger(this._element,RB,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(NB)){Le.findOne(WB,e.closest(jB)).classList.add(Yi);return}for(const r of Le.parents(e,BB))for(const n of Le.prev(r,UB))n.classList.add(Yi)}_clearActiveClass(e){e.classList.remove(Yi);const r=Le.find(`${sf}.${Yi}`,e);for(const n of r)n.classList.remove(Yi)}static jQueryInterface(e){return this.each(function(){const r=wu.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}Se.on(window,LB,()=>{for(const t of Le.find(DB))wu.getOrCreateInstance(t)});fr(wu);const VB="tab",qB="bs.tab",ji=`.${qB}`,YB=`hide${ji}`,GB=`hidden${ji}`,KB=`show${ji}`,XB=`shown${ji}`,QB=`click${ji}`,JB=`keydown${ji}`,ZB=`load${ji}`,e$="ArrowLeft",Py="ArrowRight",t$="ArrowUp",ky="ArrowDown",of="Home",Ry="End",gi="active",Ly="fade",af="show",r$="dropdown",qE=".dropdown-toggle",n$=".dropdown-menu",lf=`:not(${qE})`,i$='.list-group, .nav, [role="tablist"]',s$=".nav-item, .list-group-item",o$=`.nav-link${lf}, .list-group-item${lf}, [role="tab"]${lf}`,YE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',uf=`${o$}, ${YE}`,a$=`.${gi}[data-bs-toggle="tab"], .${gi}[data-bs-toggle="pill"], .${gi}[data-bs-toggle="list"]`;class xs extends Er{constructor(e){super(e),this._parent=this._element.closest(i$),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),Se.on(this._element,JB,r=>this._keydown(r)))}static get NAME(){return VB}show(){const e=this._element;if(this._elemIsActive(e))return;const r=this._getActiveElem(),n=r?Se.trigger(r,YB,{relatedTarget:e}):null;Se.trigger(e,KB,{relatedTarget:r}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(r,e),this._activate(e,r))}_activate(e,r){if(!e)return;e.classList.add(gi),this._activate(Le.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.add(af);return}e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),Se.trigger(e,XB,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(Ly))}_deactivate(e,r){if(!e)return;e.classList.remove(gi),e.blur(),this._deactivate(Le.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.remove(af);return}e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),Se.trigger(e,GB,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(Ly))}_keydown(e){if(![e$,Py,t$,ky,of,Ry].includes(e.key))return;e.stopPropagation(),e.preventDefault();const r=this._getChildren().filter(s=>!Bn(s));let n;if([of,Ry].includes(e.key))n=r[e.key===of?0:r.length-1];else{const s=[Py,ky].includes(e.key);n=Dp(r,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),xs.getOrCreateInstance(n).show())}_getChildren(){return Le.find(uf,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,r){this._setAttributeIfNotExists(e,"role","tablist");for(const n of r)this._setInitialAttributesOnChild(n)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const r=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",r),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),r||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const r=Le.getElementFromSelector(e);r&&(this._setAttributeIfNotExists(r,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(r,"aria-labelledby",`${e.id}`))}_toggleDropDown(e,r){const n=this._getOuterElement(e);if(!n.classList.contains(r$))return;const s=(i,a)=>{const o=Le.findOne(i,n);o&&o.classList.toggle(a,r)};s(qE,gi),s(n$,af),n.setAttribute("aria-expanded",r)}_setAttributeIfNotExists(e,r,n){e.hasAttribute(r)||e.setAttribute(r,n)}_elemIsActive(e){return e.classList.contains(gi)}_getInnerElement(e){return e.matches(uf)?e:Le.findOne(uf,e)}_getOuterElement(e){return e.closest(s$)||e}static jQueryInterface(e){return this.each(function(){const r=xs.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}Se.on(document,QB,YE,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),!Bn(this)&&xs.getOrCreateInstance(this).show()});Se.on(window,ZB,()=>{for(const t of Le.find(a$))xs.getOrCreateInstance(t)});fr(xs);const l$="toast",u$="bs.toast",Vn=`.${u$}`,c$=`mouseover${Vn}`,f$=`mouseout${Vn}`,d$=`focusin${Vn}`,h$=`focusout${Vn}`,p$=`hide${Vn}`,g$=`hidden${Vn}`,m$=`show${Vn}`,b$=`shown${Vn}`,y$="fade",Ny="hide",Oa="show",Pa="showing",w$={animation:"boolean",autohide:"boolean",delay:"number"},_$={animation:!0,autohide:!0,delay:5e3};class _u extends Er{constructor(e,r){super(e,r),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return _$}static get DefaultType(){return w$}static get NAME(){return l$}show(){if(Se.trigger(this._element,m$).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(y$);const r=()=>{this._element.classList.remove(Pa),Se.trigger(this._element,b$),this._maybeScheduleHide()};this._element.classList.remove(Ny),Ko(this._element),this._element.classList.add(Oa,Pa),this._queueCallback(r,this._element,this._config.animation)}hide(){if(!this.isShown()||Se.trigger(this._element,p$).defaultPrevented)return;const r=()=>{this._element.classList.add(Ny),this._element.classList.remove(Pa,Oa),Se.trigger(this._element,g$)};this._element.classList.add(Pa),this._queueCallback(r,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Oa),super.dispose()}isShown(){return this._element.classList.contains(Oa)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,r){switch(e.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=r;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=r;break}}if(r){this._clearTimeout();return}const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){Se.on(this._element,c$,e=>this._onInteraction(e,!0)),Se.on(this._element,f$,e=>this._onInteraction(e,!1)),Se.on(this._element,d$,e=>this._onInteraction(e,!0)),Se.on(this._element,h$,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const r=_u.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}mu(_u);fr(_u);function v$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;r({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});let i;const a=pt();e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=a.createElement("div");function l(m,b){const v=e.params.virtual;if(v.cache&&e.virtual.cache[b])return e.virtual.cache[b];let _;return v.renderSlide?(_=v.renderSlide.call(e,m,b),typeof _=="string"&&(o.innerHTML=_,_=o.children[0])):e.isElement?_=Kt("swiper-slide"):_=Kt("div",e.params.slideClass),_.setAttribute("data-swiper-slide-index",b),v.renderSlide||(_.innerHTML=m),v.cache&&(e.virtual.cache[b]=_),_}function u(m,b){const{slidesPerView:v,slidesPerGroup:_,centeredSlides:E,loop:y,initialSlide:T}=e.params;if(b&&!y&&T>0)return;const{addSlidesBefore:x,addSlidesAfter:A}=e.params.virtual,{from:P,to:L,slides:W,slidesGrid:U,offset:H}=e.virtual;e.params.cssMode||e.updateActiveIndex();const C=e.activeIndex||0;let I;e.rtlTranslate?I="right":I=e.isHorizontal()?"left":"top";let N,J;E?(N=Math.floor(v/2)+_+A,J=Math.floor(v/2)+_+x):(N=v+(_-1)+A,J=(y?v:_)+x);let ne=C-J,te=C+N;y||(ne=Math.max(ne,0),te=Math.min(te,W.length-1));let B=(e.slidesGrid[ne]||0)-(e.slidesGrid[0]||0);y&&C>=J?(ne-=J,E||(B+=e.slidesGrid[0])):y&&C{ee.style[I]=`${B-Math.abs(e.cssOverflowAdjustment())}px`}),e.updateProgress(),s("virtualUpdate");return}if(e.params.virtual.renderExternal){e.params.virtual.renderExternal.call(e,{offset:B,from:ne,to:te,slides:function(){const K=[];for(let j=ne;j<=te;j+=1)K.push(W[j]);return K}()}),e.params.virtual.renderExternalUpdate?ae():s("virtualUpdate");return}const Y=[],ce=[],$=ee=>{let K=ee;return ee<0?K=W.length+ee:K>=W.length&&(K=K-W.length),K};if(m)e.slides.filter(ee=>ee.matches(`.${e.params.slideClass}, swiper-slide`)).forEach(ee=>{ee.remove()});else for(let ee=P;ee<=L;ee+=1)if(eete){const K=$(ee);e.slides.filter(j=>j.matches(`.${e.params.slideClass}[data-swiper-slide-index="${K}"], swiper-slide[data-swiper-slide-index="${K}"]`)).forEach(j=>{j.remove()})}const ue=y?-W.length:0,me=y?W.length*2:W.length;for(let ee=ue;ee=ne&&ee<=te){const K=$(ee);typeof L>"u"||m?ce.push(K):(ee>L&&ce.push(K),ee{e.slidesEl.append(l(W[ee],ee))}),y)for(let ee=Y.length-1;ee>=0;ee-=1){const K=Y[ee];e.slidesEl.prepend(l(W[K],K))}else Y.sort((ee,K)=>K-ee),Y.forEach(ee=>{e.slidesEl.prepend(l(W[ee],ee))});yt(e.slidesEl,".swiper-slide, swiper-slide").forEach(ee=>{ee.style[I]=`${B-Math.abs(e.cssOverflowAdjustment())}px`}),ae()}function c(m){if(typeof m=="object"&&"length"in m)for(let b=0;b{const x=E[T],A=x.getAttribute("data-swiper-slide-index");A&&x.setAttribute("data-swiper-slide-index",parseInt(A,10)+_),y[parseInt(T,10)+_]=x}),e.virtual.cache=y}u(!0),e.slideTo(v,0)}function d(m){if(typeof m>"u"||m===null)return;let b=e.activeIndex;if(Array.isArray(m))for(let v=m.length-1;v>=0;v-=1)e.params.virtual.cache&&(delete e.virtual.cache[m[v]],Object.keys(e.virtual.cache).forEach(_=>{_>m&&(e.virtual.cache[_-1]=e.virtual.cache[_],e.virtual.cache[_-1].setAttribute("data-swiper-slide-index",_-1),delete e.virtual.cache[_])})),e.virtual.slides.splice(m[v],1),m[v]{v>m&&(e.virtual.cache[v-1]=e.virtual.cache[v],e.virtual.cache[v-1].setAttribute("data-swiper-slide-index",v-1),delete e.virtual.cache[v])})),e.virtual.slides.splice(m,1),m{if(!e.params.virtual.enabled)return;let m;if(typeof e.passedParams.virtual.slides>"u"){const b=[...e.slidesEl.children].filter(v=>v.matches(`.${e.params.slideClass}, swiper-slide`));b.length&&(e.virtual.slides=[...b],m=!0,b.forEach((v,_)=>{v.setAttribute("data-swiper-slide-index",_),e.virtual.cache[_]=v,v.remove()}))}m||(e.virtual.slides=e.params.virtual.slides),e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,u(!1,!0)}),n("setTranslate",()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(i),i=setTimeout(()=>{u()},100)):u())}),n("init update resize",()=>{e.params.virtual.enabled&&e.params.cssMode&&po(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)}),Object.assign(e.virtual,{appendSlide:c,prependSlide:f,removeSlide:d,removeAllSlides:p,update:u})}function E$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=pt(),a=rt();e.keyboard={enabled:!1},r({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}});function o(c){if(!e.enabled)return;const{rtlTranslate:f}=e;let d=c;d.originalEvent&&(d=d.originalEvent);const p=d.keyCode||d.charCode,m=e.params.keyboard.pageUpDown,b=m&&p===33,v=m&&p===34,_=p===37,E=p===39,y=p===38,T=p===40;if(!e.allowSlideNext&&(e.isHorizontal()&&E||e.isVertical()&&T||v)||!e.allowSlidePrev&&(e.isHorizontal()&&_||e.isVertical()&&y||b))return!1;if(!(d.shiftKey||d.altKey||d.ctrlKey||d.metaKey)&&!(i.activeElement&&i.activeElement.nodeName&&(i.activeElement.nodeName.toLowerCase()==="input"||i.activeElement.nodeName.toLowerCase()==="textarea"))){if(e.params.keyboard.onlyInViewport&&(b||v||_||E||y||T)){let x=!1;if(vi(e.el,`.${e.params.slideClass}, swiper-slide`).length>0&&vi(e.el,`.${e.params.slideActiveClass}`).length===0)return;const A=e.el,P=A.clientWidth,L=A.clientHeight,W=a.innerWidth,U=a.innerHeight,H=Ll(A);f&&(H.left-=A.scrollLeft);const C=[[H.left,H.top],[H.left+P,H.top],[H.left,H.top+L],[H.left+P,H.top+L]];for(let I=0;I=0&&N[0]<=W&&N[1]>=0&&N[1]<=U){if(N[0]===0&&N[1]===0)continue;x=!0}}if(!x)return}e.isHorizontal()?((b||v||_||E)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),((v||E)&&!f||(b||_)&&f)&&e.slideNext(),((b||_)&&!f||(v||E)&&f)&&e.slidePrev()):((b||v||y||T)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),(v||T)&&e.slideNext(),(b||y)&&e.slidePrev()),s("keyPress",p)}}function l(){e.keyboard.enabled||(i.addEventListener("keydown",o),e.keyboard.enabled=!0)}function u(){e.keyboard.enabled&&(i.removeEventListener("keydown",o),e.keyboard.enabled=!1)}n("init",()=>{e.params.keyboard.enabled&&l()}),n("destroy",()=>{e.keyboard.enabled&&u()}),Object.assign(e.keyboard,{enable:l,disable:u})}function S$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=rt();r({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),e.mousewheel={enabled:!1};let a,o=ir(),l;const u=[];function c(y){let P=0,L=0,W=0,U=0;return"detail"in y&&(L=y.detail),"wheelDelta"in y&&(L=-y.wheelDelta/120),"wheelDeltaY"in y&&(L=-y.wheelDeltaY/120),"wheelDeltaX"in y&&(P=-y.wheelDeltaX/120),"axis"in y&&y.axis===y.HORIZONTAL_AXIS&&(P=L,L=0),W=P*10,U=L*10,"deltaY"in y&&(U=y.deltaY),"deltaX"in y&&(W=y.deltaX),y.shiftKey&&!W&&(W=U,U=0),(W||U)&&y.deltaMode&&(y.deltaMode===1?(W*=40,U*=40):(W*=800,U*=800)),W&&!P&&(P=W<1?-1:1),U&&!L&&(L=U<1?-1:1),{spinX:P,spinY:L,pixelX:W,pixelY:U}}function f(){e.enabled&&(e.mouseEntered=!0)}function d(){e.enabled&&(e.mouseEntered=!1)}function p(y){return e.params.mousewheel.thresholdDelta&&y.delta=6&&ir()-o<60?!0:(y.direction<0?(!e.isEnd||e.params.loop)&&!e.animating&&(e.slideNext(),s("scroll",y.raw)):(!e.isBeginning||e.params.loop)&&!e.animating&&(e.slidePrev(),s("scroll",y.raw)),o=new i.Date().getTime(),!1)}function m(y){const T=e.params.mousewheel;if(y.direction<0){if(e.isEnd&&!e.params.loop&&T.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&T.releaseOnEdges)return!0;return!1}function b(y){let T=y,x=!0;if(!e.enabled||y.target.closest(`.${e.params.mousewheel.noMousewheelClass}`))return;const A=e.params.mousewheel;e.params.cssMode&&T.preventDefault();let P=e.el;e.params.mousewheel.eventsTarget!=="container"&&(P=document.querySelector(e.params.mousewheel.eventsTarget));const L=P&&P.contains(T.target);if(!e.mouseEntered&&!L&&!A.releaseOnEdges)return!0;T.originalEvent&&(T=T.originalEvent);let W=0;const U=e.rtlTranslate?-1:1,H=c(T);if(A.forceToAxis)if(e.isHorizontal())if(Math.abs(H.pixelX)>Math.abs(H.pixelY))W=-H.pixelX*U;else return!0;else if(Math.abs(H.pixelY)>Math.abs(H.pixelX))W=-H.pixelY;else return!0;else W=Math.abs(H.pixelX)>Math.abs(H.pixelY)?-H.pixelX*U:-H.pixelY;if(W===0)return!0;A.invert&&(W=-W);let C=e.getTranslate()+W*A.sensitivity;if(C>=e.minTranslate()&&(C=e.minTranslate()),C<=e.maxTranslate()&&(C=e.maxTranslate()),x=e.params.loop?!0:!(C===e.minTranslate()||C===e.maxTranslate()),x&&e.params.nested&&T.stopPropagation(),!e.params.freeMode||!e.params.freeMode.enabled){const I={time:ir(),delta:Math.abs(W),direction:Math.sign(W),raw:y};u.length>=2&&u.shift();const N=u.length?u[u.length-1]:void 0;if(u.push(I),N?(I.direction!==N.direction||I.delta>N.delta||I.time>N.time+150)&&p(I):p(I),m(I))return!0}else{const I={time:ir(),delta:Math.abs(W),direction:Math.sign(W)},N=l&&I.time=e.minTranslate()&&(J=e.minTranslate()),J<=e.maxTranslate()&&(J=e.maxTranslate()),e.setTransition(0),e.setTranslate(J),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!ne&&e.isBeginning||!te&&e.isEnd)&&e.updateSlidesClasses(),e.params.loop&&e.loopFix({direction:I.direction<0?"next":"prev",byMousewheel:!0}),e.params.freeMode.sticky){clearTimeout(a),a=void 0,u.length>=15&&u.shift();const B=u.length?u[u.length-1]:void 0,ae=u[0];if(u.push(I),B&&(I.delta>B.delta||I.direction!==B.direction))u.splice(0);else if(u.length>=15&&I.time-ae.time<500&&ae.delta-I.delta>=1&&I.delta<=6){const Y=W>0?.8:.2;l=I,u.splice(0),a=Ci(()=>{e.destroyed||!e.params||e.slideToClosest(e.params.speed,!0,void 0,Y)},0)}a||(a=Ci(()=>{if(e.destroyed||!e.params)return;const Y=.5;l=I,u.splice(0),e.slideToClosest(e.params.speed,!0,void 0,Y)},500))}if(N||s("scroll",T),e.params.autoplay&&e.params.autoplay.disableOnInteraction&&e.autoplay.stop(),A.releaseOnEdges&&(J===e.minTranslate()||J===e.maxTranslate()))return!0}}return T.preventDefault?T.preventDefault():T.returnValue=!1,!1}function v(y){let T=e.el;e.params.mousewheel.eventsTarget!=="container"&&(T=document.querySelector(e.params.mousewheel.eventsTarget)),T[y]("mouseenter",f),T[y]("mouseleave",d),T[y]("wheel",b)}function _(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",b),!0):e.mousewheel.enabled?!1:(v("addEventListener"),e.mousewheel.enabled=!0,!0)}function E(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,b),!0):e.mousewheel.enabled?(v("removeEventListener"),e.mousewheel.enabled=!1,!0):!1}n("init",()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&E(),e.params.mousewheel.enabled&&_()}),n("destroy",()=>{e.params.cssMode&&_(),e.mousewheel.enabled&&E()}),Object.assign(e.mousewheel,{enable:_,disable:E})}function jp(t,e,r,n){return t.params.createElements&&Object.keys(n).forEach(s=>{if(!r[s]&&r.auto===!0){let i=yt(t.el,`.${n[s]}`)[0];i||(i=Kt("div",n[s]),i.className=n[s],t.el.append(i)),r[s]=i,e[s]=i}}),r}function T$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;r({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),e.navigation={nextEl:null,prevEl:null};function i(m){let b;return m&&typeof m=="string"&&e.isElement&&(b=e.el.querySelector(m)||e.hostEl.querySelector(m),b)?b:(m&&(typeof m=="string"&&(b=[...document.querySelectorAll(m)]),e.params.uniqueNavElements&&typeof m=="string"&&b&&b.length>1&&e.el.querySelectorAll(m).length===1?b=e.el.querySelector(m):b&&b.length===1&&(b=b[0])),m&&!b?m:b)}function a(m,b){const v=e.params.navigation;m=$e(m),m.forEach(_=>{_&&(_.classList[b?"add":"remove"](...v.disabledClass.split(" ")),_.tagName==="BUTTON"&&(_.disabled=b),e.params.watchOverflow&&e.enabled&&_.classList[e.isLocked?"add":"remove"](v.lockClass))})}function o(){const{nextEl:m,prevEl:b}=e.navigation;if(e.params.loop){a(b,!1),a(m,!1);return}a(b,e.isBeginning&&!e.params.rewind),a(m,e.isEnd&&!e.params.rewind)}function l(m){m.preventDefault(),!(e.isBeginning&&!e.params.loop&&!e.params.rewind)&&(e.slidePrev(),s("navigationPrev"))}function u(m){m.preventDefault(),!(e.isEnd&&!e.params.loop&&!e.params.rewind)&&(e.slideNext(),s("navigationNext"))}function c(){const m=e.params.navigation;if(e.params.navigation=jp(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!(m.nextEl||m.prevEl))return;let b=i(m.nextEl),v=i(m.prevEl);Object.assign(e.navigation,{nextEl:b,prevEl:v}),b=$e(b),v=$e(v);const _=(E,y)=>{E&&E.addEventListener("click",y==="next"?u:l),!e.enabled&&E&&E.classList.add(...m.lockClass.split(" "))};b.forEach(E=>_(E,"next")),v.forEach(E=>_(E,"prev"))}function f(){let{nextEl:m,prevEl:b}=e.navigation;m=$e(m),b=$e(b);const v=(_,E)=>{_.removeEventListener("click",E==="next"?u:l),_.classList.remove(...e.params.navigation.disabledClass.split(" "))};m.forEach(_=>v(_,"next")),b.forEach(_=>v(_,"prev"))}n("init",()=>{e.params.navigation.enabled===!1?p():(c(),o())}),n("toEdge fromEdge lock unlock",()=>{o()}),n("destroy",()=>{f()}),n("enable disable",()=>{let{nextEl:m,prevEl:b}=e.navigation;if(m=$e(m),b=$e(b),e.enabled){o();return}[...m,...b].filter(v=>!!v).forEach(v=>v.classList.add(e.params.navigation.lockClass))}),n("click",(m,b)=>{let{nextEl:v,prevEl:_}=e.navigation;v=$e(v),_=$e(_);const E=b.target;let y=_.includes(E)||v.includes(E);if(e.isElement&&!y){const T=b.path||b.composedPath&&b.composedPath();T&&(y=T.find(x=>v.includes(x)||_.includes(x)))}if(e.params.navigation.hideOnClick&&!y){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===E||e.pagination.el.contains(E)))return;let T;v.length?T=v[0].classList.contains(e.params.navigation.hiddenClass):_.length&&(T=_[0].classList.contains(e.params.navigation.hiddenClass)),s(T===!0?"navigationShow":"navigationHide"),[...v,..._].filter(x=>!!x).forEach(x=>x.classList.toggle(e.params.navigation.hiddenClass))}});const d=()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")),c(),o()},p=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")),f()};Object.assign(e.navigation,{enable:d,disable:p,update:o,init:c,destroy:f})}function Xr(t){return t===void 0&&(t=""),`.${t.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function x$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i="swiper-pagination";r({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:E=>E,formatFractionTotal:E=>E,bulletClass:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`,paginationDisabledClass:`${i}-disabled`}}),e.pagination={el:null,bullets:[]};let a,o=0;function l(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function u(E,y){const{bulletActiveClass:T}=e.params.pagination;E&&(E=E[`${y==="prev"?"previous":"next"}ElementSibling`],E&&(E.classList.add(`${T}-${y}`),E=E[`${y==="prev"?"previous":"next"}ElementSibling`],E&&E.classList.add(`${T}-${y}-${y}`)))}function c(E,y,T){if(E=E%T,y=y%T,y===E+1)return"next";if(y===E-1)return"previous"}function f(E){const y=E.target.closest(Xr(e.params.pagination.bulletClass));if(!y)return;E.preventDefault();const T=Bo(y)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===T)return;const x=c(e.realIndex,T,e.slides.length);x==="next"?e.slideNext():x==="previous"?e.slidePrev():e.slideToLoop(T)}else e.slideTo(T)}function d(){const E=e.rtl,y=e.params.pagination;if(l())return;let T=e.pagination.el;T=$e(T);let x,A;const P=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,L=e.params.loop?Math.ceil(P/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(A=e.previousRealIndex||0,x=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex<"u"?(x=e.snapIndex,A=e.previousSnapIndex):(A=e.previousIndex||0,x=e.activeIndex||0),y.type==="bullets"&&e.pagination.bullets&&e.pagination.bullets.length>0){const W=e.pagination.bullets;let U,H,C;if(y.dynamicBullets&&(a=lh(W[0],e.isHorizontal()?"width":"height"),T.forEach(I=>{I.style[e.isHorizontal()?"width":"height"]=`${a*(y.dynamicMainBullets+4)}px`}),y.dynamicMainBullets>1&&A!==void 0&&(o+=x-(A||0),o>y.dynamicMainBullets-1?o=y.dynamicMainBullets-1:o<0&&(o=0)),U=Math.max(x-o,0),H=U+(Math.min(W.length,y.dynamicMainBullets)-1),C=(H+U)/2),W.forEach(I=>{const N=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(J=>`${y.bulletActiveClass}${J}`)].map(J=>typeof J=="string"&&J.includes(" ")?J.split(" "):J).flat();I.classList.remove(...N)}),T.length>1)W.forEach(I=>{const N=Bo(I);N===x?I.classList.add(...y.bulletActiveClass.split(" ")):e.isElement&&I.setAttribute("part","bullet"),y.dynamicBullets&&(N>=U&&N<=H&&I.classList.add(...`${y.bulletActiveClass}-main`.split(" ")),N===U&&u(I,"prev"),N===H&&u(I,"next"))});else{const I=W[x];if(I&&I.classList.add(...y.bulletActiveClass.split(" ")),e.isElement&&W.forEach((N,J)=>{N.setAttribute("part",J===x?"bullet-active":"bullet")}),y.dynamicBullets){const N=W[U],J=W[H];for(let ne=U;ne<=H;ne+=1)W[ne]&&W[ne].classList.add(...`${y.bulletActiveClass}-main`.split(" "));u(N,"prev"),u(J,"next")}}if(y.dynamicBullets){const I=Math.min(W.length,y.dynamicMainBullets+4),N=(a*I-a)/2-C*a,J=E?"right":"left";W.forEach(ne=>{ne.style[e.isHorizontal()?J:"top"]=`${N}px`})}}T.forEach((W,U)=>{if(y.type==="fraction"&&(W.querySelectorAll(Xr(y.currentClass)).forEach(H=>{H.textContent=y.formatFractionCurrent(x+1)}),W.querySelectorAll(Xr(y.totalClass)).forEach(H=>{H.textContent=y.formatFractionTotal(L)})),y.type==="progressbar"){let H;y.progressbarOpposite?H=e.isHorizontal()?"vertical":"horizontal":H=e.isHorizontal()?"horizontal":"vertical";const C=(x+1)/L;let I=1,N=1;H==="horizontal"?I=C:N=C,W.querySelectorAll(Xr(y.progressbarFillClass)).forEach(J=>{J.style.transform=`translate3d(0,0,0) scaleX(${I}) scaleY(${N})`,J.style.transitionDuration=`${e.params.speed}ms`})}y.type==="custom"&&y.renderCustom?(W.innerHTML=y.renderCustom(e,x+1,L),U===0&&s("paginationRender",W)):(U===0&&s("paginationRender",W),s("paginationUpdate",W)),e.params.watchOverflow&&e.enabled&&W.classList[e.isLocked?"add":"remove"](y.lockClass)})}function p(){const E=e.params.pagination;if(l())return;const y=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length/Math.ceil(e.params.grid.rows):e.slides.length;let T=e.pagination.el;T=$e(T);let x="";if(E.type==="bullets"){let A=e.params.loop?Math.ceil(y/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&A>y&&(A=y);for(let P=0;P`}E.type==="fraction"&&(E.renderFraction?x=E.renderFraction.call(e,E.currentClass,E.totalClass):x=` / `),E.type==="progressbar"&&(E.renderProgressbar?x=E.renderProgressbar.call(e,E.progressbarFillClass):x=``),e.pagination.bullets=[],T.forEach(A=>{E.type!=="custom"&&(A.innerHTML=x||""),E.type==="bullets"&&e.pagination.bullets.push(...A.querySelectorAll(Xr(E.bulletClass)))}),E.type!=="custom"&&s("paginationRender",T[0])}function m(){e.params.pagination=jp(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const E=e.params.pagination;if(!E.el)return;let y;typeof E.el=="string"&&e.isElement&&(y=e.el.querySelector(E.el)),!y&&typeof E.el=="string"&&(y=[...document.querySelectorAll(E.el)]),y||(y=E.el),!(!y||y.length===0)&&(e.params.uniqueNavElements&&typeof E.el=="string"&&Array.isArray(y)&&y.length>1&&(y=[...e.el.querySelectorAll(E.el)],y.length>1&&(y=y.find(T=>vi(T,".swiper")[0]===e.el))),Array.isArray(y)&&y.length===1&&(y=y[0]),Object.assign(e.pagination,{el:y}),y=$e(y),y.forEach(T=>{E.type==="bullets"&&E.clickable&&T.classList.add(...(E.clickableClass||"").split(" ")),T.classList.add(E.modifierClass+E.type),T.classList.add(e.isHorizontal()?E.horizontalClass:E.verticalClass),E.type==="bullets"&&E.dynamicBullets&&(T.classList.add(`${E.modifierClass}${E.type}-dynamic`),o=0,E.dynamicMainBullets<1&&(E.dynamicMainBullets=1)),E.type==="progressbar"&&E.progressbarOpposite&&T.classList.add(E.progressbarOppositeClass),E.clickable&&T.addEventListener("click",f),e.enabled||T.classList.add(E.lockClass)}))}function b(){const E=e.params.pagination;if(l())return;let y=e.pagination.el;y&&(y=$e(y),y.forEach(T=>{T.classList.remove(E.hiddenClass),T.classList.remove(E.modifierClass+E.type),T.classList.remove(e.isHorizontal()?E.horizontalClass:E.verticalClass),E.clickable&&(T.classList.remove(...(E.clickableClass||"").split(" ")),T.removeEventListener("click",f))})),e.pagination.bullets&&e.pagination.bullets.forEach(T=>T.classList.remove(...E.bulletActiveClass.split(" ")))}n("changeDirection",()=>{if(!e.pagination||!e.pagination.el)return;const E=e.params.pagination;let{el:y}=e.pagination;y=$e(y),y.forEach(T=>{T.classList.remove(E.horizontalClass,E.verticalClass),T.classList.add(e.isHorizontal()?E.horizontalClass:E.verticalClass)})}),n("init",()=>{e.params.pagination.enabled===!1?_():(m(),p(),d())}),n("activeIndexChange",()=>{typeof e.snapIndex>"u"&&d()}),n("snapIndexChange",()=>{d()}),n("snapGridLengthChange",()=>{p(),d()}),n("destroy",()=>{b()}),n("enable disable",()=>{let{el:E}=e.pagination;E&&(E=$e(E),E.forEach(y=>y.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass)))}),n("lock unlock",()=>{d()}),n("click",(E,y)=>{const T=y.target,x=$e(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&x&&x.length>0&&!T.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&T===e.navigation.nextEl||e.navigation.prevEl&&T===e.navigation.prevEl))return;const A=x[0].classList.contains(e.params.pagination.hiddenClass);s(A===!0?"paginationShow":"paginationHide"),x.forEach(P=>P.classList.toggle(e.params.pagination.hiddenClass))}});const v=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:E}=e.pagination;E&&(E=$e(E),E.forEach(y=>y.classList.remove(e.params.pagination.paginationDisabledClass))),m(),p(),d()},_=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:E}=e.pagination;E&&(E=$e(E),E.forEach(y=>y.classList.add(e.params.pagination.paginationDisabledClass))),b()};Object.assign(e.pagination,{enable:v,disable:_,render:p,update:d,init:m,destroy:b})}function A$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=pt();let a=!1,o=null,l=null,u,c,f,d;r({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),e.scrollbar={el:null,dragEl:null};function p(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:C,rtlTranslate:I}=e,{dragEl:N,el:J}=C,ne=e.params.scrollbar,te=e.params.loop?e.progressLoop:e.progress;let B=c,ae=(f-c)*te;I?(ae=-ae,ae>0?(B=c-ae,ae=0):-ae+c>f&&(B=f+ae)):ae<0?(B=c+ae,ae=0):ae+c>f&&(B=f-ae),e.isHorizontal()?(N.style.transform=`translate3d(${ae}px, 0, 0)`,N.style.width=`${B}px`):(N.style.transform=`translate3d(0px, ${ae}px, 0)`,N.style.height=`${B}px`),ne.hide&&(clearTimeout(o),J.style.opacity=1,o=setTimeout(()=>{J.style.opacity=0,J.style.transitionDuration="400ms"},1e3))}function m(C){!e.params.scrollbar.el||!e.scrollbar.el||(e.scrollbar.dragEl.style.transitionDuration=`${C}ms`)}function b(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:C}=e,{dragEl:I,el:N}=C;I.style.width="",I.style.height="",f=e.isHorizontal()?N.offsetWidth:N.offsetHeight,d=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),e.params.scrollbar.dragSize==="auto"?c=f*d:c=parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?I.style.width=`${c}px`:I.style.height=`${c}px`,d>=1?N.style.display="none":N.style.display="",e.params.scrollbar.hide&&(N.style.opacity=0),e.params.watchOverflow&&e.enabled&&C.el.classList[e.isLocked?"add":"remove"](e.params.scrollbar.lockClass)}function v(C){return e.isHorizontal()?C.clientX:C.clientY}function _(C){const{scrollbar:I,rtlTranslate:N}=e,{el:J}=I;let ne;ne=(v(C)-Ll(J)[e.isHorizontal()?"left":"top"]-(u!==null?u:c/2))/(f-c),ne=Math.max(Math.min(ne,1),0),N&&(ne=1-ne);const te=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*ne;e.updateProgress(te),e.setTranslate(te),e.updateActiveIndex(),e.updateSlidesClasses()}function E(C){const I=e.params.scrollbar,{scrollbar:N,wrapperEl:J}=e,{el:ne,dragEl:te}=N;a=!0,u=C.target===te?v(C)-C.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,C.preventDefault(),C.stopPropagation(),J.style.transitionDuration="100ms",te.style.transitionDuration="100ms",_(C),clearTimeout(l),ne.style.transitionDuration="0ms",I.hide&&(ne.style.opacity=1),e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="none"),s("scrollbarDragStart",C)}function y(C){const{scrollbar:I,wrapperEl:N}=e,{el:J,dragEl:ne}=I;a&&(C.preventDefault&&C.cancelable?C.preventDefault():C.returnValue=!1,_(C),N.style.transitionDuration="0ms",J.style.transitionDuration="0ms",ne.style.transitionDuration="0ms",s("scrollbarDragMove",C))}function T(C){const I=e.params.scrollbar,{scrollbar:N,wrapperEl:J}=e,{el:ne}=N;a&&(a=!1,e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="",J.style.transitionDuration=""),I.hide&&(clearTimeout(l),l=Ci(()=>{ne.style.opacity=0,ne.style.transitionDuration="400ms"},1e3)),s("scrollbarDragEnd",C),I.snapOnRelease&&e.slideToClosest())}function x(C){const{scrollbar:I,params:N}=e,J=I.el;if(!J)return;const ne=J,te=N.passiveListeners?{passive:!1,capture:!1}:!1,B=N.passiveListeners?{passive:!0,capture:!1}:!1;if(!ne)return;const ae=C==="on"?"addEventListener":"removeEventListener";ne[ae]("pointerdown",E,te),i[ae]("pointermove",y,te),i[ae]("pointerup",T,B)}function A(){!e.params.scrollbar.el||!e.scrollbar.el||x("on")}function P(){!e.params.scrollbar.el||!e.scrollbar.el||x("off")}function L(){const{scrollbar:C,el:I}=e;e.params.scrollbar=jp(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const N=e.params.scrollbar;if(!N.el)return;let J;if(typeof N.el=="string"&&e.isElement&&(J=e.el.querySelector(N.el)),!J&&typeof N.el=="string"){if(J=i.querySelectorAll(N.el),!J.length)return}else J||(J=N.el);e.params.uniqueNavElements&&typeof N.el=="string"&&J.length>1&&I.querySelectorAll(N.el).length===1&&(J=I.querySelector(N.el)),J.length>0&&(J=J[0]),J.classList.add(e.isHorizontal()?N.horizontalClass:N.verticalClass);let ne;J&&(ne=J.querySelector(Xr(e.params.scrollbar.dragClass)),ne||(ne=Kt("div",e.params.scrollbar.dragClass),J.append(ne))),Object.assign(C,{el:J,dragEl:ne}),N.draggable&&A(),J&&J.classList[e.enabled?"remove":"add"](...Mn(e.params.scrollbar.lockClass))}function W(){const C=e.params.scrollbar,I=e.scrollbar.el;I&&I.classList.remove(...Mn(e.isHorizontal()?C.horizontalClass:C.verticalClass)),P()}n("changeDirection",()=>{if(!e.scrollbar||!e.scrollbar.el)return;const C=e.params.scrollbar;let{el:I}=e.scrollbar;I=$e(I),I.forEach(N=>{N.classList.remove(C.horizontalClass,C.verticalClass),N.classList.add(e.isHorizontal()?C.horizontalClass:C.verticalClass)})}),n("init",()=>{e.params.scrollbar.enabled===!1?H():(L(),b(),p())}),n("update resize observerUpdate lock unlock changeDirection",()=>{b()}),n("setTranslate",()=>{p()}),n("setTransition",(C,I)=>{m(I)}),n("enable disable",()=>{const{el:C}=e.scrollbar;C&&C.classList[e.enabled?"remove":"add"](...Mn(e.params.scrollbar.lockClass))}),n("destroy",()=>{W()});const U=()=>{e.el.classList.remove(...Mn(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.remove(...Mn(e.params.scrollbar.scrollbarDisabledClass)),L(),b(),p()},H=()=>{e.el.classList.add(...Mn(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.add(...Mn(e.params.scrollbar.scrollbarDisabledClass)),W()};Object.assign(e.scrollbar,{enable:U,disable:H,updateSize:b,setTranslate:p,init:L,destroy:W})}function C$(t){let{swiper:e,extendParams:r,on:n}=t;r({parallax:{enabled:!1}});const s="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",i=(l,u)=>{const{rtl:c}=e,f=c?-1:1,d=l.getAttribute("data-swiper-parallax")||"0";let p=l.getAttribute("data-swiper-parallax-x"),m=l.getAttribute("data-swiper-parallax-y");const b=l.getAttribute("data-swiper-parallax-scale"),v=l.getAttribute("data-swiper-parallax-opacity"),_=l.getAttribute("data-swiper-parallax-rotate");if(p||m?(p=p||"0",m=m||"0"):e.isHorizontal()?(p=d,m="0"):(m=d,p="0"),p.indexOf("%")>=0?p=`${parseInt(p,10)*u*f}%`:p=`${p*u*f}px`,m.indexOf("%")>=0?m=`${parseInt(m,10)*u}%`:m=`${m*u}px`,typeof v<"u"&&v!==null){const y=v-(v-1)*(1-Math.abs(u));l.style.opacity=y}let E=`translate3d(${p}, ${m}, 0px)`;if(typeof b<"u"&&b!==null){const y=b-(b-1)*(1-Math.abs(u));E+=` scale(${y})`}if(_&&typeof _<"u"&&_!==null){const y=_*u*-1;E+=` rotate(${y}deg)`}l.style.transform=E},a=()=>{const{el:l,slides:u,progress:c,snapGrid:f,isElement:d}=e,p=yt(l,s);e.isElement&&p.push(...yt(e.hostEl,s)),p.forEach(m=>{i(m,c)}),u.forEach((m,b)=>{let v=m.progress;e.params.slidesPerGroup>1&&e.params.slidesPerView!=="auto"&&(v+=Math.ceil(b/2)-c*(f.length-1)),v=Math.min(Math.max(v,-1),1),m.querySelectorAll(`${s}, [data-swiper-parallax-rotate]`).forEach(_=>{i(_,v)})})},o=function(l){l===void 0&&(l=e.params.speed);const{el:u,hostEl:c}=e,f=[...u.querySelectorAll(s)];e.isElement&&f.push(...c.querySelectorAll(s)),f.forEach(d=>{let p=parseInt(d.getAttribute("data-swiper-parallax-duration"),10)||l;l===0&&(p=0),d.style.transitionDuration=`${p}ms`})};n("beforeInit",()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),n("init",()=>{e.params.parallax.enabled&&a()}),n("setTranslate",()=>{e.params.parallax.enabled&&a()}),n("setTransition",(l,u)=>{e.params.parallax.enabled&&o(u)})}function I$(t){let{swiper:e,extendParams:r,on:n,emit:s}=t;const i=rt();r({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,panOnMouseMove:!1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let a=1,o=!1,l=!1,u={x:0,y:0};const c=-3;let f,d;const p=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},b={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},v={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let _=1;Object.defineProperty(e.zoom,"scale",{get(){return _},set(ee){if(_!==ee){const K=m.imageEl,j=m.slideEl;s("zoomChange",ee,K,j)}_=ee}});function E(){if(p.length<2)return 1;const ee=p[0].pageX,K=p[0].pageY,j=p[1].pageX,D=p[1].pageY;return Math.sqrt((j-ee)**2+(D-K)**2)}function y(){const ee=e.params.zoom,K=m.imageWrapEl.getAttribute("data-swiper-zoom")||ee.maxRatio;if(ee.limitToOriginalSize&&m.imageEl&&m.imageEl.naturalWidth){const j=m.imageEl.naturalWidth/m.imageEl.offsetWidth;return Math.min(j,K)}return K}function T(){if(p.length<2)return{x:null,y:null};const ee=m.imageEl.getBoundingClientRect();return[(p[0].pageX+(p[1].pageX-p[0].pageX)/2-ee.x-i.scrollX)/a,(p[0].pageY+(p[1].pageY-p[0].pageY)/2-ee.y-i.scrollY)/a]}function x(){return e.isElement?"swiper-slide":`.${e.params.slideClass}`}function A(ee){const K=x();return!!(ee.target.matches(K)||e.slides.filter(j=>j.contains(ee.target)).length>0)}function P(ee){const K=`.${e.params.zoom.containerClass}`;return!!(ee.target.matches(K)||[...e.hostEl.querySelectorAll(K)].filter(j=>j.contains(ee.target)).length>0)}function L(ee){if(ee.pointerType==="mouse"&&p.splice(0,p.length),!A(ee))return;const K=e.params.zoom;if(f=!1,d=!1,p.push(ee),!(p.length<2)){if(f=!0,m.scaleStart=E(),!m.slideEl){m.slideEl=ee.target.closest(`.${e.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=e.slides[e.activeIndex]);let j=m.slideEl.querySelector(`.${K.containerClass}`);if(j&&(j=j.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=j,j?m.imageWrapEl=vi(m.imageEl,`.${K.containerClass}`)[0]:m.imageWrapEl=void 0,!m.imageWrapEl){m.imageEl=void 0;return}m.maxRatio=y()}if(m.imageEl){const[j,D]=T();m.originX=j,m.originY=D,m.imageEl.style.transitionDuration="0ms"}o=!0}}function W(ee){if(!A(ee))return;const K=e.params.zoom,j=e.zoom,D=p.findIndex(X=>X.pointerId===ee.pointerId);D>=0&&(p[D]=ee),!(p.length<2)&&(d=!0,m.scaleMove=E(),m.imageEl&&(j.scale=m.scaleMove/m.scaleStart*a,j.scale>m.maxRatio&&(j.scale=m.maxRatio-1+(j.scale-m.maxRatio+1)**.5),j.scaleX.pointerId===ee.pointerId);D>=0&&p.splice(D,1),!(!f||!d)&&(f=!1,d=!1,m.imageEl&&(j.scale=Math.max(Math.min(j.scale,m.maxRatio),K.minRatio),m.imageEl.style.transitionDuration=`${e.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${j.scale})`,a=j.scale,o=!1,j.scale>1&&m.slideEl?m.slideEl.classList.add(`${K.zoomedSlideClass}`):j.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${K.zoomedSlideClass}`),j.scale===1&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}let H;function C(){e.touchEventsData.preventTouchMoveFromPointerMove=!1}function I(){clearTimeout(H),e.touchEventsData.preventTouchMoveFromPointerMove=!0,H=setTimeout(()=>{e.destroyed||C()})}function N(ee){const K=e.device;if(!m.imageEl||b.isTouched)return;K.android&&ee.cancelable&&ee.preventDefault(),b.isTouched=!0;const j=p.length>0?p[0]:ee;b.touchesStart.x=j.pageX,b.touchesStart.y=j.pageY}function J(ee){const j=ee.pointerType==="mouse"&&e.params.zoom.panOnMouseMove;if(!A(ee)||!P(ee))return;const D=e.zoom;if(!m.imageEl)return;if(!b.isTouched||!m.slideEl){j&&B(ee);return}if(j){B(ee);return}b.isMoved||(b.width=m.imageEl.offsetWidth||m.imageEl.clientWidth,b.height=m.imageEl.offsetHeight||m.imageEl.clientHeight,b.startX=ah(m.imageWrapEl,"x")||0,b.startY=ah(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const X=b.width*D.scale,le=b.height*D.scale;if(b.minX=Math.min(m.slideWidth/2-X/2,0),b.maxX=-b.minX,b.minY=Math.min(m.slideHeight/2-le/2,0),b.maxY=-b.minY,b.touchesCurrent.x=p.length>0?p[0].pageX:ee.pageX,b.touchesCurrent.y=p.length>0?p[0].pageY:ee.pageY,Math.max(Math.abs(b.touchesCurrent.x-b.touchesStart.x),Math.abs(b.touchesCurrent.y-b.touchesStart.y))>5&&(e.allowClick=!1),!b.isMoved&&!o){if(e.isHorizontal()&&(Math.floor(b.minX)===Math.floor(b.startX)&&b.touchesCurrent.xb.touchesStart.x)){b.isTouched=!1,C();return}if(!e.isHorizontal()&&(Math.floor(b.minY)===Math.floor(b.startY)&&b.touchesCurrent.yb.touchesStart.y)){b.isTouched=!1,C();return}}ee.cancelable&&ee.preventDefault(),ee.stopPropagation(),I(),b.isMoved=!0;const M=(D.scale-a)/(m.maxRatio-e.params.zoom.minRatio),{originX:O,originY:F}=m;b.currentX=b.touchesCurrent.x-b.touchesStart.x+b.startX+M*(b.width-O*2),b.currentY=b.touchesCurrent.y-b.touchesStart.y+b.startY+M*(b.height-F*2),b.currentXb.maxX&&(b.currentX=b.maxX-1+(b.currentX-b.maxX+1)**.8),b.currentYb.maxY&&(b.currentY=b.maxY-1+(b.currentY-b.maxY+1)**.8),v.prevPositionX||(v.prevPositionX=b.touchesCurrent.x),v.prevPositionY||(v.prevPositionY=b.touchesCurrent.y),v.prevTime||(v.prevTime=Date.now()),v.x=(b.touchesCurrent.x-v.prevPositionX)/(Date.now()-v.prevTime)/2,v.y=(b.touchesCurrent.y-v.prevPositionY)/(Date.now()-v.prevTime)/2,Math.abs(b.touchesCurrent.x-v.prevPositionX)<2&&(v.x=0),Math.abs(b.touchesCurrent.y-v.prevPositionY)<2&&(v.y=0),v.prevPositionX=b.touchesCurrent.x,v.prevPositionY=b.touchesCurrent.y,v.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function ne(){const ee=e.zoom;if(p.length=0,!m.imageEl)return;if(!b.isTouched||!b.isMoved){b.isTouched=!1,b.isMoved=!1;return}b.isTouched=!1,b.isMoved=!1;let K=300,j=300;const D=v.x*K,X=b.currentX+D,le=v.y*j,se=b.currentY+le;v.x!==0&&(K=Math.abs((X-b.currentX)/v.x)),v.y!==0&&(j=Math.abs((se-b.currentY)/v.y));const M=Math.max(K,j);b.currentX=X,b.currentY=se;const O=b.width*ee.scale,F=b.height*ee.scale;b.minX=Math.min(m.slideWidth/2-O/2,0),b.maxX=-b.minX,b.minY=Math.min(m.slideHeight/2-F/2,0),b.maxY=-b.minY,b.currentX=Math.max(Math.min(b.currentX,b.maxX),b.minX),b.currentY=Math.max(Math.min(b.currentY,b.maxY),b.minY),m.imageWrapEl.style.transitionDuration=`${M}ms`,m.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function te(){const ee=e.zoom;m.slideEl&&e.activeIndex!==e.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`),ee.scale=1,a=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function B(ee){if(a<=1||!m.imageWrapEl||!A(ee)||!P(ee))return;const K=i.getComputedStyle(m.imageWrapEl).transform,j=new i.DOMMatrix(K);if(!l){l=!0,u.x=ee.clientX,u.y=ee.clientY,b.startX=j.e,b.startY=j.f,b.width=m.imageEl.offsetWidth||m.imageEl.clientWidth,b.height=m.imageEl.offsetHeight||m.imageEl.clientHeight,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight;return}const D=(ee.clientX-u.x)*c,X=(ee.clientY-u.y)*c,le=b.width*a,se=b.height*a,M=m.slideWidth,O=m.slideHeight,F=Math.min(M/2-le/2,0),R=-F,V=Math.min(O/2-se/2,0),q=-V,oe=Math.max(Math.min(b.startX+D,R),F),Q=Math.max(Math.min(b.startY+X,q),V);m.imageWrapEl.style.transitionDuration="0ms",m.imageWrapEl.style.transform=`translate3d(${oe}px, ${Q}px, 0)`,u.x=ee.clientX,u.y=ee.clientY,b.startX=oe,b.startY=Q}function ae(ee){const K=e.zoom,j=e.params.zoom;if(!m.slideEl){ee&&ee.target&&(m.slideEl=ee.target.closest(`.${e.params.slideClass}, swiper-slide`)),m.slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?m.slideEl=yt(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:m.slideEl=e.slides[e.activeIndex]);let h=m.slideEl.querySelector(`.${j.containerClass}`);h&&(h=h.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=h,h?m.imageWrapEl=vi(m.imageEl,`.${j.containerClass}`)[0]:m.imageWrapEl=void 0}if(!m.imageEl||!m.imageWrapEl)return;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${j.zoomedSlideClass}`);let D,X,le,se,M,O,F,R,V,q,oe,Q,G,re,z,ie,he,be;typeof b.touchesStart.x>"u"&&ee?(D=ee.pageX,X=ee.pageY):(D=b.touchesStart.x,X=b.touchesStart.y);const S=typeof ee=="number"?ee:null;a===1&&S&&(D=void 0,X=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0);const g=y();K.scale=S||g,a=S||g,ee&&!(a===1&&S)?(he=m.slideEl.offsetWidth,be=m.slideEl.offsetHeight,le=Ll(m.slideEl).left+i.scrollX,se=Ll(m.slideEl).top+i.scrollY,M=le+he/2-D,O=se+be/2-X,V=m.imageEl.offsetWidth||m.imageEl.clientWidth,q=m.imageEl.offsetHeight||m.imageEl.clientHeight,oe=V*K.scale,Q=q*K.scale,G=Math.min(he/2-oe/2,0),re=Math.min(be/2-Q/2,0),z=-G,ie=-re,F=M*K.scale,R=O*K.scale,Fz&&(F=z),Rie&&(R=ie)):(F=0,R=0),S&&K.scale===1&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${F}px, ${R}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${K.scale})`}function Y(){const ee=e.zoom,K=e.params.zoom;if(!m.slideEl){e.params.virtual&&e.params.virtual.enabled&&e.virtual?m.slideEl=yt(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:m.slideEl=e.slides[e.activeIndex];let j=m.slideEl.querySelector(`.${K.containerClass}`);j&&(j=j.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=j,j?m.imageWrapEl=vi(m.imageEl,`.${K.containerClass}`)[0]:m.imageWrapEl=void 0}!m.imageEl||!m.imageWrapEl||(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),ee.scale=1,a=1,b.touchesStart.x=void 0,b.touchesStart.y=void 0,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${K.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0,e.params.zoom.panOnMouseMove&&(u={x:0,y:0},l&&(l=!1,b.startX=0,b.startY=0)))}function ce(ee){const K=e.zoom;K.scale&&K.scale!==1?Y():ae(ee)}function $(){const ee=e.params.passiveListeners?{passive:!0,capture:!1}:!1,K=e.params.passiveListeners?{passive:!1,capture:!0}:!0;return{passiveListener:ee,activeListenerWithCapture:K}}function ue(){const ee=e.zoom;if(ee.enabled)return;ee.enabled=!0;const{passiveListener:K,activeListenerWithCapture:j}=$();e.wrapperEl.addEventListener("pointerdown",L,K),e.wrapperEl.addEventListener("pointermove",W,j),["pointerup","pointercancel","pointerout"].forEach(D=>{e.wrapperEl.addEventListener(D,U,K)}),e.wrapperEl.addEventListener("pointermove",J,j)}function me(){const ee=e.zoom;if(!ee.enabled)return;ee.enabled=!1;const{passiveListener:K,activeListenerWithCapture:j}=$();e.wrapperEl.removeEventListener("pointerdown",L,K),e.wrapperEl.removeEventListener("pointermove",W,j),["pointerup","pointercancel","pointerout"].forEach(D=>{e.wrapperEl.removeEventListener(D,U,K)}),e.wrapperEl.removeEventListener("pointermove",J,j)}n("init",()=>{e.params.zoom.enabled&&ue()}),n("destroy",()=>{me()}),n("touchStart",(ee,K)=>{e.zoom.enabled&&N(K)}),n("touchEnd",(ee,K)=>{e.zoom.enabled&&ne()}),n("doubleTap",(ee,K)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&ce(K)}),n("transitionEnd",()=>{e.zoom.enabled&&e.params.zoom.enabled&&te()}),n("slideChange",()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&te()}),Object.assign(e.zoom,{enable:ue,disable:me,in:ae,out:Y,toggle:ce})}function M$(t){let{swiper:e,extendParams:r,on:n}=t;r({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0};function s(u,c){const f=function(){let b,v,_;return(E,y)=>{for(v=-1,b=E.length;b-v>1;)_=b+v>>1,E[_]<=y?v=_:b=_;return b}}();this.x=u,this.y=c,this.lastIndex=u.length-1;let d,p;return this.interpolate=function(b){return b?(p=f(this.x,b),d=p-1,(b-this.x[d])*(this.y[p]-this.y[d])/(this.x[p]-this.x[d])+this.y[d]):0},this}function i(u){e.controller.spline=e.params.loop?new s(e.slidesGrid,u.slidesGrid):new s(e.snapGrid,u.snapGrid)}function a(u,c){const f=e.controller.control;let d,p;const m=e.constructor;function b(v){if(v.destroyed)return;const _=e.rtlTranslate?-e.translate:e.translate;e.params.controller.by==="slide"&&(i(v),p=-e.controller.spline.interpolate(-_)),(!p||e.params.controller.by==="container")&&(d=(v.maxTranslate()-v.minTranslate())/(e.maxTranslate()-e.minTranslate()),(Number.isNaN(d)||!Number.isFinite(d))&&(d=1),p=(_-e.minTranslate())*d+v.minTranslate()),e.params.controller.inverse&&(p=v.maxTranslate()-p),v.updateProgress(p),v.setTranslate(p,e),v.updateActiveIndex(),v.updateSlidesClasses()}if(Array.isArray(f))for(let v=0;v{b.updateAutoHeight()}),So(b.wrapperEl,()=>{d&&b.transitionEnd()})))}if(Array.isArray(d))for(p=0;p{if(typeof window<"u"&&(typeof e.params.controller.control=="string"||e.params.controller.control instanceof HTMLElement)){(typeof e.params.controller.control=="string"?[...document.querySelectorAll(e.params.controller.control)]:[e.params.controller.control]).forEach(c=>{if(e.controller.control||(e.controller.control=[]),c&&c.swiper)e.controller.control.push(c.swiper);else if(c){const f=`${e.params.eventsPrefix}init`,d=p=>{e.controller.control.push(p.detail[0]),e.update(),c.removeEventListener(f,d)};c.addEventListener(f,d)}});return}e.controller.control=e.params.controller.control}),n("update",()=>{l()}),n("resize",()=>{l()}),n("observerUpdate",()=>{l()}),n("setTranslate",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTranslate(c,f)}),n("setTransition",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTransition(c,f)}),Object.assign(e.controller,{setTranslate:a,setTransition:o})}function O$(t){let{swiper:e,extendParams:r,on:n}=t;r({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,containerRole:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null,scrollOnFocus:!0}}),e.a11y={clicked:!1};let s=null,i,a,o=new Date().getTime();function l(te){const B=s;B.length!==0&&(B.innerHTML="",B.innerHTML=te)}function u(te){const B=()=>Math.round(16*Math.random()).toString(16);return"x".repeat(te).replace(/x/g,B)}function c(te){te=$e(te),te.forEach(B=>{B.setAttribute("tabIndex","0")})}function f(te){te=$e(te),te.forEach(B=>{B.setAttribute("tabIndex","-1")})}function d(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("role",B)})}function p(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("aria-roledescription",B)})}function m(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("aria-controls",B)})}function b(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("aria-label",B)})}function v(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("id",B)})}function _(te,B){te=$e(te),te.forEach(ae=>{ae.setAttribute("aria-live",B)})}function E(te){te=$e(te),te.forEach(B=>{B.setAttribute("aria-disabled",!0)})}function y(te){te=$e(te),te.forEach(B=>{B.setAttribute("aria-disabled",!1)})}function T(te){if(te.keyCode!==13&&te.keyCode!==32)return;const B=e.params.a11y,ae=te.target;if(!(e.pagination&&e.pagination.el&&(ae===e.pagination.el||e.pagination.el.contains(te.target))&&!te.target.matches(Xr(e.params.pagination.bulletClass)))){if(e.navigation&&e.navigation.prevEl&&e.navigation.nextEl){const Y=$e(e.navigation.prevEl);$e(e.navigation.nextEl).includes(ae)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?l(B.lastSlideMessage):l(B.nextSlideMessage)),Y.includes(ae)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?l(B.firstSlideMessage):l(B.prevSlideMessage))}e.pagination&&ae.matches(Xr(e.params.pagination.bulletClass))&&ae.click()}}function x(){if(e.params.loop||e.params.rewind||!e.navigation)return;const{nextEl:te,prevEl:B}=e.navigation;B&&(e.isBeginning?(E(B),f(B)):(y(B),c(B))),te&&(e.isEnd?(E(te),f(te)):(y(te),c(te)))}function A(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function P(){return A()&&e.params.pagination.clickable}function L(){const te=e.params.a11y;A()&&e.pagination.bullets.forEach(B=>{e.params.pagination.clickable&&(c(B),e.params.pagination.renderBullet||(d(B,"button"),b(B,te.paginationBulletMessage.replace(/\{\{index\}\}/,Bo(B)+1)))),B.matches(Xr(e.params.pagination.bulletActiveClass))?B.setAttribute("aria-current","true"):B.removeAttribute("aria-current")})}const W=(te,B,ae)=>{c(te),te.tagName!=="BUTTON"&&(d(te,"button"),te.addEventListener("keydown",T)),b(te,ae),m(te,B)},U=te=>{a&&a!==te.target&&!a.contains(te.target)&&(i=!0),e.a11y.clicked=!0},H=()=>{i=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},C=te=>{o=new Date().getTime()},I=te=>{if(e.a11y.clicked||!e.params.a11y.scrollOnFocus||new Date().getTime()-o<100)return;const B=te.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!B||!e.slides.includes(B))return;a=B;const ae=e.slides.indexOf(B)===e.activeIndex,Y=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(B);ae||Y||te.sourceCapabilities&&te.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,requestAnimationFrame(()=>{i||(e.params.loop?e.slideToLoop(parseInt(B.getAttribute("data-swiper-slide-index")),0):e.slideTo(e.slides.indexOf(B),0),i=!1)}))},N=()=>{const te=e.params.a11y;te.itemRoleDescriptionMessage&&p(e.slides,te.itemRoleDescriptionMessage),te.slideRole&&d(e.slides,te.slideRole);const B=e.slides.length;te.slideLabelMessage&&e.slides.forEach((ae,Y)=>{const ce=e.params.loop?parseInt(ae.getAttribute("data-swiper-slide-index"),10):Y,$=te.slideLabelMessage.replace(/\{\{index\}\}/,ce+1).replace(/\{\{slidesLength\}\}/,B);b(ae,$)})},J=()=>{const te=e.params.a11y;e.el.append(s);const B=e.el;te.containerRoleDescriptionMessage&&p(B,te.containerRoleDescriptionMessage),te.containerMessage&&b(B,te.containerMessage),te.containerRole&&d(B,te.containerRole);const ae=e.wrapperEl,Y=te.id||ae.getAttribute("id")||`swiper-wrapper-${u(16)}`,ce=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";v(ae,Y),_(ae,ce),N();let{nextEl:$,prevEl:ue}=e.navigation?e.navigation:{};$=$e($),ue=$e(ue),$&&$.forEach(ee=>W(ee,Y,te.nextSlideMessage)),ue&&ue.forEach(ee=>W(ee,Y,te.prevSlideMessage)),P()&&$e(e.pagination.el).forEach(K=>{K.addEventListener("keydown",T)}),pt().addEventListener("visibilitychange",C),e.el.addEventListener("focus",I,!0),e.el.addEventListener("focus",I,!0),e.el.addEventListener("pointerdown",U,!0),e.el.addEventListener("pointerup",H,!0)};function ne(){s&&s.remove();let{nextEl:te,prevEl:B}=e.navigation?e.navigation:{};te=$e(te),B=$e(B),te&&te.forEach(Y=>Y.removeEventListener("keydown",T)),B&&B.forEach(Y=>Y.removeEventListener("keydown",T)),P()&&$e(e.pagination.el).forEach(ce=>{ce.removeEventListener("keydown",T)}),pt().removeEventListener("visibilitychange",C),e.el&&typeof e.el!="string"&&(e.el.removeEventListener("focus",I,!0),e.el.removeEventListener("pointerdown",U,!0),e.el.removeEventListener("pointerup",H,!0))}n("beforeInit",()=>{s=Kt("span",e.params.a11y.notificationClass),s.setAttribute("aria-live","assertive"),s.setAttribute("aria-atomic","true")}),n("afterInit",()=>{e.params.a11y.enabled&&J()}),n("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{e.params.a11y.enabled&&N()}),n("fromEdge toEdge afterInit lock unlock",()=>{e.params.a11y.enabled&&x()}),n("paginationUpdate",()=>{e.params.a11y.enabled&&L()}),n("destroy",()=>{e.params.a11y.enabled&&ne()})}function P$(t){let{swiper:e,extendParams:r,on:n}=t;r({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let s=!1,i={};const a=p=>p.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=p=>{const m=rt();let b;p?b=new URL(p):b=m.location;const v=b.pathname.slice(1).split("/").filter(T=>T!==""),_=v.length,E=v[_-2],y=v[_-1];return{key:E,value:y}},l=(p,m)=>{const b=rt();if(!s||!e.params.history.enabled)return;let v;e.params.url?v=new URL(e.params.url):v=b.location;const _=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${m}"]`):e.slides[m];let E=a(_.getAttribute("data-history"));if(e.params.history.root.length>0){let T=e.params.history.root;T[T.length-1]==="/"&&(T=T.slice(0,T.length-1)),E=`${T}/${p?`${p}/`:""}${E}`}else v.pathname.includes(p)||(E=`${p?`${p}/`:""}${E}`);e.params.history.keepQuery&&(E+=v.search);const y=b.history.state;y&&y.value===E||(e.params.history.replaceState?b.history.replaceState({value:E},null,E):b.history.pushState({value:E},null,E))},u=(p,m,b)=>{if(m)for(let v=0,_=e.slides.length;v<_;v+=1){const E=e.slides[v];if(a(E.getAttribute("data-history"))===m){const T=e.getSlideIndex(E);e.slideTo(T,p,b)}}else e.slideTo(0,p,b)},c=()=>{i=o(e.params.url),u(e.params.speed,i.value,!1)},f=()=>{const p=rt();if(e.params.history){if(!p.history||!p.history.pushState){e.params.history.enabled=!1,e.params.hashNavigation.enabled=!0;return}if(s=!0,i=o(e.params.url),!i.key&&!i.value){e.params.history.replaceState||p.addEventListener("popstate",c);return}u(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||p.addEventListener("popstate",c)}},d=()=>{const p=rt();e.params.history.replaceState||p.removeEventListener("popstate",c)};n("init",()=>{e.params.history.enabled&&f()}),n("destroy",()=>{e.params.history.enabled&&d()}),n("transitionEnd _freeModeNoMomentumRelease",()=>{s&&l(e.params.history.key,e.activeIndex)}),n("slideChange",()=>{s&&e.params.cssMode&&l(e.params.history.key,e.activeIndex)})}function k$(t){let{swiper:e,extendParams:r,emit:n,on:s}=t,i=!1;const a=pt(),o=rt();r({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(d,p){if(e.virtual&&e.params.virtual.enabled){const m=e.slides.find(v=>v.getAttribute("data-hash")===p);return m?parseInt(m.getAttribute("data-swiper-slide-index"),10):0}return e.getSlideIndex(yt(e.slidesEl,`.${e.params.slideClass}[data-hash="${p}"], swiper-slide[data-hash="${p}"]`)[0])}}});const l=()=>{n("hashChange");const d=a.location.hash.replace("#",""),p=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],m=p?p.getAttribute("data-hash"):"";if(d!==m){const b=e.params.hashNavigation.getSlideIndex(e,d);if(typeof b>"u"||Number.isNaN(b))return;e.slideTo(b)}},u=()=>{if(!i||!e.params.hashNavigation.enabled)return;const d=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],p=d?d.getAttribute("data-hash")||d.getAttribute("data-history"):"";e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState?(o.history.replaceState(null,null,`#${p}`||""),n("hashSet")):(a.location.hash=p||"",n("hashSet"))},c=()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;i=!0;const d=a.location.hash.replace("#","");if(d){const m=e.params.hashNavigation.getSlideIndex(e,d);e.slideTo(m||0,0,e.params.runCallbacksOnInit,!0)}e.params.hashNavigation.watchState&&o.addEventListener("hashchange",l)},f=()=>{e.params.hashNavigation.watchState&&o.removeEventListener("hashchange",l)};s("init",()=>{e.params.hashNavigation.enabled&&c()}),s("destroy",()=>{e.params.hashNavigation.enabled&&f()}),s("transitionEnd _freeModeNoMomentumRelease",()=>{i&&u()}),s("slideChange",()=>{i&&e.params.cssMode&&u()})}function R$(t){let{swiper:e,extendParams:r,on:n,emit:s,params:i}=t;e.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let a,o,l=i&&i.autoplay?i.autoplay.delay:3e3,u=i&&i.autoplay?i.autoplay.delay:3e3,c,f=new Date().getTime(),d,p,m,b,v,_,E;function y(B){!e||e.destroyed||!e.wrapperEl||B.target===e.wrapperEl&&(e.wrapperEl.removeEventListener("transitionend",y),!(E||B.detail&&B.detail.bySwiperTouchMove)&&U())}const T=()=>{if(e.destroyed||!e.autoplay.running)return;e.autoplay.paused?d=!0:d&&(u=c,d=!1);const B=e.autoplay.paused?c:f+u-new Date().getTime();e.autoplay.timeLeft=B,s("autoplayTimeLeft",B,B/l),o=requestAnimationFrame(()=>{T()})},x=()=>{let B;return e.virtual&&e.params.virtual.enabled?B=e.slides.find(Y=>Y.classList.contains("swiper-slide-active")):B=e.slides[e.activeIndex],B?parseInt(B.getAttribute("data-swiper-autoplay"),10):void 0},A=B=>{if(e.destroyed||!e.autoplay.running)return;cancelAnimationFrame(o),T();let ae=typeof B>"u"?e.params.autoplay.delay:B;l=e.params.autoplay.delay,u=e.params.autoplay.delay;const Y=x();!Number.isNaN(Y)&&Y>0&&typeof B>"u"&&(ae=Y,l=Y,u=Y),c=ae;const ce=e.params.speed,$=()=>{!e||e.destroyed||(e.params.autoplay.reverseDirection?!e.isBeginning||e.params.loop||e.params.rewind?(e.slidePrev(ce,!0,!0),s("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(e.slides.length-1,ce,!0,!0),s("autoplay")):!e.isEnd||e.params.loop||e.params.rewind?(e.slideNext(ce,!0,!0),s("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(0,ce,!0,!0),s("autoplay")),e.params.cssMode&&(f=new Date().getTime(),requestAnimationFrame(()=>{A()})))};return ae>0?(clearTimeout(a),a=setTimeout(()=>{$()},ae)):requestAnimationFrame(()=>{$()}),ae},P=()=>{f=new Date().getTime(),e.autoplay.running=!0,A(),s("autoplayStart")},L=()=>{e.autoplay.running=!1,clearTimeout(a),cancelAnimationFrame(o),s("autoplayStop")},W=(B,ae)=>{if(e.destroyed||!e.autoplay.running)return;clearTimeout(a),B||(_=!0);const Y=()=>{s("autoplayPause"),e.params.autoplay.waitForTransition?e.wrapperEl.addEventListener("transitionend",y):U()};if(e.autoplay.paused=!0,ae){v&&(c=e.params.autoplay.delay),v=!1,Y();return}c=(c||e.params.autoplay.delay)-(new Date().getTime()-f),!(e.isEnd&&c<0&&!e.params.loop)&&(c<0&&(c=0),Y())},U=()=>{e.isEnd&&c<0&&!e.params.loop||e.destroyed||!e.autoplay.running||(f=new Date().getTime(),_?(_=!1,A(c)):A(),e.autoplay.paused=!1,s("autoplayResume"))},H=()=>{if(e.destroyed||!e.autoplay.running)return;const B=pt();B.visibilityState==="hidden"&&(_=!0,W(!0)),B.visibilityState==="visible"&&U()},C=B=>{B.pointerType==="mouse"&&(_=!0,E=!0,!(e.animating||e.autoplay.paused)&&W(!0))},I=B=>{B.pointerType==="mouse"&&(E=!1,e.autoplay.paused&&U())},N=()=>{e.params.autoplay.pauseOnMouseEnter&&(e.el.addEventListener("pointerenter",C),e.el.addEventListener("pointerleave",I))},J=()=>{e.el&&typeof e.el!="string"&&(e.el.removeEventListener("pointerenter",C),e.el.removeEventListener("pointerleave",I))},ne=()=>{pt().addEventListener("visibilitychange",H)},te=()=>{pt().removeEventListener("visibilitychange",H)};n("init",()=>{e.params.autoplay.enabled&&(N(),ne(),P())}),n("destroy",()=>{J(),te(),e.autoplay.running&&L()}),n("_freeModeStaticRelease",()=>{(m||_)&&U()}),n("_freeModeNoMomentumRelease",()=>{e.params.autoplay.disableOnInteraction?L():W(!0,!0)}),n("beforeTransitionStart",(B,ae,Y)=>{e.destroyed||!e.autoplay.running||(Y||!e.params.autoplay.disableOnInteraction?W(!0,!0):L())}),n("sliderFirstMove",()=>{if(!(e.destroyed||!e.autoplay.running)){if(e.params.autoplay.disableOnInteraction){L();return}p=!0,m=!1,_=!1,b=setTimeout(()=>{_=!0,m=!0,W(!0)},200)}}),n("touchEnd",()=>{if(!(e.destroyed||!e.autoplay.running||!p)){if(clearTimeout(b),clearTimeout(a),e.params.autoplay.disableOnInteraction){m=!1,p=!1;return}m&&e.params.cssMode&&U(),m=!1,p=!1}}),n("slideChange",()=>{e.destroyed||!e.autoplay.running||(v=!0)}),Object.assign(e.autoplay,{start:P,stop:L,pause:W,resume:U})}function L$(t){let{swiper:e,extendParams:r,on:n}=t;r({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let s=!1,i=!1;e.thumbs={swiper:null};function a(){const u=e.thumbs.swiper;if(!u||u.destroyed)return;const c=u.clickedIndex,f=u.clickedSlide;if(f&&f.classList.contains(e.params.thumbs.slideThumbActiveClass)||typeof c>"u"||c===null)return;let d;u.params.loop?d=parseInt(u.clickedSlide.getAttribute("data-swiper-slide-index"),10):d=c,e.params.loop?e.slideToLoop(d):e.slideTo(d)}function o(){const{thumbs:u}=e.params;if(s)return!1;s=!0;const c=e.constructor;if(u.swiper instanceof c)e.thumbs.swiper=u.swiper,Object.assign(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper.update();else if(ho(u.swiper)){const f=Object.assign({},u.swiper);Object.assign(f,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper=new c(f),i=!0}return e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",a),!0}function l(u){const c=e.thumbs.swiper;if(!c||c.destroyed)return;const f=c.params.slidesPerView==="auto"?c.slidesPerViewDynamic():c.params.slidesPerView;let d=1;const p=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(d=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(d=1),d=Math.floor(d),c.slides.forEach(v=>v.classList.remove(p)),c.params.loop||c.params.virtual&&c.params.virtual.enabled)for(let v=0;v{_.classList.add(p)});else for(let v=0;vT.getAttribute("data-swiper-slide-index")===`${e.realIndex}`);_=c.slides.indexOf(y),E=e.activeIndex>e.previousIndex?"next":"prev"}else _=e.realIndex,E=_>e.previousIndex?"next":"prev";b&&(_+=E==="next"?m:-1*m),c.visibleSlidesIndexes&&c.visibleSlidesIndexes.indexOf(_)<0&&(c.params.centeredSlides?_>v?_=_-Math.floor(f/2)+1:_=_+Math.floor(f/2)-1:_>v&&c.params.slidesPerGroup,c.slideTo(_,u?0:void 0))}}n("beforeInit",()=>{const{thumbs:u}=e.params;if(!(!u||!u.swiper))if(typeof u.swiper=="string"||u.swiper instanceof HTMLElement){const c=pt(),f=()=>{const p=typeof u.swiper=="string"?c.querySelector(u.swiper):u.swiper;if(p&&p.swiper)u.swiper=p.swiper,o(),l(!0);else if(p){const m=`${e.params.eventsPrefix}init`,b=v=>{u.swiper=v.detail[0],p.removeEventListener(m,b),o(),l(!0),u.swiper.update(),e.update()};p.addEventListener(m,b)}return p},d=()=>{if(e.destroyed)return;f()||requestAnimationFrame(d)};requestAnimationFrame(d)}else o(),l(!0)}),n("slideChange update resize observerUpdate",()=>{l()}),n("setTransition",(u,c)=>{const f=e.thumbs.swiper;!f||f.destroyed||f.setTransition(c)}),n("beforeDestroy",()=>{const u=e.thumbs.swiper;!u||u.destroyed||i&&u.destroy()}),Object.assign(e.thumbs,{init:o,update:l})}function N$(t){let{swiper:e,extendParams:r,emit:n,once:s}=t;r({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}});function i(){if(e.params.cssMode)return;const l=e.getTranslate();e.setTranslate(l),e.setTransition(0),e.touchEventsData.velocities.length=0,e.freeMode.onTouchEnd({currentPos:e.rtl?e.translate:-e.translate})}function a(){if(e.params.cssMode)return;const{touchEventsData:l,touches:u}=e;l.velocities.length===0&&l.velocities.push({position:u[e.isHorizontal()?"startX":"startY"],time:l.touchStartTime}),l.velocities.push({position:u[e.isHorizontal()?"currentX":"currentY"],time:ir()})}function o(l){let{currentPos:u}=l;if(e.params.cssMode)return;const{params:c,wrapperEl:f,rtlTranslate:d,snapGrid:p,touchEventsData:m}=e,v=ir()-m.touchStartTime;if(u<-e.minTranslate()){e.slideTo(e.activeIndex);return}if(u>-e.maxTranslate()){e.slides.length1){const L=m.velocities.pop(),W=m.velocities.pop(),U=L.position-W.position,H=L.time-W.time;e.velocity=U/H,e.velocity/=2,Math.abs(e.velocity)150||ir()-L.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=c.freeMode.momentumVelocityRatio,m.velocities.length=0;let _=1e3*c.freeMode.momentumRatio;const E=e.velocity*_;let y=e.translate+E;d&&(y=-y);let T=!1,x;const A=Math.abs(e.velocity)*20*c.freeMode.momentumBounceRatio;let P;if(ye.minTranslate())c.freeMode.momentumBounce?(y-e.minTranslate()>A&&(y=e.minTranslate()+A),x=e.minTranslate(),T=!0,m.allowMomentumBounce=!0):y=e.minTranslate(),c.loop&&c.centeredSlides&&(P=!0);else if(c.freeMode.sticky){let L;for(let W=0;W-y){L=W;break}Math.abs(p[L]-y){e.loopFix()}),e.velocity!==0){if(d?_=Math.abs((-y-e.translate)/e.velocity):_=Math.abs((y-e.translate)/e.velocity),c.freeMode.sticky){const L=Math.abs((d?-y:y)-e.translate),W=e.slidesSizesGrid[e.activeIndex];L{!e||e.destroyed||!m.allowMomentumBounce||(n("momentumBounce"),e.setTransition(c.speed),setTimeout(()=>{e.setTranslate(x),So(f,()=>{!e||e.destroyed||e.transitionEnd()})},0))})):e.velocity?(n("_freeModeNoMomentumRelease"),e.updateProgress(y),e.setTransition(_),e.setTranslate(y),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,So(f,()=>{!e||e.destroyed||e.transitionEnd()}))):e.updateProgress(y),e.updateActiveIndex(),e.updateSlidesClasses()}else if(c.freeMode.sticky){e.slideToClosest();return}else c.freeMode&&n("_freeModeNoMomentumRelease");(!c.freeMode.momentum||v>=c.longSwipesMs)&&(n("_freeModeStaticRelease"),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}Object.assign(e,{freeMode:{onTouchStart:i,onTouchMove:a,onTouchEnd:o}})}function D$(t){let{swiper:e,extendParams:r,on:n}=t;r({grid:{rows:1,fill:"column"}});let s,i,a,o;const l=()=>{let b=e.params.spaceBetween;return typeof b=="string"&&b.indexOf("%")>=0?b=parseFloat(b.replace("%",""))/100*e.size:typeof b=="string"&&(b=parseFloat(b)),b},u=b=>{const{slidesPerView:v}=e.params,{rows:_,fill:E}=e.params.grid,y=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:b.length;a=Math.floor(y/_),Math.floor(y/_)===y/_?s=y:s=Math.ceil(y/_)*_,v!=="auto"&&E==="row"&&(s=Math.max(s,v*_)),i=s/_},c=()=>{e.slides&&e.slides.forEach(b=>{b.swiperSlideGridSet&&(b.style.height="",b.style[e.getDirectionLabel("margin-top")]="")})},f=(b,v,_)=>{const{slidesPerGroup:E}=e.params,y=l(),{rows:T,fill:x}=e.params.grid,A=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:_.length;let P,L,W;if(x==="row"&&E>1){const U=Math.floor(b/(E*T)),H=b-T*E*U,C=U===0?E:Math.min(Math.ceil((A-U*T*E)/T),E);W=Math.floor(H/C),L=H-W*C+U*E,P=L+W*s/T,v.style.order=P}else x==="column"?(L=Math.floor(b/T),W=b-L*T,(L>a||L===a&&W===T-1)&&(W+=1,W>=T&&(W=0,L+=1))):(W=Math.floor(b/i),L=b-W*i);v.row=W,v.column=L,v.style.height=`calc((100% - ${(T-1)*y}px) / ${T})`,v.style[e.getDirectionLabel("margin-top")]=W!==0?y&&`${y}px`:"",v.swiperSlideGridSet=!0},d=(b,v)=>{const{centeredSlides:_,roundLengths:E}=e.params,y=l(),{rows:T}=e.params.grid;if(e.virtualSize=(b+y)*s,e.virtualSize=Math.ceil(e.virtualSize/T)-y,e.params.cssMode||(e.wrapperEl.style[e.getDirectionLabel("width")]=`${e.virtualSize+y}px`),_){const x=[];for(let A=0;A{o=e.params.grid&&e.params.grid.rows>1},m=()=>{const{params:b,el:v}=e,_=b.grid&&b.grid.rows>1;o&&!_?(v.classList.remove(`${b.containerModifierClass}grid`,`${b.containerModifierClass}grid-column`),a=1,e.emitContainerClasses()):!o&&_&&(v.classList.add(`${b.containerModifierClass}grid`),b.grid.fill==="column"&&v.classList.add(`${b.containerModifierClass}grid-column`),e.emitContainerClasses()),o=_};n("init",p),n("update",m),e.grid={initSlides:u,unsetSlides:c,updateSlide:f,updateWrapperSize:d}}function B$(t){const e=this,{params:r,slidesEl:n}=e;r.loop&&e.loopDestroy();const s=i=>{if(typeof i=="string"){const a=document.createElement("div");a.innerHTML=i,n.append(a.children[0]),a.innerHTML=""}else n.append(i)};if(typeof t=="object"&&"length"in t)for(let i=0;i{if(typeof o=="string"){const l=document.createElement("div");l.innerHTML=o,s.prepend(l.children[0]),l.innerHTML=""}else s.prepend(o)};if(typeof t=="object"&&"length"in t){for(let o=0;o=o){r.appendSlide(e);return}let l=a>t?a+1:a;const u=[];for(let c=o-1;c>=t;c-=1){const f=r.slides[c];f.remove(),u.unshift(f)}if(typeof e=="object"&&"length"in e){for(let c=0;ct?a+e.length:a}else i.append(e);for(let c=0;c{if(r.params.effect!==e)return;r.classNames.push(`${r.params.containerModifierClass}${e}`),o&&o()&&r.classNames.push(`${r.params.containerModifierClass}3d`);const f=a?a():{};Object.assign(r.params,f),Object.assign(r.originalParams,f)}),n("setTranslate",()=>{r.params.effect===e&&s()}),n("setTransition",(f,d)=>{r.params.effect===e&&i(d)}),n("transitionEnd",()=>{if(r.params.effect===e&&l){if(!u||!u().slideShadows)return;r.slides.forEach(f=>{f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>d.remove())}),l()}});let c;n("virtualUpdate",()=>{r.params.effect===e&&(r.slides.length||(c=!0),requestAnimationFrame(()=>{c&&r.slides&&r.slides.length&&(s(),c=!1)}))})}function Zo(t,e){const r=Fi(e);return r!==e&&(r.style.backfaceVisibility="hidden",r.style["-webkit-backface-visibility"]="hidden"),r}function vu(t){let{swiper:e,duration:r,transformElements:n,allSlides:s}=t;const{activeIndex:i}=e,a=o=>o.parentElement?o.parentElement:e.slides.find(u=>u.shadowRoot&&u.shadowRoot===o.parentNode);if(e.params.virtualTranslate&&r!==0){let o=!1,l;s?l=n:l=n.filter(u=>{const c=u.classList.contains("swiper-slide-transform")?a(u):u;return e.getSlideIndex(c)===i}),l.forEach(u=>{So(u,()=>{if(o||!e||e.destroyed)return;o=!0,e.animating=!1;const c=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(c)})})}}function H$(t){let{swiper:e,extendParams:r,on:n}=t;r({fadeEffect:{crossFade:!1}}),$s({effect:"fade",swiper:e,on:n,setTranslate:()=>{const{slides:a}=e,o=e.params.fadeEffect;for(let l=0;l{const o=e.slides.map(l=>Fi(l));o.forEach(l=>{l.style.transitionDuration=`${a}ms`}),vu({swiper:e,duration:a,transformElements:o,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function z$(t){let{swiper:e,extendParams:r,on:n}=t;r({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const s=(l,u,c)=>{let f=c?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),d=c?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");f||(f=Kt("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"left":"top"}`.split(" ")),l.append(f)),d||(d=Kt("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"right":"bottom"}`.split(" ")),l.append(d)),f&&(f.style.opacity=Math.max(-u,0)),d&&(d.style.opacity=Math.max(u,0))};$s({effect:"cube",swiper:e,on:n,setTranslate:()=>{const{el:l,wrapperEl:u,slides:c,width:f,height:d,rtlTranslate:p,size:m,browser:b}=e,v=du(e),_=e.params.cubeEffect,E=e.isHorizontal(),y=e.virtual&&e.params.virtual.enabled;let T=0,x;_.shadow&&(E?(x=e.wrapperEl.querySelector(".swiper-cube-shadow"),x||(x=Kt("div","swiper-cube-shadow"),e.wrapperEl.append(x)),x.style.height=`${f}px`):(x=l.querySelector(".swiper-cube-shadow"),x||(x=Kt("div","swiper-cube-shadow"),l.append(x))));for(let P=0;P-1&&(T=W*90+C*90,p&&(T=-W*90-C*90)),L.style.transform=ne,_.slideShadows&&s(L,C,E)}if(u.style.transformOrigin=`50% 50% -${m/2}px`,u.style["-webkit-transform-origin"]=`50% 50% -${m/2}px`,_.shadow)if(E)x.style.transform=`translate3d(0px, ${f/2+_.shadowOffset}px, ${-f/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${_.shadowScale})`;else{const P=Math.abs(T)-Math.floor(Math.abs(T)/90)*90,L=1.5-(Math.sin(P*2*Math.PI/360)/2+Math.cos(P*2*Math.PI/360)/2),W=_.shadowScale,U=_.shadowScale/L,H=_.shadowOffset;x.style.transform=`scale3d(${W}, 1, ${U}) translate3d(0px, ${d/2+H}px, ${-d/2/U}px) rotateX(-89.99deg)`}const A=(b.isSafari||b.isWebView)&&b.needPerspectiveFix?-m/2:0;u.style.transform=`translate3d(0px,0,${A}px) rotateX(${v(e.isHorizontal()?0:T)}deg) rotateY(${v(e.isHorizontal()?-T:0)}deg)`,u.style.setProperty("--swiper-cube-translate-z",`${A}px`)},setTransition:l=>{const{el:u,slides:c}=e;if(c.forEach(f=>{f.style.transitionDuration=`${l}ms`,f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>{d.style.transitionDuration=`${l}ms`})}),e.params.cubeEffect.shadow&&!e.isHorizontal()){const f=u.querySelector(".swiper-cube-shadow");f&&(f.style.transitionDuration=`${l}ms`)}},recreateShadows:()=>{const l=e.isHorizontal();e.slides.forEach(u=>{const c=Math.max(Math.min(u.progress,1),-1);s(u,c,l)})},getEffectParams:()=>e.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})}function As(t,e,r){const n=`swiper-slide-shadow${r?`-${r}`:""}${t?` swiper-slide-shadow-${t}`:""}`,s=Fi(e);let i=s.querySelector(`.${n.split(" ").join(".")}`);return i||(i=Kt("div",n.split(" ")),s.append(i)),i}function V$(t){let{swiper:e,extendParams:r,on:n}=t;r({flipEffect:{slideShadows:!0,limitRotation:!0}});const s=(l,u)=>{let c=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),f=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");c||(c=As("flip",l,e.isHorizontal()?"left":"top")),f||(f=As("flip",l,e.isHorizontal()?"right":"bottom")),c&&(c.style.opacity=Math.max(-u,0)),f&&(f.style.opacity=Math.max(u,0))};$s({effect:"flip",swiper:e,on:n,setTranslate:()=>{const{slides:l,rtlTranslate:u}=e,c=e.params.flipEffect,f=du(e);for(let d=0;d{const u=e.slides.map(c=>Fi(c));u.forEach(c=>{c.style.transitionDuration=`${l}ms`,c.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(f=>{f.style.transitionDuration=`${l}ms`})}),vu({swiper:e,duration:l,transformElements:u})},recreateShadows:()=>{e.params.flipEffect,e.slides.forEach(l=>{let u=l.progress;e.params.flipEffect.limitRotation&&(u=Math.max(Math.min(l.progress,1),-1)),s(l,u)})},getEffectParams:()=>e.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function q$(t){let{swiper:e,extendParams:r,on:n}=t;r({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),$s({effect:"coverflow",swiper:e,on:n,setTranslate:()=>{const{width:a,height:o,slides:l,slidesSizesGrid:u}=e,c=e.params.coverflowEffect,f=e.isHorizontal(),d=e.translate,p=f?-d+a/2:-d+o/2,m=f?c.rotate:-c.rotate,b=c.depth,v=du(e);for(let _=0,E=l.length;_0?P:0),B&&(B.style.opacity=-P>0?-P:0)}}},setTransition:a=>{e.slides.map(l=>Fi(l)).forEach(l=>{l.style.transitionDuration=`${a}ms`,l.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(u=>{u.style.transitionDuration=`${a}ms`})})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})}function Y$(t){let{swiper:e,extendParams:r,on:n}=t;r({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const s=o=>typeof o=="string"?o:`${o}px`;$s({effect:"creative",swiper:e,on:n,setTranslate:()=>{const{slides:o,wrapperEl:l,slidesSizesGrid:u}=e,c=e.params.creativeEffect,{progressMultiplier:f}=c,d=e.params.centeredSlides,p=du(e);if(d){const m=u[0]/2-e.params.slidesOffsetBefore||0;l.style.transform=`translateX(calc(50% - ${m}px))`}for(let m=0;m0&&(P=c.prev,A=!0),T.forEach((N,J)=>{T[J]=`calc(${N}px + (${s(P.translate[J])} * ${Math.abs(_*f)}))`}),x.forEach((N,J)=>{let ne=P.rotate[J]*Math.abs(_*f);x[J]=ne}),b.style.zIndex=-Math.abs(Math.round(v))+o.length;const L=T.join(", "),W=`rotateX(${p(x[0])}deg) rotateY(${p(x[1])}deg) rotateZ(${p(x[2])}deg)`,U=E<0?`scale(${1+(1-P.scale)*E*f})`:`scale(${1-(1-P.scale)*E*f})`,H=E<0?1+(1-P.opacity)*E*f:1-(1-P.opacity)*E*f,C=`translate3d(${L}) ${W} ${U}`;if(A&&P.shadow||!A){let N=b.querySelector(".swiper-slide-shadow");if(!N&&P.shadow&&(N=As("creative",b)),N){const J=c.shadowPerProgress?_*(1/c.limitProgress):_;N.style.opacity=Math.min(Math.max(Math.abs(J),0),1)}}const I=Zo(c,b);I.style.transform=C,I.style.opacity=H,P.origin&&(I.style.transformOrigin=P.origin)}},setTransition:o=>{const l=e.slides.map(u=>Fi(u));l.forEach(u=>{u.style.transitionDuration=`${o}ms`,u.querySelectorAll(".swiper-slide-shadow").forEach(c=>{c.style.transitionDuration=`${o}ms`})}),vu({swiper:e,duration:o,transformElements:l,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}function G$(t){let{swiper:e,extendParams:r,on:n}=t;r({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),$s({effect:"cards",swiper:e,on:n,setTranslate:()=>{const{slides:a,activeIndex:o,rtlTranslate:l}=e,u=e.params.cardsEffect,{startTranslate:c,isTouched:f}=e.touchEventsData,d=l?-e.translate:e.translate;for(let p=0;p0&&v<1&&(f||e.params.cssMode)&&d-1&&(f||e.params.cssMode)&&d>c;if(W||U){const N=(1-Math.abs((Math.abs(v)-.5)/.5))**.5;A+=-28*v*N,x+=-.5*N,P+=96*N,y=`${-25*N*Math.abs(v)}%`}if(v<0?E=`calc(${E}px ${l?"-":"+"} (${P*Math.abs(v)}%))`:v>0?E=`calc(${E}px ${l?"-":"+"} (-${P*Math.abs(v)}%))`:E=`${E}px`,!e.isHorizontal()){const N=y;y=E,E=N}const H=v<0?`${1+(1-x)*v}`:`${1-(1-x)*v}`,C=` - translate3d(${E}, ${y}, ${T}px) - rotateZ(${u.rotate?l?-A:A:0}deg) - scale(${H}) - `;if(u.slideShadows){let N=m.querySelector(".swiper-slide-shadow");N||(N=As("cards",m)),N&&(N.style.opacity=Math.min(Math.max((Math.abs(v)-.5)/.5,0),1))}m.style.zIndex=-Math.abs(Math.round(b))+a.length;const I=Zo(u,m);I.style.transform=C}},setTransition:a=>{const o=e.slides.map(l=>Fi(l));o.forEach(l=>{l.style.transitionDuration=`${a}ms`,l.querySelectorAll(".swiper-slide-shadow").forEach(u=>{u.style.transitionDuration=`${a}ms`})}),vu({swiper:e,duration:a,transformElements:o})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}const K$=[v$,E$,S$,T$,x$,A$,C$,I$,M$,O$,P$,k$,R$,L$,N$,D$,W$,H$,z$,V$,q$,Y$,G$];qt.use(K$);const Eu=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","swiperElementNodeName","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function Cs(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"&&!t.__swiper__}function yh(t,e){const r=["__proto__","constructor","prototype"];Object.keys(e).filter(n=>r.indexOf(n)<0).forEach(n=>{typeof t[n]>"u"?t[n]=e[n]:Cs(e[n])&&Cs(t[n])&&Object.keys(e[n]).length>0?e[n].__swiper__?t[n]=e[n]:yh(t[n],e[n]):t[n]=e[n]})}function X$(t){return t===void 0&&(t={}),t.navigation&&typeof t.navigation.nextEl>"u"&&typeof t.navigation.prevEl>"u"}function Q$(t){return t===void 0&&(t={}),t.pagination&&typeof t.pagination.el>"u"}function J$(t){return t===void 0&&(t={}),t.scrollbar&&typeof t.scrollbar.el>"u"}function sl(t){return t===void 0&&(t=""),t.replace(/-[a-z]/g,e=>e.toUpperCase().replace("-",""))}function Z$(t){let{swiper:e,slides:r,passedParams:n,changedParams:s,nextEl:i,prevEl:a,scrollbarEl:o,paginationEl:l}=t;const u=s.filter(W=>W!=="children"&&W!=="direction"&&W!=="wrapperClass"),{params:c,pagination:f,navigation:d,scrollbar:p,virtual:m,thumbs:b}=e;let v,_,E,y,T,x,A,P;s.includes("thumbs")&&n.thumbs&&n.thumbs.swiper&&!n.thumbs.swiper.destroyed&&c.thumbs&&(!c.thumbs.swiper||c.thumbs.swiper.destroyed)&&(v=!0),s.includes("controller")&&n.controller&&n.controller.control&&c.controller&&!c.controller.control&&(_=!0),s.includes("pagination")&&n.pagination&&(n.pagination.el||l)&&(c.pagination||c.pagination===!1)&&f&&!f.el&&(E=!0),s.includes("scrollbar")&&n.scrollbar&&(n.scrollbar.el||o)&&(c.scrollbar||c.scrollbar===!1)&&p&&!p.el&&(y=!0),s.includes("navigation")&&n.navigation&&(n.navigation.prevEl||a)&&(n.navigation.nextEl||i)&&(c.navigation||c.navigation===!1)&&d&&!d.prevEl&&!d.nextEl&&(T=!0);const L=W=>{e[W]&&(e[W].destroy(),W==="navigation"?(e.isElement&&(e[W].prevEl.remove(),e[W].nextEl.remove()),c[W].prevEl=void 0,c[W].nextEl=void 0,e[W].prevEl=void 0,e[W].nextEl=void 0):(e.isElement&&e[W].el.remove(),c[W].el=void 0,e[W].el=void 0))};s.includes("loop")&&e.isElement&&(c.loop&&!n.loop?x=!0:!c.loop&&n.loop?A=!0:P=!0),u.forEach(W=>{if(Cs(c[W])&&Cs(n[W]))Object.assign(c[W],n[W]),(W==="navigation"||W==="pagination"||W==="scrollbar")&&"enabled"in n[W]&&!n[W].enabled&&L(W);else{const U=n[W];(U===!0||U===!1)&&(W==="navigation"||W==="pagination"||W==="scrollbar")?U===!1&&L(W):c[W]=n[W]}}),u.includes("controller")&&!_&&e.controller&&e.controller.control&&c.controller&&c.controller.control&&(e.controller.control=c.controller.control),s.includes("children")&&r&&m&&c.virtual.enabled?(m.slides=r,m.update(!0)):s.includes("virtual")&&m&&c.virtual.enabled&&(r&&(m.slides=r),m.update(!0)),s.includes("children")&&r&&c.loop&&(P=!0),v&&b.init()&&b.update(!0),_&&(e.controller.control=c.controller.control),E&&(e.isElement&&(!l||typeof l=="string")&&(l=document.createElement("div"),l.classList.add("swiper-pagination"),l.part.add("pagination"),e.el.appendChild(l)),l&&(c.pagination.el=l),f.init(),f.render(),f.update()),y&&(e.isElement&&(!o||typeof o=="string")&&(o=document.createElement("div"),o.classList.add("swiper-scrollbar"),o.part.add("scrollbar"),e.el.appendChild(o)),o&&(c.scrollbar.el=o),p.init(),p.updateSize(),p.setTranslate()),T&&(e.isElement&&((!i||typeof i=="string")&&(i=document.createElement("div"),i.classList.add("swiper-button-next"),i.innerHTML=e.hostEl.constructor.nextButtonSvg,i.part.add("button-next"),e.el.appendChild(i)),(!a||typeof a=="string")&&(a=document.createElement("div"),a.classList.add("swiper-button-prev"),a.innerHTML=e.hostEl.constructor.prevButtonSvg,a.part.add("button-prev"),e.el.appendChild(a))),i&&(c.navigation.nextEl=i),a&&(c.navigation.prevEl=a),d.init(),d.update()),s.includes("allowSlideNext")&&(e.allowSlideNext=n.allowSlideNext),s.includes("allowSlidePrev")&&(e.allowSlidePrev=n.allowSlidePrev),s.includes("direction")&&e.changeDirection(n.direction,!1),(x||P)&&e.loopDestroy(),(A||P)&&e.loopCreate(),e.update()}const Dy=t=>{if(parseFloat(t)===Number(t))return Number(t);if(t==="true"||t==="")return!0;if(t==="false")return!1;if(t==="null")return null;if(t!=="undefined"){if(typeof t=="string"&&t.includes("{")&&t.includes("}")&&t.includes('"')){let e;try{e=JSON.parse(t)}catch{e=t}return e}return t}},By=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function $y(t,e,r){const n={},s={};yh(n,ch);const i=[...Eu,"on"],a=i.map(l=>l.replace(/_/,""));i.forEach(l=>{l=l.replace("_",""),typeof t[l]<"u"&&(s[l]=t[l])});const o=[...t.attributes];return typeof e=="string"&&typeof r<"u"&&o.push({name:e,value:Cs(r)?{...r}:r}),o.forEach(l=>{const u=By.find(c=>l.name.startsWith(`${c}-`));if(u){const c=sl(u),f=sl(l.name.split(`${u}-`)[1]);typeof s[c]>"u"&&(s[c]={}),s[c]===!0&&(s[c]={enabled:!0}),s[c][f]=Dy(l.value)}else{const c=sl(l.name);if(!a.includes(c))return;const f=Dy(l.value);s[c]&&By.includes(l.name)&&!Cs(f)?(s[c].constructor!==Object&&(s[c]={}),s[c].enabled=!!f):s[c]=f}}),yh(n,s),n.navigation?n.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...n.navigation!==!0?n.navigation:{}}:n.navigation===!1&&delete n.navigation,n.scrollbar?n.scrollbar={el:".swiper-scrollbar",...n.scrollbar!==!0?n.scrollbar:{}}:n.scrollbar===!1&&delete n.scrollbar,n.pagination?n.pagination={el:".swiper-pagination",...n.pagination!==!0?n.pagination:{}}:n.pagination===!1&&delete n.pagination,{params:n,passedParams:s}}const eF=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}",tF="::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}";class rF{}const GE=typeof window>"u"||typeof HTMLElement>"u"?rF:HTMLElement,Fy=` - `,KE=(t,e)=>{if(typeof CSSStyleSheet<"u"&&t.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(e),t.adoptedStyleSheets=[r]}else{const r=document.createElement("style");r.rel="stylesheet",r.textContent=e,t.appendChild(r)}};class XE extends GE{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return Fy}static get prevButtonSvg(){return Fy.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[eF,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join(` -`)}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,r=[...this.querySelectorAll("[slot^=slide-]")].map(n=>parseInt(n.getAttribute("slot").split("slide-")[1],10));if(this.slideSlots=r.length?Math.max(...r)+1:0,!!this.rendered){if(this.slideSlots>e)for(let n=e;n=0;s-=1)s>this.slideSlots&&n[s].remove()}}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&KE(this.shadowRoot,e),this.cssLinks().forEach(n=>{if(this.shadowRoot.querySelector(`link[href="${n}"]`))return;const i=document.createElement("link");i.rel="stylesheet",i.href=n,this.shadowRoot.appendChild(i)});const r=document.createElement("div");r.classList.add("swiper"),r.part="container",r.innerHTML=` - -
- - ${Array.from({length:this.slideSlots}).map((n,s)=>` - - - - `).join("")} -
- - ${X$(this.passedParams)?` -
${this.constructor.prevButtonSvg}
-
${this.constructor.nextButtonSvg}
- `:""} - ${Q$(this.passedParams)?` -
- `:""} - ${J$(this.passedParams)?` -
- `:""} - `,this.shadowRoot.appendChild(r),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:r,passedParams:n}=$y(this);this.swiperParams=r,this.passedParams=n,delete this.swiperParams.init,this.render(),this.swiper=new qt(this.shadowRoot.querySelector(".swiper"),{...r.virtual?{}:{observer:!0},...r,touchEventsTarget:"container",onAny:function(s){s==="observerUpdate"&&e.calcSlideSlots();const i=r.eventsPrefix?`${r.eventsPrefix}${s.toLowerCase()}`:s.toLowerCase();for(var a=arguments.length,o=new Array(a>1?a-1:0),l=1;lr.includes("_")).map(r=>r.replace(/[A-Z]/g,n=>`-${n}`).replace("_","").toLowerCase())}}Eu.forEach(t=>{t!=="init"&&(t=t.replace("_",""),Object.defineProperty(XE.prototype,t,{configurable:!0,get(){return(this.passedParams||{})[t]},set(e){this.passedParams||(this.passedParams={}),this.passedParams[t]=e,this.initialized&&this.updateSwiperOnPropChange(t,e)}}))});class nF extends GE{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||this.getAttribute("lazy")===""||this.getAttribute("lazy")==="true";if(KE(this.shadowRoot,tF),this.shadowRoot.appendChild(document.createElement("slot")),e){const r=document.createElement("div");r.classList.add("swiper-lazy-preloader"),r.part.add("preloader"),this.shadowRoot.appendChild(r)}}initialize(){this.render()}connectedCallback(){this.initialize()}}const UF=()=>{typeof window>"u"||(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",XE),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",nF))};typeof window<"u"&&(window.SwiperElementRegisterParams=t=>{Eu.push(...t)});export{gF as $,W1 as A,wr as B,NF as C,FI as D,CF as E,nr as F,kF as G,LF as H,IF as I,AF as J,P0 as K,TF as L,fO as M,xF as N,ZS as O,oF as P,bF as Q,DF as R,SF as S,yF as T,wF as U,aF as V,Lu as W,ZM as X,uF as Y,_F as Z,fF as _,sF as a,r1 as a0,vF as a1,UF as a2,OI as b,Z1 as c,lF as d,EF as e,pF as f,jw as g,dS as h,B0 as i,BS as j,PF as k,cF as l,BF as m,Sh as n,_f as o,RF as p,vf as q,Ph as r,ai as s,MF as t,OF as u,mF as v,hF as w,Th as x,dF as y,qS as z}; diff --git a/packages/modules/web_themes/colors/web/index.html b/packages/modules/web_themes/colors/web/index.html index e06e3feed1..fe3b8f9074 100644 --- a/packages/modules/web_themes/colors/web/index.html +++ b/packages/modules/web_themes/colors/web/index.html @@ -24,9 +24,8 @@ openWB - - - + + From b65cb10dbd5e41de0cd2b1ad9b88bf52631cc330 Mon Sep 17 00:00:00 2001 From: route662 <97343669+route662@users.noreply.github.com> Date: Mon, 25 Aug 2025 07:34:32 +0200 Subject: [PATCH 20/42] =?UTF-8?q?Bugfix=20Smarthome=20Lambda=20W=C3=A4rmep?= =?UTF-8?q?umpe=20Modbus=20Kommunikation=20(#2695)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bugfix in Modbus Kommunikation, siehe https://forum.openwb.de/viewtopic.php?t=5380&sid=338d90c17e1cdb33fb6dbf193345bac8&start=400 --- packages/modules/smarthome/lambda_/off.py | 2 +- packages/modules/smarthome/lambda_/on.py | 2 +- packages/modules/smarthome/lambda_/watt.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/modules/smarthome/lambda_/off.py b/packages/modules/smarthome/lambda_/off.py index cc8274b7f3..526317742f 100644 --- a/packages/modules/smarthome/lambda_/off.py +++ b/packages/modules/smarthome/lambda_/off.py @@ -22,7 +22,7 @@ % (devicenumber, ipadr, uberschuss)) client = ModbusTcpClient(ipadr, port=502) start = 103 -resp = client.read_holding_registers(start, 2) +resp = client.read_holding_registers(start, 2, unit=1) value1 = resp.registers[0] all = format(value1, '04x') aktpower = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0]) diff --git a/packages/modules/smarthome/lambda_/on.py b/packages/modules/smarthome/lambda_/on.py index 0b2cc2431b..d74abad74a 100644 --- a/packages/modules/smarthome/lambda_/on.py +++ b/packages/modules/smarthome/lambda_/on.py @@ -23,7 +23,7 @@ % (devicenumber, ipadr, uberschuss)) client = ModbusTcpClient(ipadr, port=502) start = 103 -resp = client.read_holding_registers(start, 2) +resp = client.read_holding_registers(start, 2, unit=1) value1 = resp.registers[0] all = format(value1, '04x') aktpower = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0]) diff --git a/packages/modules/smarthome/lambda_/watt.py b/packages/modules/smarthome/lambda_/watt.py index 4d4ed9ceda..a6ad5c641b 100644 --- a/packages/modules/smarthome/lambda_/watt.py +++ b/packages/modules/smarthome/lambda_/watt.py @@ -53,7 +53,7 @@ # aktuelle Leistung lesen with ModbusTcpClient(ipadr, port=502) as client: start = 103 - resp = client.read_holding_registers(start, 2) + resp = client.read_holding_registers(start, 2, unit=1) # value1 = resp.registers[0] all = format(value1, '04x') @@ -104,7 +104,7 @@ builder = BinaryPayloadBuilder(byteorder=Endian.Big, wordorder=Endian.Little) builder.add_16bit_int(neupower) pay = builder.to_registers() - client.write_registers(102, [pay[0]]) + client.write_registers(102, [pay[0]], unit=1) if count1 < 3: log.info(' %d ipadr %s written %6d %#4X' % (devicenumber, ipadr, pay[0], pay[0])) From 2201b6a7e5262442db205341fb305162c02aea08 Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:36:32 +0200 Subject: [PATCH 21/42] Fix command (#2685) * remove obsolet charge plan code in commands * fix message method --- packages/helpermodules/command.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index 1eadb9705a..5b1972ce88 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -256,15 +256,7 @@ def setup_added_chargepoint(): Pub().pub(f'openWB/chargepoint/{new_id}/set/manual_lock', False) {Pub().pub(f"openWB/chargepoint/{new_id}/get/"+k, v) for (k, v) in asdict(chargepoint.Get()).items()} charge_template = SubData.ev_charge_template_data[f"ct{SubData.ev_data['ev0'].data.charge_template}"] - for time_plan in charge_template.data.time_charging.plans: - Pub().pub(f'openWB/chargepoint/{new_id}/set/charge_template/time_charging/plans', - dataclass_utils.asdict(time_plan)) - for scheduled_plan in charge_template.data.chargemode.scheduled_charging.plans: - Pub().pub(f'openWB/chargepoint/{new_id}/set/charge_template/chargemode/scheduled_charging/plans', - scheduled_plan) charge_template = dataclass_utils.asdict(charge_template.data) - charge_template["chargemode"]["scheduled_charging"]["plans"].clear() - charge_template["time_charging"]["plans"].clear() Pub().pub(f'openWB/chargepoint/{new_id}/set/charge_template', charge_template) self.max_id_hierarchy = self.max_id_hierarchy + 1 Pub().pub("openWB/set/command/max_id/hierarchy", self.max_id_hierarchy) @@ -347,7 +339,7 @@ def removeChargepoint(self, connection_id: str, payload: dict) -> None: """ löscht ein Ladepunkt. """ if self.max_id_hierarchy < payload["data"]["id"]: - log.error( + pub_user_message( payload, connection_id, f'Die ID \'{payload["data"]["id"]}\' ist größer als die maximal vergebene ' f'ID \'{self.max_id_hierarchy}\'.', MessageType.ERROR) From c9f5d1944829841c9acda31bf99f7863174b2a20 Mon Sep 17 00:00:00 2001 From: benderl Date: Mon, 25 Aug 2025 12:29:00 +0200 Subject: [PATCH 22/42] Koala modifications (#2699) * modify group size calculation * remove hard coded sizes * close buttons --- .../source/src/components/BaseCarousel.vue | 64 ++++- .../koala/source/src/components/BaseTable.vue | 236 +++++++++--------- .../source/src/components/BatteryCard.vue | 14 +- .../src/components/BatterySettingsDialog.vue | 16 +- .../source/src/components/ChargePointCard.vue | 24 +- .../src/components/ChargePointInformation.vue | 33 ++- .../src/components/ChargePointModeButtons.vue | 11 +- .../src/components/ChargePointPowerData.vue | 8 +- .../src/components/ChargePointSettings.vue | 16 +- .../src/components/SystemInformation.vue | 29 --- .../source/src/components/VehicleCard.vue | 12 +- .../koala/source/src/pages/IndexPage.vue | 10 +- 12 files changed, 243 insertions(+), 230 deletions(-) delete mode 100644 packages/modules/web_themes/koala/source/src/components/SystemInformation.vue diff --git a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue index 5a5d0ac250..cd87da0203 100644 --- a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue +++ b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue @@ -9,7 +9,7 @@ @update:model-value="handleSlideChange" padding :navigation="groupedItems.length > 1" - :arrows="groupedItems.length > 1 && $q.screen.gt.xs" + :arrows="showArrows" class="carousel-height" transition-next="slide-left" transition-prev="slide-right" @@ -35,23 +35,64 @@ - diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointPowerData.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointPowerData.vue index 51d2014227..c2eee22a49 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointPowerData.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointPowerData.vue @@ -1,7 +1,7 @@